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
|
============
=== TODO ===
============
* Support more Lisp systems
* 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
* Revisit the underlying definition of the types DFlo in foam
interface, and Float in OpenAxiom.
* 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
* cleanup the Makefile pamphlets
* Improve Boot documentation
* Reduce the number of bar Lisp codes to the minimum residual.
* 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.
* Audit cleanup rules
* Audit file copying.
* Document the installation structure.
============
=== DONE ===
============
* 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).
================================================
=== 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
|