CMU Common Lisp is a Lisp compiler and runtime software that is commonly used for Lisp programming.
One of the most powerful features of CMU Common Lisp is its sophisticated native-code compiler which generates code that can compete in speed with C compilers. This implementation also includes generational garbage collection and multiprocessing capability on the x86 ports.
Another great feature is the foreign function interface which allows you to interface with C code and system libraries, including shared libraries on most platforms, and direct access to Unix system calls. Additionally, you'll find support for interprocess communication and remote procedure calls.
CMU Common Lisp includes an implementation of CLOS, the Common Lisp Object System, which includes multimethods and a metaobject protocol. You'll also find a graphical source-level debugger using a Motif interface, and a code profiler.
This implementation comes with an interface to the X11 Window System (CLX), and a sophisticated graphical widget library (Garnet). Additionally, you'll find programmer-extensible input and output streams, and an Emacs-like editor implemented in Common Lisp.
Of course, CMUCL is freely redistributable, 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.
Common Lisp is a great choice for large programming projects and explorative programming. The language's dynamic semantics distinguishes it from other languages like C and Ada. You'll find 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.
If you're interested in the latest release, you'll find a few exciting updates. A new float type EXT:DOUBLE-DOUBLE-FLOAT is now supported, which uses two DOUBLE-FLOATs to represent a number with >= 106 bits of precision (about 33 digits). Hash tables now support weak value, weak key-and-value, and weak key-or-value tables. LONG-LONG and UNSIGNED-LONG-LONG are recognized types in the C-CALL package for signed and unsigned 64-bit integers. The generational garbage collector has been ported to Darwin/ PPC, and numerous bugs and ANSI-compliance problems have been fixed.
Version 19d: N/A