Español · Русский

MξΣ Maxima, a Computer Algebra System

Lisp Implementations

CMUCL, SBCL, Clisp, GCL (ANSI-enabled only), and Scieneer Common Lisp (SCL) 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.

For specific Maxima and Lisp version number combinations, see the ports page.

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; configure tries to autodetect the Lisp type if it is not specified, but it has been reported that autodetection can fail.

CMUCL

CMUCL is a fast option for Maxima on platforms where it is available. CMUCL versions 18e and 19a are known to work. There are CMUCL implementations only for Unix-like systems (not MS Windows).

The rmaxima front-end provides advanced line-editing facilities via rlwrap.

SBCL

SBCL is a fork of CMUCL which differs in some minor details, but most notably, it is simpler to rebuild SBCL than CMUCL. There are SBCL implementations for Linux, several *BSD systems, Solaris, Mac OS X and MS Windows.

rmaxima is recommended for use with SBCL.

Clisp

Clisp includes GNU 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. Clisp computes floating-point operations in software, so floating-point operations in Clisp are much slower than in Lisps which make use of hardware instructions for floating-point operations. On the other hand, Clisp makes use of the GMP library for arbitrary- precision integer computations.

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

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.

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.

N.B. Building GCL could be tricky. Also you may need the CVS code instead of tarball releases.

Scieneer Common Lisp (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, and TeXmacs.

Allegro CL and OpenMCL

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

* Allegro CL and SCL are commercial non-free software.

Worthwhile Lisp Sites

The Association of LISP Users

There are few better starting points for Lisp than this site.

http://www.lisp.org/

CMU Artificial Intelligence Repository

A very large archive of Lisp documentation and code.

http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/0.html

CLiki

User maintained archive of Lisp links and information.

http://www.cliki.net/

Tools

XREF

XREF is a tool to determine relationships in Lisp source code. These plots were created using the output from XREF and a program called graphviz. Not particularly useful, but interesting in that they display the complexity of the source code.

http://maxima.sourceforge.net/misc/rat_files_chart.ps.gz (Rat)

http://maxima.sourceforge.net/misc/risch.ps.gz (Risch)