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.
- Gitlab tickets
#86 (closed)Building with gcc 8 and later works when using -O2 optimization
#90 (closed)Some static symbols have been removed. This probably makes the fasl files incompatible with older versions.
#91 (closed)Loop destructuring no longer incorrectly signals an error
#95 (closed)Disassembler syntax of x86 je and movzx is incorrect
#98 (closed)fstpd is not an Intel instruction; disassemble as
fstp dword ptr [addr]
#100 (closed)ldb prints out unicode base-chars correctly instead of just the low 8 bits.
The sparc port is now up-to-date and the 2020-04 snapshots have been uploaded.
- Updated to ASDF 3.3.4
#79 (closed)Autoload ASDF when calling
REQUIREthe first time. User's no longer have to explicitly load ASDF anymore.
#80 (closed)Use 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,
#81 (closed)Added contribs from Eric Marsden
- Updated to ASDF 3.3.3
- Gitlab tickets
#60 (closed)The function
#58 (closed)Bogus type error in comparison of complex number with
#61 (closed)Segfault when compiling call to
ARRAY-HAS-FILL-POINTER-Pon bit vector constant
#62 (closed)Segfault when compiling
ARRAY-DISPLACEMENTon a string constant
Updated CLX to latest upstream version
#50 (closed)CLX (Hemlock) fails to run.
#49 (closed)CLM crashes
#47 (closed)Backquote and multiple splices
#59 (closed)Incorrect type-derivation for
- ASDF 3.3.1
- Random number generator changed from MT19937 to xoroshiro128+
- This new generator is faster and uses significantly fewer bits of state.
Fix some compiler warnings and clean up funny indentation in asin code.
#40 (closed): Move heap space location for linux
#41 (closed): Report proper process status
#44 (closed): Add docstrings for process accessors
- ASDF 3.2.1
- FreeBSD 10 binaries are available once again, thanks to Fred Gilham. This includes binaries for 21b and snapshot-2017-03
- ASDF 3.2.0
#34 (closed)fixed: Sparc build fails test issues-tests::issue.25a
#38 (closed)fixed: Don't use unix:unix-times
bin/make-dist.shoptions have changed. The positional args for the version, architecture, and os are removed in favor of switches
#36 (closed)fixed: encode-universal-time signals error
#26 (closed)fixed: The cmucl that never sleeps
#25 (closed)fixed: Issue with ext:run-program and string streams (related to character sizes?)
#27 (closed)fixed: Regression: ASDF test failures
#28 (closed)fixed: Recursive function definition during cross-compile
1In particular, the fix for #25 (closed) means that input and output string
streams passed to
RUN-PROGRAM should be processed by
STRING-DECODE before handing the string stream to the process
and when reading the string back from the process.
#22 (closed)fixed: 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.
- ASDF updated to version 3.1.7
- The maximum heap (dynamic-space-size) has been reduced on Linux to 1530 MB to accommodate 32-bit Ubuntu 11.10
- Handling of floating-point exceptions is improved. Previously,
the FP modes were sometimes incorrectly restored and the
ARITHMETIC-ERRORhandler was unable to print FP values.
- A few docstrings have been corrected and updated with more information.
- ASDF 220.127.116.11, to fix an issue with merging
(USER-HOMEDIR-PATHNAME)with other pathnames.
(EXPT 0 POWER)doesn't throw
INTEXP-LIMIT-ERRORanymore for any integer value of
- Starting cmucl with
-dynamic-space-size 0now allocates the largest possible heap size for the platform.
PATHNAME-MATCH-Paccepts search-lists instead of signaling an error. (See ticket
- Cmucl can now compile and run when compiled using XCode 7.2 (and
newer versions of clang). (See ticket
UNIX-SETITIMERback in for Linux. This was preventing cores from being saved.
- Updated lisp-unit
- Micro-optimization for some modular shifts on x86.
- Updated ASDF to version 3.1.6
- Support for ASDF static-image-op
(setf aref)for 1, 2, and 4-bit arrays
- Unification of
UNIXpackage between linux and all other operating systems.
Because of the release, there will not be a 2015-10 snapshot.
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.
- CMUCL FAQ
For a complete list of local wiki pages, see TitleIndex.