Welcome to the CMUCL Trac
NOTE: This wiki is deprecated in favor of CMUCL
's
gitlab wiki.
All the pages here will be moved over to gitlab.
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 (Gray streams and simple-streams).
- an Emacs-like editor, Hemlock, 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 2015-09
The 2015-09 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between this snapshot and the previous snapshot.
- Updated ASDF to version 3.1.5
- Some additional fixes for issue #4 where ELT on a list did not terminate when the index was negative.
- Issue #8 fixed: Constants and top-level code
- on linux, forgot to include unix-getenv for asdf and unix-execve and unix-fork for slime. These are now included.
Snapshot 2015-07
The 2015-07 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between this snapshot and the previous snapshot.
- Some additional functionality moved back to the core unix.lisp from
the contrib:
- unix-getenv for asdf.
- unix-execve and unix-fork for slime. Thus, slime should work without having to (require :unix).
- *ERROR-PRINT-LINES* increased to 10.
- Issues fixed:
Snapshot 2015-06
The 2015-06 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between this snapshot and the previous snapshot.
- The UNIX package has been changed; it now only contains just enough to compile all of cmucl. If you want the rest of old UNIX package, use (require :unix) to get that.
- The clx-inspector contrib module has been added, courtesy of Fred Gilham.
- ASDF documentation in html, info, and pdf formats is included.
- Issues fixed:
- gitlab issue #1 fixed.
Snapshot 2014-12
The 2014-12 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between this snapshot and the previous snapshot.
- Executables on x86 work again. They were accidentally broken when we removed support for x86.
- PPC now supports executables. Currently executables can be made, and run, but they are rather buggy.
- Many fixes the the
LOG
function, including more accurate log2 and log10 values.(log (expt 2 n) 2) = n
whenever(expt 2 n)
would be a valid double-float number.(log (expt 10 n) 10) = n
whenever(expt 10 n)
would be a valid double-float number.
- New macros:
LISP:WITH-STRING-CODEPOINT-ITERATOR
andLISP:WITH-STRING-GLYPH-ITERATOR
that work similarly to {{{WITH-HASH-TABLE-ITERATOR}}. - Along with the iterators above,
LOOP
includes extensions like(loop for cp being the codepoint of string ...)
(loop for g-string being the glyph of string ...)
Snapshot 2014-11
The 2014-11 snapshot has been released. See the release notes for details, but here is a quick summary of the changes between this snapshot and the previous snapshot.
- ASDF 3.1.4.
- Fixed issue where
TIME
returned negative cycles on ppc. :UTF
is no longer an alias for:UTF-8
for external formats.- Motifd works as a 64-bit binary (thanks to Richard Kreuter)
- NetBSD updated to support 64-bit time_t and related values (from Robert Swindells).
A cross-compile on Darwin/x86 is needed for this release. (To get an updated and corrected
EXTERN-ALIEN-NAME
.)
CMUCL 20f released
CMUCL 20f has been released, For information on the changes between 20f and 20e, we refer the reader to the 20f release notes.
Because of the release, there will not be a 2014-10 snapshot.
You can find some OldNewsPost20e, OldNewsPost20d, OldNewsPost20c, OldNewsPost20b and some much older news.
Additional Information
The official web presence is at www.cmucl.org with mirrors at www.cons.org/cmucl and at common-lisp.net/project/cmucl/mirror. There may be some duplication between the wiki and the web pages; the wiki tends to be more up-to-date.
Other news can be found here. Or you can look here to find out where to download binaries such as the 20d binaries or a snapshot.
- GettingCmucl
- CMUCL FAQ?
- InstallingCmucl
- GitAndCmucl
- GitAndTracIntegration
- BuildingCmucl
- TipsAndTricks
- CmuclDocumentation
- UpdatingUnicode
- LispUnit
- UsingTrac
- ReleaseNotes
For a complete list of local wiki pages, see TitleIndex.