Implementations

Notes for beginners:

Current Implementations

These implementations are active maintained, improved, and used in production, and are all an excellent choice for application development.

SBCL

Main Article: SBCL

SBCL (Steel Bank Common Lisp) is a high-performance native code compiler written in Common Lisp and C. The code is descended from CMUCL. It features native threading support, a type inference engine (Useful with gradual typing) and an optimizing compiler.

Steel Bank Common Lisp is named, in honour of CMUCL, after Andrew Carnegie and Andrew Mellon, who made their fortunes in steel and banking, respectively.

CCL

CCL (Clozure Common Lisp) is a native code Common Lisp implementation. It supports many platforms, all of which are at relative feature parity.

ECL

ECL (Embeddable Common Lisp) is an implementation that compiles Common Lisp to C, and is useful for bringing Common Lisp to new platforms and to embedded environments.

CLISP

GNU CLISP is an implementation that uses a bytecode compiler rather than a native code compiler. By not compiling to machine code, CLISP is easily portable and runs across a wide array of systems.

ABCL

ABCL (Armed Bear Common Lisp) is an implementation that targets the JVM.

Domain-Specific Implementations

These implementations target a specific niche and should not be considered general purpose.

Movitz

Movitz is a Common Lisp implementation that runs “on the metal” on the x86 architecture. It’s intended to be the basis of a Common Lisp-based operating system or for embedded development.

See this fork for building.

XCL

XCL is a GPL-licensed implementation with a kernel written in C++, and an optimizing compiler written in Common Lisp with x86 and x86_64. It was developed by the author of ABCL. The latest version can compile SBCL, and the tests of cl-ppcre, Ironclad and Alexandria.

New Implementations

The following implementations are either new or under development.

Clasp

Clasp is a new Common Lisp implementation that targets LLVM.

See the Hacker News and Reddit discussions on the announcement.

Obsolete Implementations

This section documents implementations that are obsolete, historical, or otherwise not recommended for use.

MKCL

ManKai Common Lisp started as a fork of ECL.