Notes on Lisp implementations for Maxima:

Clisp, CMUCL, Scieneer Common Lisp (SCL), GCL (ANSI-enabled only),
ECL, ABCL and SBCL can compile and execute Maxima.
Allegro Common Lisp and OpenMCL might also work, but have not
been fully tested.

Ports to other ANSI Common Lisps should be straightforward
and are welcome; please post a message on the Maxima mailing list
if you are interested in working on a port.

When Maxima is recompiled, the Lisp implementation is selected by
an argument of the form `--enable-foolisp' for the configure script.
`./configure --help' shows a list of the Lisp types recognized by
configure (among other options). Always specify the Lisp type(s)
you want maxima to be built with:
configure tries to autodetect the Lisp type if it is not specified,
but it has been reported that autodetection can fail.

--------------------------------------------------------------------
Comparison of execution times (in seconds) for the run_testsuite()
function for Maxima 5.36.0 as reported on the Maxima mailing list:
              
64 Bit (Gentoo Linux):

gcl-2.6.12    152
sbcl-1.2.10   155
ccl-1.10      313
ecl-15.3.7    559
clisp-2.49   1060

32 Bit (Gentoo Linux)
sbcl-1.2.10  170
gcl-2.6.12   177
cmucl-20e    253
ccl-1.10     293
ecl-15.3.7   556
clisp-2.49   844


--------------------------------------------------------------------
Clisp <http://clisp.org>

	Clisp can be built with readline support, so Maxima has 
advanced command-line editing facilities when built with it.

Clisp is compiled to bytecodes, so Maxima running on Clisp is
substantially slower than on Lisps compiled to machine instructions. 
On the other hand, Clisp contains code from CLN <http://www.ginac.de/CLN/>,
a library for efficient computations with all kinds of numbers in 
arbitrary precision. Another advantage of clisp is that byte code 
resulting in compiling a program on one computer might work on a
computer running a different Clisp version. Also Clisp uses an
extremely efficient memory handling which means it might not run
out of memory where ECL, SBCL and GCL do.

There are Clisp implementations for many platforms including 
MS Windows and Unix-like systems. 

--------------------------------------------------------------------
CMUCL <http://www.cons.org/cmucl/>

	CMUCL is a fast option for Maxima on platforms where it is
available. The rmaxima front-end provides advanced line-editing
facilities for Maxima when compiled with CMUCL. rlwrap is available
from <https://github.com/hanslub42/rlwrap> .

CMUCL versions: 18e and 19a and later are known to work.

There are CMUCL implementations only for Unix-like systems
(not MS Windows).

--------------------------------------------------------------------
Scieneer Common Lisp (SCL) <http://www.scieneer.com/scl/>

	Scieneer Common Lisp (SCL) is a fast option for Maxima for a
range of Linux and Unix platforms.  The SCL 1.2.8 release and later
are supported.  SCL offers a lower case, case sensitive, version which
avoids the Maxima case inversion issues with symbol names.  Tested
front end options are: maxima emacs mode available in the
interfaces/emacs/ directory, the emacs imaxima mode available from
https://sites.google.com/site/imaximaimath/, and TeXmacs available from
http://www.texmacs.org/

--------------------------------------------------------------------
GCL <http://savannah.gnu.org/projects/gcl/>

	GCL versions starting with 2.4.3 can be built with readline
support, so Maxima has advanced command-line editing facilities
when built with it. GCL produces a fast Maxima exectuable that
profit from GCL's fast bignum algorithms.

Only the ANSI-enabled version of GCL works with Maxima, i.e.,
when GCL is built, it must be configured with the --enable-ansi flag,
i.e., execute ``./configure --enable-ansi'' in the build directory
before executing make.

Whether GCL is ANSI-enabled or not can be determined by 
inspecting the banner which is printed when GCL is executed;
if ANSI-enabled, the banner should say "ANSI".
Also, the special variable *FEATURES* should include the keyword :ANSI-CL.

There are GCL implementations for many platforms
including MS Windows and Unix-like systems.

--------------------------------------------------------------------
SBCL <http://www.sbcl.org>

	SBCL is a fork of CMUCL which differs in some minor details,
but most notably, it is simpler to rebuild SBCL than CMUCL.
For many tasks a maxima compiled with SBCL is considerably faster than
GCL. For other tasks GCL is faster than SBCL.

rmaxima is recommended for use with SBCL. See CMUCL above.

--------------------------------------------------------------------
Allegro Common Lisp <http://franz.com/products/allegro-common-lisp/>

	Maxima should work with Allegro Common Lisp, but
only limited testing has been done with these Lisp
implementations. User feedback would be welcome.

--------------------------------------------------------------------
CCL <http://ccl.clozure.com/>

	CCL, formerly known as OpenMCL, is known to work with maxima on
all platforms where ccl runs including Linux, Mac OSX, and Windows.
There are appear to be some bugs in the 32-bit version of ccl,  but
the 64-bit version passes all tests.

--------------------------------------------------------------------
ECL <https://common-lisp.net/project/ecl/>
    
	ECL is known to work with maxima and passes the testsuite.  ECL
runs on many platforms and OSes. It is faster than CLISP, but seems to
tend more towards fragmenting the available memory. ECL tends to be slower 
than GCL or SBCL but faster than CLISP.

ECL must be configured to use the C compiler, building Maxima with the
ECL bytecode compiler is (currently) not possible.  So do *not* use the
option "--with-cmp=no" when building ECL.

--------------------------------------------------------------------
Armed Bear Common Lisp (ABCL) <https://common-lisp.net/project/armedbear/>
    Maxima can also compiled with ABCL - but currently not with
a 'configure'-option but only with the purely Lisp-based procedure.
(see INSTALL.lisp)

