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).
Networking
- 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 mod_proxy.
- CL-HTTPD is an advanced web server implemented in Common Lisp.
- 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.
Graphics
- 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. Plot-2d is a plotting gadget for Garnet, that makes it easy to visualize two-dimensional data.
- 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. 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.
Mathematics
- 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 iterative loops.
- f2cl is a Fortran to Common Lisp compiler that translates Fortran 77 to fairly readable Common Lisp.
- 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.
Misc
- 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.
- Common Lisp Music is a music synthesis and signal processing package in the Music V family.
-
CLOCC includes
mk-defsystem
, an implementation of the Common LispDEFSYSTEM
utility (which occupies a similar position tomake
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.
- feebs 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).