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 advertise '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 | 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.1.1 was released on 2013-02-14
- CCL - CCL is the Clozure Common Lisp implementation
- 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 and currently maintained by
- emacs-cl - emacs-cl, Emacs Common Lisp 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
- Jatha - Jatha is a Java library that implements a fairly large subset of Common LISP, including most of the datatypes (e.g
- MCL - MCL is Macintosh Common Lisp, a venerable commercial Common Lisp implementation, still actively developed for MacOS X by Digitool
- MKCL - ManKai Common Lisp
- Movitz - Movitz is a Common Lisp implementation that targets the x86 PC architecture "on-the-metal"
- NaCL - NaCL would some day like to purport to be a Common Lisp implementation
- OpenMCL - The OpenMCL Common Lisp implementation is called Clozure Common Lisp CCL now
- Poplog - Poplog is a multi-language programming system which includes its own Common Lisp implementation, as well as Standard ML, Prolog, and Pop-11
- Sacla - A partial (as of 2004) Common Lisp implementation written in Common Lisp by Yuji Minejima, under a BSD style license
- 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 is a fork of CLISP reimplemented in C++ that runs on Windows and Windows Mobile
- 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.
You may also use this what-implementation CL program to help you determine what implementation to use. You may use it with telnet://voyager.informatimago.com:8101.