Welcome to the CMUCL Wiki
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, available separately).
- 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
2020-11-28
The sparc port is now up-to-date and the 2020-04 snapshots have been uploaded.
Snapshot 2020-04
The 2020-04 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.
-
Changes
- Updated to ASDF 3.3.4
-
Gitlab tickets
-
#79Autoload ASDF when callingREQUIRE
the first time. User's no longer have to explicitly load ASDF anymore. -
#80Use ASDF to load contribs. cmu-contribs still exists but does nothing. The contrib names are the same, except it's best to use a keyword instead of a string. So,:contrib-demos
instead of"contrib-demos"
. -
#81Added contribs from Eric Marsden
-
Snapshot 2019-06
The 2019-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.
-
Changes
- Updated to ASDF 3.3.3
-
Gitlab tickets
Release 21d
CMUCL 21d has been released, For information on the changes between 21d and 21c, we refer the reader to the release notes.
Snapshot 2018-03
The 2018-03 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.
- Gitlab tickets
Snapshot 2018-02
The 2018-02 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.
-
Changes:
-
Updated CLX to latest upstream version
-
Gitlab tickets
-
Ticket
#50CLX (Hemlock) fails to run. -
Ticket
#49CLM crashes -
Ticket
#47Backquote and multiple splices -
Ticket
#59Incorrect type-derivation fordecode-float
Snapshot 2018-01
The 2018-01 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.
- Changes:
- ASDF 3.3.1
- Random number generator changed from MT19937 to xoroshiro128+
- This new generator is faster and uses significantly fewer bits of state.
Release 21c
CMUCL 21c has been released, For information on the changes between 21c and 21b, we refer the reader to the release notes.
Snapshot 2017-10
The 2017-10 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.
-
Changes:
-
ASDF 3.3.0
-
Bugfixes:
-
Fix some compiler warnings and clean up funny indentation in asin code.
-
Gitlab tickets:
-
Ticket
#40: Move heap space location for linux -
Ticket
#41: Report proper process status -
Ticket
#44: Add docstrings for process accessors
Snapshot 2017-04
The 2017-04 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.2.1
- FreeBSD 10 binaries are available once again, thanks to Fred Gilham. This includes binaries for 21b and snapshot-2017-03
Snapshot 2017-03
The 2017-03 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.2.0
Snapshot 2017-01
The 2017-01 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.
- Ticket
#34fixed: Sparc build fails test issues-tests::issue.25a - Ticket
#38fixed: Don't use unix:unix-times -
bin/make-dist.sh
options have changed. The positional args for the version, architecture, and os are removed in favor of switches-V
,-A
, and-o
, respectively.
Snapshot 2016-12
The 2016-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.
Release 21b
CMUCL 21b has been released, For information on the changes between 21b and 21a, we refer the reader to the release notes.
Snapshot 2016-09
The 2016-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.
- Ticket
#25fixed: Issue with ext:run-program and string streams (related to character sizes?) - Ticket
#27fixed: Regression: ASDF test failures - Ticket
#28fixed: Recursive function definition during cross-compile
1In particular, the fix for #25 means that input and output string
streams passed to RUN-PROGRAM
should be processed by STRING-ENCODE
and STRING-DECODE
before handing the string stream to the process
and when reading the string back from the process.
Snapshot 2016-06
The 2016-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.
- Issue
#22fixed: Incorrect coercion to float - The binding stack and control stacks are no longer allocated at fixed memory addresses on x86/linux, x86/darwin, and sparc/solaris. This should not cause any visible changes.
Snapshot 2016-05
The 2016-05 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 updated to version 3.1.7
Snapshot 2016-03
The 2016-03 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 maximum heap (dynamic-space-size) has been reduced on Linux to 1530 MB to accommodate 32-bit Ubuntu 11.10
Snapshot 2016-02
The 2016-02 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.
- Handling of floating-point exceptions is improved. Previously,
the FP modes were sometimes incorrectly restored and the
ARITHMETIC-ERROR
handler was unable to print FP values. - A few docstrings have been corrected and updated with more information.
Snapshot 2016-01
The 2016-01 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.6.9, to fix an issue with merging
(USER-HOMEDIR-PATHNAME)
with other pathnames. - Added
EXT:WITH-FLOAT-TRAPS-ENABLED
to complementWITH-FLOAT-TRAPS-MASKED
. -
(EXPT 0 POWER)
doesn't throwINTEXP-LIMIT-ERROR
anymore for any integer value ofPOWER
- Starting cmucl with
-dynamic-space-size 0
now allocates the largest possible heap size for the platform. -
PATHNAME-MATCH-P
accepts search-lists instead of signaling an error. (See ticket#16.) - Cmucl can now compile and run when compiled using XCode 7.2 (and
newer versions of clang). (See ticket
#12.)
Snapshot 2015-12
The 2015-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.
- Added
UNIX-SETITIMER
back in for Linux. This was preventing cores from being saved. - Updated lisp-unit
- Micro-optimization for some modular shifts on x86.
Snapshot 2015-11
The 2015-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.
- Updated ASDF to version 3.1.6
- Support for ASDF static-image-op
- Issue
#10fixed:(setf aref)
for 1, 2, and 4-bit arrays - Unification of
UNIX
package between linux and all other operating systems.
Release 21a
CMUCL 21a has been released, For information on the changes between 21a and 20f, we refer the reader to the release notes.
Because of the release, there will not be a 2015-10 snapshot.
Older News
You can find some OldNewsPost20f, 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
- ReleaseNotes
- HowToUpdateCMUCLVersion
For a complete list of local wiki pages, see TitleIndex.