Clozure CL
Encyclopedia
Clozure CL is a Common Lisp
implementation. It implements the full ANSI Common Lisp standard with several extensions (CLOS MOP, threads, CLOS conditions, CLOS streams, ...). It contains a command line development environment, an experimental integrated development environment (IDE) for Mac OS X using the Hemlock
editor, and can also be used with SLIME
(a Common Lisp development environment for GNU Emacs). Clozure CL is open source
and the project is hosted by Clozure Associates.
, Linux
, FreeBSD
, Solaris and Microsoft Windows
platforms. There are 32 and 64 bit x86 variants for each. Additionally, there are PowerPC
ports for Mac OS X and Linux, and a 32-bit ARM
port for Linux.
for the business logic of a new Airline Reservation System for Air Canada
.
Lisp threads are implemented as preemptively-scheduled, native operating-system threads.
CCL implements built-in facilities to easily interface with C and Objective-C libraries (Cocoa bridge) and these are used to implement the IDE amongst other things.
The IDE
(based upon the Hemlock editor
) is currently labelled as experimental. An effort is underway to improve this.
Common Lisp
Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 , . From the ANSI Common Lisp standard the Common Lisp HyperSpec has been derived for use with web browsers...
implementation. It implements the full ANSI Common Lisp standard with several extensions (CLOS MOP, threads, CLOS conditions, CLOS streams, ...). It contains a command line development environment, an experimental integrated development environment (IDE) for Mac OS X using the Hemlock
Hemlock (editor)
Hemlock is a free Emacs-style text editor for most POSIX-compliant Unix systems. It follows the tradition of the Lisp Machine editor ZWEI and the ITS/TOPS-20 implementation of Emacs, but differs from many other Emacs variants in that is written in Common Lisp rather than the usual Emacs Lisp — that...
editor, and can also be used with SLIME
SLIME
SLIME, the Superior Lisp Interaction Mode for Emacs, is an Emacs mode for developing Common Lisp applications. SLIME originates in an Emacs mode called SLIM written by Eric Marsden and developed as an open-source project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed...
(a Common Lisp development environment for GNU Emacs). Clozure CL is open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
and the project is hosted by Clozure Associates.
Supported platforms
Clozure CL supports the Mac OS XMac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
, Solaris and Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
platforms. There are 32 and 64 bit x86 variants for each. Additionally, there are PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
ports for Mac OS X and Linux, and a 32-bit ARM
ARM
An arm is an upper limb of the body.Arm may also refer to:-Geography:* Arm , a narrow stretch of a larger body of water** Canal arm, a subsidiary branch of a canal or inland waterway** Distributary or arm, a subsidiary branch of a river...
port for Linux.
Applications
Clozure CL is used by ITA SoftwareITA Software
ITA Software is a travel industry software company in Cambridge, Massachusetts. The company was founded by computer scientists from the MIT Artificial Intelligence Laboratory in 1996. On July 1, 2010 ITA agreed to be acquired by Google. On April 8th, 2011 the US Department of Justice approved the...
for the business logic of a new Airline Reservation System for Air Canada
Air Canada
Air Canada is the flag carrier and largest airline of Canada. The airline, founded in 1936, provides scheduled and charter air transport for passengers and cargo to 178 destinations worldwide. It is the world's tenth largest passenger airline by number of destinations, and the airline is a...
.
Technology
CCL contains a precise, generational, compacting garbage collector. CCL's compiler produces native instructions for Lisp expressions and files. By default every expression entered at the REPL is compiled to native code.Lisp threads are implemented as preemptively-scheduled, native operating-system threads.
CCL implements built-in facilities to easily interface with C and Objective-C libraries (Cocoa bridge) and these are used to implement the IDE amongst other things.
The IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
(based upon the Hemlock editor
Hemlock (editor)
Hemlock is a free Emacs-style text editor for most POSIX-compliant Unix systems. It follows the tradition of the Lisp Machine editor ZWEI and the ITS/TOPS-20 implementation of Emacs, but differs from many other Emacs variants in that is written in Common Lisp rather than the usual Emacs Lisp — that...
) is currently labelled as experimental. An effort is underway to improve this.