README.md 2.9 KB
Newer Older
1
[![pipeline status](https://gitlab.common-lisp.net/cmucl/cmucl/badges/master/pipeline.svg)](https://gitlab.common-lisp.net/cmucl/cmucl/commits/master)
2

3 4 5 6 7 8 9 10 11 12
CMUCL is a free, high performance implementation of the Common Lisp
programming language which runs on most major Unix platforms. It
mainly conforms to the ANSI Common Lisp standard. CMUCL provides a
sophisticated native code compiler; a powerful foreign function
interface; an implementation of CLOS; the Common Lisp Object System;
which includes multimethods; a metaobject protocol; a source-level
debugger and code profiler; and an Emacs-like editor implemented in
Common Lisp. CMUCL is maintained by a team of volunteers collaborating
over the Internet, and is mostly in the public domain.

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
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](http://en.wikipedia.org/wiki/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](https://www.cs.cmu.edu/~garnet/),
  available separately).
* programmer-extensible input and output streams ([Gray
  Streams](http://www.nhplace.com/kent/CL/Issues/stream-definition-by-user.html)
  and
  [simple-streams](http://www.franz.com/support/documentation/current/doc/streams.htm)).
* an Emacs-like editor,
  [Hemlock](http://cmucl.org/hemlock/index.html), 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.

55
For the latest news and other information, see [the wiki](https://gitlab.common-lisp.net/cmucl/cmucl/wikis/home).