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: the first line below article title is misleading, it advertises 'free', but *features* link shows all including the commercial ones, and this article title does not include 'free'
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|
|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|
|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|
|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|
|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|
|SBCL||Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD, Windows (Experimental)||Native||Yes (x86 and x86-64 Linux only; experimental on OS X, FreeBSD, Windows)||High quality native compiler; callbacks; executable delivery;||~/.sbclrc|
|ABCL||JVM, Google App Engine||JVM bytecode||Yes||FFI to Java, platform independence||~/.abclrc|
|MKCL||Linux, Windows XP and later||Native via C, bytecode-compiled interpreter||Yes||POSIX compliant runtime on Linux, Embeddable, FFI with callbacks.||~/.mkclrc|
All Free Software Common Lisp implementations (some of these may not be actively developed):
- ABCL - Armed Bear Common Lisp (aka ABCL) is a Common Lisp implementation that runs on a Java Virtual Machine; ABCL 1.3.1 was released on 2014-04-30
- ACL - ACL refers to Allegro Common Lisp from Franz, Inc., a non-free 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
- CLiCC - CLiCC is a Common Lisp to C Compiler, last released 1995
- CLISP - CLISP is a Common Lisp implementation by Bruno Haible of Karlsruhe University and Michael Stoll 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,
- 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-cl, Emacs Common Lisp (this link is dead, here is an archived version) is a Common Lisp implementation written in Emacs Lisp
- GCL - GNU Common Lisp (GCL) is a Common Lisp implementation of the KCL Family that uses gcc to compile Lisp into native binaries
- 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
- 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
For non-free implementations, see the list on wikipedia.
If performance is an important criterion for you, you might be interested in the Performance Benchmarks page.