CMU Common Lisp

CMUCL
Original author(s) Carnegie Mellon University
Developer(s) Various
Initial release early 1980 (1980)
Stable release
21b[1] / October 2016 (2016-10)
Repository gitlab.common-lisp.net/cmucl/cmucl
Operating system several POSIX-compliant OSs
Platform Cross-platform
Available in Common Lisp
Type Compiler and runtime
License Public Domain
Website www.cons.org/cmucl/

CMUCL is a free Common Lisp implementation, originally developed at Carnegie Mellon University.

CMUCL runs on most Unix-like platforms, including Linux and BSD; there is an experimental Windows port as well. Steel Bank Common Lisp is derived from CMUCL. The Scieneer Common Lisp is a commercial derivative from CMUCL.

History

The earliest implementation predates Common Lisp and was part of Spice Lisp, around 1980. In 1985 Rob MacLachlan started re-writing the compiler to what would become the Python compiler and CMUCL was ported to Unix workstations such as the IBM PC RT, MIPS and SPARC. Early CMUCL releases did not support Intel's x86 architecture due to a lack of registers. CMUCL strictly separated type-tagged and immediate data types and the garbage collector would rely on knowing that one half of the CPU registers could only hold tagged types and the other half only untagged types. This did not leave enough registers for a Python backend.

After CMU canceled the project (in favor of a Dylan implementation using some of CMUCL's compiler base) maintenance has been taken over by a group of volunteers. By 1996 this group was making regular releases on its own infrastructure.

Around the same time a port to Intel's x86 architecture was completed, first running on FreeBSD, later Linux. The problem of lacking registers was solved by a new conservative garbage collector. This new garbage collector accepts any value of any type in the registers, and treats anything that might be a pointer as a pointer for the purpose of not collecting or moving its target.

Compiler and other code execution units

Features

See also

References

External links

This article is issued from Wikipedia - version of the 11/28/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.