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 146 147 148
|
============
=== TODO ===
============
* Retargetto Poly/ML abstract machine.
* Add exception handling in the interpreter.
* Fix parse tree transformation (e.g. typed definitions.)
* Cleanup commuting coercion facility.
* Improve efficiency of array operations.
* 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.
* Modernize algebras
* Better documentations
* 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.
* 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
* Improve Boot documentation
* Audit cleanup rules
* Audit file copying.
* Document the installation structure.
============
=== DONE ===
============
* Add exception handling in library.
* Automate the process of "optimized" OpenAxiom.
* Better support on Windows platform (MinGW/MSYS)
* Reduce the number of bar Lisp codes to the minimum residual.
* Rework subsumption: subsumption is almost inexistent.
* Remove dependency on noweb.
* The installed system no longer requires AWK.
* Find better documentation tools and formats that do not get in
the way of building the system on more platforms.
* Document src/scripts/document.in. Remove and replaced by a C++
program (src/hammer.cc)
* 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
|