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 (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.
CMUCL 20f released
Because of the release, there will not be a 2014-10 snapshot.
- Deprecated FLOAT-TRAPPING-NAN-P in favor of FLOAT-SIGNALING-NAN-P. Signaling NaNs? are also now printed with "Signaling" instead of "Trapping".
- FP exceptions are handled better on the ppc port.
- The compiler can now derive the type of ROUND.
- Fixed an issue with multi-processing destroy-process doesn't take effect for a schedulable processbecause it has no run-reason and/or arrest-reason.
- Tickets #105, #84, #101, #106, and #100 have been fixed.
- A few issues with fdlibm not signaling FP exceptions have been fixed.
- Updated to ASDF 3.1.3.
- More consistent results for the special functions because all platforms now use fdlibm.
- Consing for the trig functions is greatly reduced since we use fdlibm instead of a Lisp implementation.
- Source location information has been added for DEFINE-CONDITION. (From Helmut Eller.)
- The lisp binary is now compiled to use SSE2 on x86 machines. CMUCL won't even start now if you do not have SSE2.
- CLEAR-OUTPUT will now actually clear any pending output that has not been flushed. Previously, CLEAR-OUTPUT did nothing.
- For Gray streams, CLEAR-OUTPUT will clear output instead of calling STREAM-FORCE-OUTPUT.
- A critical bug in KERNEL:DOUBLE-FLOAT-BITS on x86 has been fixed. In some situations, KERNEL:DOUBLE-FLOAT-BITS would cause a segfault.
There was no snapshot made for this month.
- An error in printing MOST-NEGATIVE-FIXNUM has been fixed.
- A style warning is now issued when using T or OTHERWISE in ECASE and friends. (Ticket #98)
- Support for x87 has been dropped. This snapshot and future snapshots will be no longer include support for x87 and will require SSE2 support.
- Support for x87 is being dropped. This snapshot will be the last snapshot that includes support for x87. All following snapshots will only run on x86 chips that support sse2.
- Type derivation for log reverted; (log -0d0) must be -infinity + i*pi to be able to compute the special functions correctly on the branch cuts.
- (log -0w0) returns values that correspond to (log -0d0).
- More missing double-double float constants are added like DOUBLE-DOUBLE-FLOAT-POSITIVE-INFINITY.
- RUN-PROGRAM accepts :ELEMENT-TYPE to specify the element type for the streams that are created.
- Lisp-unit (a Lisp framework for testing) has been added as a contrib. Use (require :lisp-unit) to compile and load it. Unlike asdf and defsystem, precompild fasls are not included.
- Type derivation for log was not consistent with the values actually returned by log. This is corrected now.
- Double-double floats were missing the constants describing various limits such as LEAST-POSITIVE-DOUBLE-DOUBLE-FLOAT. These are added now.
- When reading very small floats values, the reader will round to least-positive float if possible. Otherwise an error is still signaled.
- Micro-optimizations in arithmetic vops for x86/sse2, reducing the number of memory loads in some cases.
- Run-time checks for zero pages are now disabled; the lazy zeroing of heap pages has been the default for some time without problems, so the run-time check is disabled.
- A serious error in the complex multiply vop on sparc has been fixed.
- The trig functions sin, cos, and tan are faster now and more accurate.
- A bug in CIS introduced in the 2013-12 snapshot has been fixed.
- DISASSEMBLE:DISASSEMBLE-FUNCTION, DISASSEMBLE:DISASSEMBLE-MEMORY, and DISASSEMBLE:DISASSEMBLE-CODE-COMPONENT accept the :BASE, :CASE, and :RADIX keyword arguments, like DISASSEMBLE:DISASSEMBLE does.
- Improved speed for some SSE2 VOPS.
- Values on the branch cuts for the inverse trig and hyperbolic functions match the definitions. If there is a difference between the CLHS and formulas, we choose the formula.
- Updated support for Mac OSX 10.5 and gcc 4.8 on ppc.
Due to the bug in CIS introduced in the 2013-12 snapshot, the 2013-12 snapshot is deprecated.
- The compile can derive the result types of DECODE-FLOAT.
- CIS uses the faster C library routine sincos when available.
- create-target.sh accepts -h and -? options to print out some help.
- ASDF 3.0.3.
- Optimizations for x86 (ported from sparc and ppc).
- Numbers will be printed with lower case letters when :PRINT-CASE is :DOWNCASE.
CMUCL 20e released
Because of the release, there will not be a 2013-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.