Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Common Lisp
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Implementations== See the Category [[:Category:Common Lisp implementations|Common Lisp implementations]]. Common Lisp is defined by a specification (like [[Ada (programming language)|Ada]] and [[C (programming language)|C]]) rather than by one implementation (like [[Perl]]). There are many implementations, and the standard details areas in which they may validly differ. In addition, implementations tend to come with extensions, which provide functionality not covered in the standard: * Interactive Top-Level (REPL) * Garbage Collection * Debugger, Stepper and Inspector * Weak data structures (hash tables) * Extensible sequences * Extensible LOOP * Environment access * CLOS Meta-object Protocol * CLOS based extensible streams * CLOS based Condition System * Network streams * Persistent CLOS * Unicode support * Foreign-Language Interface (often to C) * Operating System interface * Java Interface * Threads and Multiprocessing * Application delivery (applications, dynamic libraries) * Saving of images [[Free and open-source software]] libraries have been created to support extensions to Common Lisp in a portable way, and are most notably found in the repositories of the Common-Lisp.net<ref>{{cite web |url=http://common-lisp.net/ |title=Common-Lisp.net}}</ref> and CLOCC (Common Lisp Open Code Collection)<ref>{{cite web |url=http://clocc.sourceforge.net/ |title=Common Lisp Open Code Collection}}</ref> projects. Common Lisp implementations may use any mix of native code compilation, byte code compilation or interpretation. Common Lisp has been designed to support [[incremental compiler]]s, file compilers and block compilers. Standard declarations to optimize compilation (such as function inlining or type specialization) are proposed in the language specification. Most Common Lisp implementations compile source code to native [[machine code]]. Some implementations can create (optimized) stand-alone applications. Others compile to interpreted [[bytecode]], which is less efficient than native code, but eases binary-code portability. Some compilers compile Common Lisp code to C code. The misconception that Lisp is a purely interpreted language is most likely because Lisp environments provide an interactive prompt and that code is compiled one-by-one, in an incremental way. With Common Lisp incremental compilation is widely used. Some [[Unix]]-based implementations ([[CLISP]], [[SBCL]]) can be used as a [[scripting language]]; that is, invoked by the system transparently in the way that a [[Perl]] or [[Unix shell]] interpreter is.<ref>{{cite web|url=http://clisp.cons.org/impnotes/quickstart.html#quickstart-unix|title=32.6. Quickstarting delivery with CLISP|website=clisp.cons.org}}</ref> ===List of implementations=== ====Commercial implementations==== ; [[Allegro Common Lisp]]: for Microsoft Windows, FreeBSD, Linux, Apple macOS and various UNIX variants. Allegro CL provides an [[integrated development environment|Integrated Development Environment (IDE)]] (for Windows and Linux) and extensive capabilities for application delivery. ; [[Liquid Common Lisp]]: formerly called Lucid Common Lisp. Only maintenance, no new releases. ; [[LispWorks]]: for Microsoft Windows, FreeBSD, Linux, Apple macOS, iOS, Android and various UNIX variants. LispWorks provides an [[integrated development environment|Integrated Development Environment (IDE)]] (available for most platforms, but not for iOS and Android) and extensive capabilities for application delivery. ; [[mocl]]: for iOS, Android and macOS. ; [[Open Genera]]: for DEC Alpha. ; [[Scieneer Common Lisp]]: which is designed for high-performance scientific computing. ====Freely redistributable implementations==== ; Armed Bear Common Lisp (ABCL): A CL implementation that runs on the [[Java Virtual Machine]].<ref>{{cite web |url=http://common-lisp.net/project/armedbear/ |title=Armed Bear Common Lisp}}</ref> It includes a compiler to [[Java byte code]], and allows access to Java libraries from CL. It was formerly just a component of the [[Armed Bear J Editor]]. ; [[Clasp (Common Lisp)|Clasp]]: A LLVM based implementation that seamlessly interoperates with C++ libraries. Runs on several Unix and Unix-like systems (including [[macOS]]). ; [[CLISP]]: A bytecode-compiling implementation, portable and runs on several Unix and Unix-like systems (including [[macOS]]), as well as Microsoft Windows and several other systems. ; [[Clozure CL]] (CCL): Originally a [[free and open-source software|free and open-source]] fork of Macintosh Common Lisp. As that history implies, CCL was written for the Macintosh, but Clozure CL now runs on [[macOS]], [[FreeBSD]], [[Linux]], [[Solaris (operating system)|Solaris]] and [[Microsoft Windows|Windows]]. 32 and 64 bit [[x86]] ports are supported on each platform. Additionally there are Power PC ports for Mac OS and Linux. CCL was previously known as OpenMCL, but that name is no longer used, to avoid confusion with the open source version of Macintosh Common Lisp. ; [[CMUCL]]: Originally from [[Carnegie Mellon University]], now maintained as [[free and open-source software]] by a group of volunteers. CMUCL uses a fast native-code compiler. It is available on [[Linux]] and [[Berkeley Software Distribution|BSD]] for Intel x86; [[Linux]] for Alpha; [[macOS]] for Intel x86 and PowerPC; and Solaris, IRIX, and HP-UX on their native platforms. ; [[Corman Common Lisp]]: for Microsoft Windows. In January 2015 Corman Lisp has been published under MIT license.<ref>{{cite web|title=Corman Lisp sources are now available|date=January 5, 2015 |url=http://lispblog.xach.com/post/107215169193/corman-lisp-sources-are-now-available}}</ref> ; [[Embeddable Common Lisp]] (ECL): ECL includes a bytecode interpreter and compiler. It can also compile Lisp code to machine code via a C compiler. ECL then compiles Lisp code to C, compiles the C code with a C compiler and can then load the resulting machine code. It is also possible to embed ECL in [[C (programming language)|C]] programs, and C code into Common Lisp programs. ; [[GNU Common Lisp]] (GCL): The [[GNU]] Project's Lisp compiler. Not yet fully ANSI-compliant, GCL is however the implementation of choice for several large projects including the mathematical tools [[Maxima (software)|Maxima]], [[Axiom (computer algebra system)|AXIOM]] and (historically) [[ACL2]]. GCL runs on [[Linux]] under eleven different architectures, and also under Windows, Solaris, and [[FreeBSD]]. ; [[Macintosh Common Lisp]] (MCL): Version 5.2 for Apple Macintosh computers with a PowerPC processor running Mac OS X is open source. RMCL (based on MCL 5.2) runs on Intel-based Apple Macintosh computers using the Rosetta binary translator from Apple. ; [[ManKai Common Lisp]] (MKCL): A branch of [[Embeddable Common Lisp|ECL]]. MKCL emphasises reliability, stability and overall code quality through a heavily reworked, natively multi-threaded, runtime system. On Linux, MKCL features a fully POSIX compliant runtime system. ; Movitz: Implements a Lisp environment for [[x86]] computers without relying on any underlying OS. ; [[Poplog]]: Poplog implements a version of CL, with [[POP-11]], and optionally [[Prolog]], and [[Standard ML]] (SML), allowing mixed language programming. For all, the implementation language is POP-11, which is compiled incrementally. It also has an integrated [[Emacs]]-like editor that communicates with the compiler. ; [[Steel Bank Common Lisp]] (SBCL): A branch from [[CMUCL]]. "Broadly speaking, SBCL is distinguished from CMU CL by a greater emphasis on maintainability."<ref>{{cite web |url=http://sbcl.sourceforge.net/history.html |title=History and Copyright |work=Steel Bank Common Lisp }}</ref> SBCL runs on the platforms CMUCL does, except HP/UX; in addition, it runs on Linux for AMD64, PowerPC, SPARC, MIPS, Windows x86 and AMD64.<ref>{{cite web |url=http://www.sbcl.org/platform-table.html |title=Platform Table |work=Steel Bank Common Lisp }}</ref> SBCL does not use an interpreter by default; all expressions are compiled to native code unless the user switches the interpreter on. The SBCL compiler generates fast native code according to a previous version of [[The Computer Language Benchmarks Game]].<ref>{{cite web|url=http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=all|archive-url=https://web.archive.org/web/20130520184339/http://benchmarksgame.alioth.debian.org/u32q/benchmark.php?test=all&lang=all|url-status=dead|archive-date=May 20, 2013|title=Which programs are fastest? β Computer Language Benchmarks Game|date=May 20, 2013}}</ref> ; [[Ufasoft Common Lisp]]: port of CLISP for windows platform with core written in C++. ====Other implementations==== {{More citations needed section|date=July 2018}} ; Austin Kyoto Common Lisp: an evolution of [[Kyoto Common Lisp]] by [[Bill Schelter]] ; Butterfly Common Lisp: an implementation written in Scheme for the [[BBN Butterfly]] multi-processor computer<ref>{{cite web|url=https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/bbn/0.html|title=Package: lang/lisp/impl/bbn/|website=cs.cmu.edu}}</ref><ref>{{cite web|url=http://www.aaai.org/Papers/AAAI/1987/AAAI87-001.pdf |archive-url=https://web.archive.org/web/20151011030824/http://www.aaai.org/Papers/AAAI/1987/AAAI87-001.pdf |archive-date=2015-10-11 |url-status=live|title= Recent Developments in Butterfly Lisp, 1987, AAAI Proceedings|website=aaai.org}}</ref> ; CLICC: a Common Lisp to C compiler<ref>{{cite journal|title=CLICC: A New Approach to the Compilation of Common Lisp Programs to C|first1=O.|last1=Burkart|first2=W.|last2=Goerigk|first3=H.|last3=Knutzen|date=June 22, 1992|citeseerx=10.1.1.38.1282}}</ref> ; CLOE: Common Lisp for PCs by [[Symbolics]] ; Codemist Common Lisp: used for the commercial version of the computer algebra system Axiom<ref>{{cite web|url=http://lisp.codemist.co.uk|title=codemist.co.uk|website=lisp.codemist.co.uk}}</ref><ref>{{cite web |url=http://www.axiom-developer.org/axiom-website/bookvol4.pdf |title=Axiom, the 30 year horizon, page 43}}</ref> ; ExperCommon Lisp: an early implementation for the Apple Macintosh by ExperTelligence ; [[Golden Common Lisp]]: an implementation for the PC by GoldHill Inc.<ref>{{cite web|url=http://www.goldhill-inc.com/developer.html|title=Golden Common Lisp Developer|website=goldhill-inc.com}}</ref><ref>Golden Common LISP: A Hands-On Approach, David J. Steele, June 2000 by Addison Wesley Publishing Company</ref> ; Ibuki Common Lisp: a commercialized version of Kyoto Common Lisp ; [[Kyoto Common Lisp]]: the first Common Lisp compiler that used C as a target language. GCL, ECL and MKCL originate from this Common Lisp implementation. ; L: a small version of Common Lisp for embedded systems developed by IS Robotics, now iRobot<ref>{{cite journal|title=L β A Common Lisp for Embedded Systems|first1=Rodney A.|last1=Brooks|first2=et|last2=al. |date=June 22, 1995|citeseerx=10.1.1.2.1953}}</ref> ; [[Lisp Machine]]s (from [[Symbolics]], TI<ref>{{cite web |url=http://bitsavers.trailing-edge.com/pdf/ti/explorer/2549830-0001A_PgmgConcepts.pdf |title=TI Explorer Programming Concepts}}</ref><ref>{{cite web |url=http://bitsavers.trailing-edge.com/pdf/ti/explorer/2243201-0001_LispRef.pdf |title=TI Explorer Lisp Reference}}</ref> and Xerox<ref>{{cite web |url=http://bitsavers.trailing-edge.com/pdf/xerox/interlisp-d/198809_Medley_1.0/400006_Lisp_Release_Notes_Medley_Release_1.0_Sep88.pdf |title=Medley Lisp Release Notes}}</ref>): provided implementations of Common Lisp in addition to their native Lisp dialect (Lisp Machine Lisp or Interlisp). CLOS was also available. Symbolics provides an enhanced version Common Lisp.<ref>{{cite web|url=http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Dictionary.pdf |archive-url=https://web.archive.org/web/20150422190748/http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Dictionary.pdf |archive-date=2015-04-22 |url-status=live |title=Symbolics Common Lisp Dictionary|website=trailing-edge.com}}</ref><ref>{{cite web|url=http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Language_Concepts.pdf |archive-url=https://web.archive.org/web/20150422190751/http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Language_Concepts.pdf |archive-date=2015-04-22 |url-status=live|title=Symbolics Common Lisp Language Concepts|website=trailing-edge.com}}</ref><ref>{{cite web|url=http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Programming_Constructs.pdf |archive-url=https://web.archive.org/web/20150422190752/http://bitsavers.trailing-edge.com/pdf/symbolics/software/open_genera/Symbolics_Common_Lisp_Programming_Constructs.pdf |archive-date=2015-04-22 |url-status=live|title=Symbolics Common Lisp Programming Constructs|website=trailing-edge.com}}</ref> ; Procyon Common Lisp: an implementation for Windows and Mac OS, used by Franz for their Windows port of Allegro CL ; Star Sapphire Common LISP: an implementation for the PC ; [[SubL]]: a variant of Common Lisp used for the implementation of the [[Cyc]] knowledge-based system<ref>{{cite web|url=http://www.cyc.com/documentation/subl-reference/|title=SubL Reference β Cycorp|website=cyc.com}}</ref> ; Top Level Common Lisp: an early implementation for concurrent execution<ref>{{cite web|url=http://www.softwarepreservation.org/projects/LISP/toplevel|title=Top Level Inc. β Software Preservation Group |website=softwarepreservation.org}}</ref> ; WCL: a shared library implementation<ref>[http://dl.acm.org/citation.cfm?id=141560 WCL: Delivering efficient Common Lisp applications under Unix, Proceedings of the 1992 ACM conference on LISP and functional programming], Pages 260β269</ref><ref>{{cite web|url=http://pgc.com/commonlisp/|title=commonlisp.net :: WCL|website=pgc.com|access-date=March 25, 2016|archive-url=https://web.archive.org/web/20160405012115/http://pgc.com/commonlisp/|archive-date=April 5, 2016|url-status=dead}}</ref> ; [[VAX Common Lisp]]: [[Digital Equipment Corporation]]'s implementation that ran on [[VAX]] systems running [[OpenVMS|VMS]] or [[ULTRIX]] ; XLISP: an implementation written by David Betz<ref>{{cite web|url=https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/impl/xlisp/0.html|title=Package: lang/lisp/impl/xlisp/|website=cs.cmu.edu}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)