close Warning: Can't synchronize with repository "(default)" (/project/cmucl/public_html/git/cmucl.git does not appear to be a Git repository.). Look in the Trac log for more information.

Version 8 (modified by rtoy, 4 years ago) (diff)


Welcome to the CMUCL Trac

CMUCL is a free implementation of the Common Lisp programming language which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp standard. Here is a summary of its main features:

  • support for static arrays that are never moved by GC but are properly removed when no longer referenced.
  • Unicode support, including many of the most common external formats such as UTF-8 and support for handling Unix, DOS, and Mac end-of-line schemes.
  • native double-double floats including complex double-double floats and specialized arrays for double-double floats and and complex double-double floats that give approximately 106 bits (32 digits) of precision.
  • a sophisticated native-code compiler which is capable of powerful type inferences, and generates code competitive in speed with C compilers.
  • generational garbage collection on all supported architectures.
  • multiprocessing capability on the x86 ports.
  • a foreign function interface which allows interfacing with C code and system libraries, including shared libraries on most platforms, and direct access to Unix system calls.
  • support for interprocess communication and remote procedure calls.
  • an implementation of CLOS, the Common Lisp Object System, which includes multimethods and a metaobject protocol.
  • a graphical source-level debugger using a Motif interface, and a code profiler.
  • an interface to the X11 Window System (CLX), and a sophisticated graphical widget library (Garnet).
  • programmer-extensible input and output streams.
  • an Emacs-like editor implemented in Common Lisp.
  • freely redistributable: free, with full source code (most of which is in the public domain) and no strings attached (and no warranty). Like the GNU/Linux and *BSD operating systems, CMUCL is maintained and improved by a team of volunteers collaborating over the Internet.

Latest News

Snapshot 2011-03
The 2011-02 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between the this snapshot and the previous snapshot.
  • In COMPILE-FILE, the :OUTPUT-FILE can also be a stream. CMUCL was erroneously signaling an error..
  • (OPEN f :DIRECTION :IO :IF-DOES-NOT-EXIST NIL) no longer signals an error if the file f does not exist. It returns NIL now.
  • In some situations the compiler could not constant fold SQRT calls because KERNEL:%SQRT was not defined on x86 with SSE2. This is fixed now.
  • In an earlier snapshot to add support for character name completion with slime, a bug was introduced where cmucl could no longer read #\latin_small_letter_a. This is fixed in this version.
Snapshot 2011-02
The 2011-02 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between the this snapshot and the previous snapshot.
  • EXT::DESCRIBE-EXTERNAL-FORMAT was not exported.
  • TRACE was erroneously allowing encapsulation when tracing local flet/labels functions. This doesn't actually trace anything. An error is now signaled in this case. If you are sure, you can specify :ENCAPSULATE NIL to disable encapsulation.
Snapshot 2011-01
The 2011-01 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between the this snapshot and the previous snapshot.
  • Initial support for Solaris/x86. CMUCL will run on Solaris/x86 with all features available.
  • UNINTERN no longer removes the wrong symbol. UNINTERN would remove the symbol when inherited from another package although it should not.
  • DEFSTRUCT allows multiple keyword constructors as required by the spec..
  • SUBSEQ with an end index less than the start index sometimes crashes CMUCL. Now, signal an error if the boudns are not valid.
  • Localization support was causing many calls to stat trying to find non-existent translation files. This has been fixed so that the results are cached. (If new translations are added, the cache will need to be cleared or cmucl restarted.) This change cuts building time by half on Solaris/sparc.
  • On NetBSD, function-end breakpoints, especially for tail-recursive functions, are working now.
  • On NetBSD, display of FP numbers (sse2 and x87) during tracing has been corrected. Previously, random values were displayed.
  • Executables images can now be created on NetBSD again.
20b patch 000
A critical bug in REALPART and IMAGPART has been fixed in the 2010-11 snapshot. A patch is provided now to fix this issue in the 20b release. Installation instructions are available.
CMUCL 20b released
CMUCL 20b has been released, For information on the changes between 20b and 20a, we refer the reader to the 20b release notes.

Additional Information

The official web presence is at with mirrors at and at

The latest news can be found here.

Or you can look here to find out where to download binaries such as the 20b binaries or a snapshot.

Please read the TracGuide to help you get started with your project.

Also see for some information about how Trac is configured and for hints which you may be interested in.

The maintainers

Starting Points

For a complete list of local wiki pages, see TitleIndex.