Subject: A few modest proposals for maxima maintinability
From: James Amundson
Date: Mon, 24 Sep 2001 22:03:02 -0500
There has been quite a bit of discussion here about future directions
for Maxima. The maintainability of the existing code should be the very
first concern. I have a set of modest proposals to enhance the
maintainability of the code base:
0) I would like to see the code base focus on ANSI CL first, existing
Lisp implementations second.
1) Port the build system to mk:defsystem from the Common Lisp Open Code
Collection (CLOCC, see <http://clocc.sourceforge.net>.) Right now the
build process for GCL is totally different for than that for CLISP and
CMUCL. I don't think anyone can build Maxima under anything but GCL
right now without looking under the covers.
2) Greatly reduce the number of conditionals (i.e., #+Multics) in the
code. Use the "port" package from CLOCC whenever possible. Remove
support for PDP10, Multics, etc.
3) Reformat the code to consistent case and indentation conventions,
without changing any of the logic. Perform the case and indentation
stages in separate steps committed to CVS.
4) Adopt a common suffix for lisp files.
Obviously, my thoughts are similar to Stephan Houben's. I would like to
emphasize, however, that I would not change *any* logic in any existing
code at this point. Richard Fateman has repeatedly admonished us not to
fix that which is not broken. Unfortunately, insofar as the code needs
to be comprehended by a human, it is broken. I believe these steps would
make Maxima considerably more comprehensible.
Best,
Jim