Ports: software which runs in CMUCL
This page contains an (incomplete) list of freely redistributable
software which is known to run in CMUCL (to know what platforms CMUCL
runs on, see the platforms page).
- Araneida is a small
extensible web server written in Common Lisp with
CMUCL extensions, under a BSD-sans-advertising licence. It hooks into
the CMUCL event loop rather than using multithreading, and is designed
to run behind a caching proxy such as Apache's
CL-HTTPD is an advanced web server implemented in Common Lisp.
There is a CMUCL
port. The licence is unfortunately very restrictive.
- CLORB is a CORBA ORB for Common Lisp. It is still
under development, but the client-side functionality works with CMUCL
(server-side is currently limited to single-threaded polling).
- The CLiki is a wiki-like
system allowing collaborative web authoring, developed in CL.
- CLX is an implementation of the client side of the
X11 protocol in Common Lisp (ie it plays the role of libX11 for C
programs). The CMUCL version incorporates patches for X authorization
which are not included in the official release.
- McCLIM is a rapidly improving
free implementation of the CLIM specification. This library allows
rapid development of powerful inspector-type user interfaces.
- Garnet is a
sophisticated widget set developed at the User
Interface Software Group at Carnegie Mellon University. Garnet aims to
facilitate the construction of interactive graphical user interfaces.
It includes an implementation of a prototype-instance object model, a
portable graphics layer for X11 and MacOS, automatic constraint
maintenance, and interactive design tools. The version distributed
by Fred Gilham incorporates a few patches for 8bit displays and
various bugfixes. Plot-2d is a
plotting gadget for Garnet, that makes it easy to visualize
- CLM is a Motif® subsystem for CMUCL. It can
be compiled with the freely available LessTif implementation. CLM is used in
the graphical interface to the CMUCL debugger and inspector.
- There are two CMUCL bindings to the GTk+ widget set. Espen Johnsen's clg binds
directly to the GTk event loop via the CMUCL FFI (GNU LGPL).
Gilbert Baumann's (older) binding uses a client-server model to avoid
problems with mixing two event loops.
- GLOS is an
OpenGL subset developed in Common Lisp. It features Gourad shading,
Phong lighting, Zbuffer/clipping, near and far.
CLUE (Common Lisp User-Interface Environment) is an extension of
CLX which provides a simple, object-based toolkit (similar to Xt),
using CLOS. It provides simple object-oriented classes and stream I/O
facilites. There is a
CMUCL port. CLIO is a set of widgets built on top of CLUE, and
Pictures is a CLOS-based interface to CLIO.
- PGPLOT-CL is an
CMUCL interface to the PGPLOT 2-d scientific plotting library.
- The PSGrapher
renders a directed acyclic graph to Postscript. It consists of a set
of Lisp routines which uses the same algorithm as the ISI Grapher. The
fonts and box drawing style are user-definable.
- The series package
(described in Appendix A of
Common Lisp: the Language, 2nd edition) is a set of macros which
allow the programmer to program in a functional style (using
compositions of functions operating on series or vectors or streams of
data elements), without incurring the efficiency costs typically
associated with such a programming style. The macros generate
- There is an improved version of f2cl, a Fortran to Common Lisp
compiler, in CLOCC.
- MatLisp is a matrix
package for Common Lisp. It consists of CLOS bindings to the BLAS and
LAPACK linear algebra packages.
- Maxima is a
computer algebra system implemented in Common Lisp. It is a derivative
of the Macsyma system, which is released under the GNU GPL. Maxima is
primarily intended to be used with the GCL Common Lisp implementation,
but recent releases also work with CMUCL.
- ACL2 is a
semi-automatic theorem prover embedded in an applicative dialect of
Common Lisp (it is the successor of Nqthm). The system can also be
used as a specification language and a computation logic.
- UncommonSQL is
a CommonSQL-like binding to the PostgreSQL, MySQL and Oracle DBMSes. It provides a
functional SQL syntax and an object-to-relational mapping based on
CLOS. CommonSQL is based on MaiSQL.
- CL-XML implements data stream
parsing and serialization for the XML, XML Query and XPath standards.
The XML processor includes a conformant, validating, namespace-aware
model-based parser. It supports, in particular, namespace-aware
DTD-based validation. The XPATH module comprises LISP bindings for the
XML Path library, an S-expression-based namespace-aware path model,
and a macro-based path model compiler which implements an
XPATH-algebra. The XQUERY module comprises LISP bindings for the XML
Query library, an S-expression-based query model which incorporates
the XPATH facilities, and a macro-based query compiler. The base CLOS
model implements the XML Query Data Model in a class hierarchy which
presents an Infoset compatible programming interface. CL-XML runs with
CVS versions of CMUCL as of around 2003-08.
- A port of the XML parser from Franz
Inc is available from ports/xmlutils.
The port does not support Unicode, since CMUCL has no support for
extended character sets.
- Common Lisp
Music is a music synthesis and signal processing package in the
Music V family.
LispDebug is a source-level debugger, profiler and stepper which
works with CMUCL (which operates by instrumenting the source code,
rather than using the native CMUCL debugger/profiler).
- CLOCC includes
mk-defsystem, an implementation of the Common Lisp
DEFSYSTEM utility (which occupies a similar position to
make in C/Unix projects).
- LISA is a production-rule
system for building intelligent software agent systems in Common Lisp.
It is influenced by the Java Expert System Shell.
- OPS5 is
a programming language for production systems (using goal-based
techniques from artificial intelligence). In the public domain.
is a simulation game somewhat similar to CoreWars. Players
supply programs which control their creature as they move around the
maze trying to zap one another.
Surf-Hippo is a simulation package which allows interactive
graphical exploration of models of biological neurons and networks.
Surf-Hippo runs in CMUCL with Garnet.
If you successfully use a package in CMUCL, or produce patches adding
CMUCL support, please let us know by sending an email to the webmasters
(see address in footer).