1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
============
=== TODO ===
============
* Cleanup commuting coercion facility.
* Improve efficiency of array operations.
* Rework subsumption.
* Finish network communication support.
* Finish Bemol backend.
* Finish JVM backend.
* Add support for concurrency.
* Generate better codes for scripts.
* Fix STREAM implementation (dynamic semantics rules violation).
* Fix compilation of domain where withon is empty.
* Improve overload resolution routines.
* Have an option to build OpenAxiom as a Firefox-based standalone
application (or as a Firefox extension)
* Make highlighting more configurable
* Build domains for theorem proving and proof checking facilities.
* Better support on Windows platform (MinGW/MSYS)
* Modernize algebras
* Better documentations
* Find better documentation tools and formats that do not get in
the way of building the system on more platforms.
* Interfaces to mainstream programming languages
* Improve Boot, Spad
* Integrate to development environments
* Move rule semantics transformation from the ParseForm -> SExpression
transformer to the interpreter.
* Audit all codes that manipulate sockets.
* Automate the process of "optimized" OpenAxiom: this requires a two-pass
build; once to gather type information, a second time to use the
information.
* Find a better of structuring for PLF, CCF, LDF, LISP.
* Have OpenAxiom configure pass options specified on the
invokation line down to GCL.
* Properly document the new build in a very intelligible way
* Document src/scripts/document.in
* Improve Boot documentation
* Reduce the number of bar Lisp codes to the minimum residual.
* Audit cleanup rules
* Audit file copying.
* Document the installation structure.
============
=== DONE ===
============
* FFI support for Spad
* Revisit the underlying definition of the types DFlo in foam
interface, and DoubleFloat in OpenAxiom. Now, we ensure that
SingleFloat is 32-bit, and DoubleFloat is 64-bit.
* Support more Lisp systems (GCL, SBCL, CLisp)
* cleanup the Makefile pamphlets
* Fix codes in src/interp, src/hyper, and src/hyper/pages/util.ht that
hardcode pathnames.
In general, the OpenAxiom system should be able to work properly with
relative paths to that it can be "moved" around seamlessly.
* Support out-of-source build.
* Support parallel build.
Notice that GCL does not support parallel build. So we can punt
on build of GCL. We should work with Camm to fix GCL build upstream.
* Convince GCL to find its internal header files.
-- it turns out to be a bug in OpenAxiom.
* Fix Makefile generation dependencies.
-- This turns out to be a bug in Autoconf 2.59 whereby the value of
-- @top_builddir@ is empty. Work around the bug by using
-- $(abs_top_builddir).
* Have an automated, smooth bootstrapping process for boot.
* Implement framework for recursive rules in Makefiles.
* Fix fall-outs of missed DVI files.
This is believed to be fixed with the recursive rule support.
* Reorganize the makefile pamphlets so that OpenAxiom can build without
LaTeX or X11.
* Support standard "clean", "mostlyclean", and "distclean" Makefile
targets
* Add support for --with-lisp=lisp-image for building OpenAxiom with
a specific lisp-image.
* --enable-gcl uses the GCL from OpenAxiom repository to build OpenAxiom.
* src/boot can be built with Lisp images other than GCL:
--with-lisp=sbcl
--with-lisp=clisp
* Build on Windows platforms, more specifically MSYS/MinGW, is
supported.
* Components known to build with various Lisp implementations:
+ bootsys: GCL, SBCL, CLISP
+ depsys: GCL, CLISP
+ interpsys: GCL
+ AXIOMsys: GCL
* Use Libtool to build the C part of the OpenAxiom system. In particular,
this facilitates support for Lisps that rely on dynamic loading
(e.g. SBCL, ECL).
* Have OpenAxiom use bootsys compile all Boot codes in src/interp. This
requires auditing the code for uses of special functions which
act differently in boot and shoe (like MEMBER).
* Eliminate the shell script driver in favor of a native executable.
================================================
=== New Boot vs. Old Boot compatibility notes ==
================================================
The Old Boot translator renames some LISP identifiers
(i.e. identifiers, used in Boot codes, that consist of only
capital letters), a renaming not done by the New Boot translator.
Consequently, when converting a Boot program to the New Boot
translator, special care must be given to those identifiers
so as to preserve meanings.
* As of today, the following identifiers are no longer used in
Boot programs found in src/interp:
REMOVE GET RASSOC DELETE INTERSECTION UNION
|