MAXIMA, LISP and COMMON-LISP package on GCL



Hi!

There is some problem with LISP and COMMON-LISP on GCL.
Looking at maxima-package.lisp one can see that by default
MAXIMA package uses LISP package.  If this package is
absent Maxima makes LISP synonymous to COMMON-LISP.

On the other hand ANSI GCL has two LISP and
COMMON-LISP packages.  The former is legacy CLtL1
package and the latter is intended to be ANSI
compliant.  Thus ANSI features remains unexposed
in MAXIMA package.  This is the reason why new
James' to_lisp() REPL doesn't handle lisp errors
properly on GCL (maxima::*debugger-hook* isn't
the same symbol as cl::*debugger-hook*).

Ultimately on can get rid of old LISP package by
renaming it to LISP-LEGACY and making LISP
alias to COMMON-LISP.  Unfortunately it can't be done
since GCL Maxima makes use of another old style SERROR
package which conflicts with COMMON-LISP (conflicts with
CONDITIONS which supersedes SERROR in COMMON-LISP).

The quick fix to the problem is to import
required ANSI symbols from COMMON-LISP explicitly.
This is not so hard since right now we need just few of
them.  But it isn't right approach in the long run.
IMHO the right way is to remove SERROR entirely
but this is not so simple and require thorough
testing. I think it can be done later with next
Maxima and GCL releases.


-- 
      Vadim V. Zhytnikov

       <vvzhy@mail.ru>
      <vvzhy@netorn.ru>