|
|
|
|
Home: a high-performance, free Common Lisp implementation
|
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 and 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
For older news see News. For other
news, also see CMUCL
Trac.
- 20c released
- CMUCL 20c has been released, For information on the changes between
20c and 20b, we refer the reader to the 20c release notes.
Because of the release, there will not be a 2011-11 snapshot. .
- 2011-09-20
- The CMUCL CVS repository has been converted to git and is now
available. You can browse the repository using the Browse
Source, or you can visit CMUCL gitweb for a different view. This page
also includes links necessary for cloning the repository. (For
commiters, be sure to put your userid in the ssh link.)
The CVS repository will still be available, but will not allow checkins anymore.
Git is integrated with Trac so the commit messages can refer to
and even close Trac tickets. If the commit messages contains text
like
command #1
command #1, #2
command #1 & #2
command #1 and #2
then the given command is applied to the specified
tickets. Instead of the short-hand syntax above, you can also use
command ticket:1
command ticket:1, ticket:2
command ticket:1 & ticket:2
command ticket:1 and ticket:2
The available commands (not case-sensitive) are:
- close, closed, closes, fix, fixed, fixes
- The specified issue numbers are closed with the contents of this
commit message being added to it.
- references, refs, addresses, re, see
- The specified issue numbers are left in their current status,
but the contents of this commit message are added to their
notes.
- Snapshot 2011-09
- The 2011-09 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.
- ASDF2 updated to version 2.017.
- Improve type propagation for
LOAD-TIME-VALUE.
- Getting documentation of a structure via
DOCUMENTATION no longer signals an error.
- Reduce unnecessary consing of
SAPs in ROOM.
- Make stack overflow checking actually work on Mac OS X. The
implementation had the
:stack-checking feature, but it didn't
actually prevent stack overflows from crashing lisp.
- Fix rounding of numbers larger than a fixnum.
- Snapshot 2011-07
- The 2011-07 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.
- Unicode database updated to Unicode 6.0.0.
- ASDF2 updated to version 2.016.1
- Add
LISP:LOAD-ALL-UNICODE-DATA to load all the
unicode information into core. This is useful for creating an
executable image that does not need unidata.bin.
- CMUCL no longer exits if you specify a core file with an
executable image. A warning is printed instead and the core file is
used.
- Trac
#43 has been fixed in a better way. The previous fix was
incorrect and causes some Unicode tests to fail.
- Snapshot 2011-06
- The 2011-06 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.
-
:CMUCL is now in *FEATURES*
- Added command line option,
-unidata, to allow user
to specify the location and name of the unidata.bin file. This is
used instead of the default location.
- Opening a file with
:IF-EXISTS
:NEW-VERSION no longer causes an error if the file name
contains "[".
- Snapshot 2011-05
- Due to the upgrade on common-lisp.net, no snapshot is available
for this month.
- Snapshot 2011-04
- The 2011-04 snapshot has been released. See the release nots for
details, but here is a quick summary of the changes between the
this snapshot and the previous snapshot.
- In
COMPILE-FILE, the second return value is now non-nil if
there are style warnings. Previously, style warnings were
erroneously ignored.
- ASDF has been updated to version 2.014.1
- Snapshot 2011-03
-
The 2011-03 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.
What is Common Lisp?
Common Lisp is well suited to large programming projects and
explorative programming. The language has a dynamic
semantics which distinguishes it from languages such as C and Ada.
It features automatic memory management, an interactive incremental
development environment, a module system, a large number of
powerful data structures, a large standard library of useful
functions, a sophisticated object system supporting multiple
inheritance and generic functions, an exception system,
user-defined types and a macro system which allows programmers to
extend the language.
Pascal is for building pyramids -- imposing, breathtaking
structures built by armies pushing heavy blocks into place. Lisp
is for building organisms ... Alan Perlis
|