Comparison of actively developed Common Lisp implementations
All the implementations below provide an FFI and sockets interface. Callbacks mean in this context that the FFI is capable of passing lisp-functions as callbacks to foreign functions. The startup file is loaded when the Lisp starts. Not all platforms listed may be actively supported.
Note: Some implementation builds fail to include FFI, sockets, and/or threads. Fink CLISP fails to includes threads, and MacPorts anything fails to include FFI. Aptitude lisps are severely out of date: SBCL fails on Xen, and ECL crashes during installation.
|Implementation||Supported Platforms||Compiler||Threads?||Features||Startup file||License|
|CLISP||Windows, Mac OS X, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Dragonfly BSD||Bytecode||Yes (experimental)||Small image size, very efficient bignums, Callbacks, modules||~/.clisprc.lisp||GPL2|
|CMUCL||Linux, Mac OS X, Solaris, FreeBSD, NetBSD, OpenBSD, IRIX, HPUX||Bytecode, Native & Block Compilation||No||High quality native compiler, foreign callbacks||~/.cmucl-init.lisp||BSD3|
|ECL||Linux, FreeBSD, NetBSD, OpenBSD, Solaris, Windows, Mac OS X, iOS, Android||Native via C, also bytecode||Yes (all platforms)||Executable delivery and portability. Integrates well with C programs (i.e. Embeddable, native powerful FFI).||~/.eclrc||LGPL-2.1+|
|CCL||Mac OS X, Linux, FreeBSD, Solaris, Android, Windows XP and later, Heroku||Native||Yes (all platforms)||Small image size, fast compiler, convenient and powerful FFI, callbacks, executable delivery, precise gc||~/ccl-init.lisp||Apache 2|
|SBCL||Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Windows (sbcl's platform table)||Native||Yes||High quality native compiler; callbacks; executable delivery;||~/.sbclrc||BSD2+PD|
|ABCL||JVM, Google App Engine||JVM bytecode||Yes||FFI to Java, platform independence||~/.abclrc||GPL+Classpath exception|
|MKCL||Linux, Windows XP and later||Native via C, bytecode-compiled interpreter||Yes||POSIX compliant runtime on Linux, Embeddable, FFI with callbacks.||~/.mkclrc||LGPL3|
All Free Software Common Lisp implementations (some of these may not be actively developed):
- ABCL - Armed Bear Common Lisp (aka ABCL) is a
- ACL - ACL refers to Allegro Common Lisp from Franz, Inc., a non-free Common Lisp implementation
- bocl - bocl is the Bootstraping Common Lisp implementation
- CCL - CCL is the Clozure Common Lisp implementation
- Clasp - Clasp is a Common Lisp implementation that interoperates with C++ and uses LLVM for just-in-time (JIT) compilation to native code
- CLISP - CLISP is a Common Lisp implementation by Bruno Haible, then of Karlsruhe University, and Michael Stoll, then of Munich University, both in Germany
- CMUCL - CMUCL is a high-performance, free (mostly Public Domain) Common Lisp implementation that aims towards ANSI compatibility and runs on a number of Unix platforms - including Linux/ix86, Linux/Alpha,
- Corman Common Lisp - Corman Lisp is a Common Lisp development environment for Microsoft Windows operating systems running on Intel platforms
- ECL - Embeddable Common Lisp, a member of the KCL Family, is a Common Lisp implementation initially developed by Giuseppe Attardi, maintained for many years by Juan Jose Garcia-Ripoll and currently maintained by Daniel Kochmański
- emacs-cl - Emacs Common Lisp is a Common Lisp implementation written in Emacs Lisp
- GCL - GNU Common Lisp is a Common Lisp implementation of the KCL Family that uses gcc to compile Lisp into native binaries
- KCL Family - The KCL Family is a family of Common Lisp implementations originated from the influential KCL
- MCL - MCL is Macintosh Common Lisp, a venerable commercial Common Lisp implementation
- MKCL - ManKai Common Lisp
- Movitz - Movitz is a Common Lisp implementation that targets the x86 PC architecture "on-the-metal"
- Poplog - Poplog is a multi-language programming system which includes its own Common Lisp implementation, as well as Standard ML, Prolog, and Pop-11
- SBCL - Steel Bank Common Lisp is an open source / free software Common Lisp implementation
- ThinLisp - ThinLisp is a Common Lisp implementation that translates a subset of Common Lisp to very efficient C code
- UABCL - UABCL, a Common Lisp implementation, is a port of ABCL to dotNet and Mono
- UfasoftCommonLisp - Ufasoft Common Lisp development system
- WCL - WCL is a Common Lisp implementation that provides Common Lisp as a Unix shared library that can be linked with Lisp and C code to produce efficient applications
- XCL - XCL is a Common lisp implementation featuring a kernel written in C++ and an optimizing compiler with backends for x86 and x86-64
If performance is an important criterion for you, you might be interested in the Performance Benchmarks page.
You may also use this what-implementation CL program to help you determine what implementation to use. You may use it with telnet://hubble.informatimago.com:8101.