CMU Common Lisp is a free implementation of the Common Lisp programming language which runs on most major Unix platforms. CMU Common Lisp project mainly conforms to the ANSI Common Lisp standard.
Here are some key features of "CMU Common Lisp":
· 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.
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.
What's New in This Release:
· A new float type EXT:DOUBLE-DOUBLE-FLOAT is supported.
· A DOUBLE-DOUBLE-FLOAT 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.
· Numerous bugs and ANSI-compliance problems have been fixed.