Steel Bank Common Lisp

Last updated
SBCL
Original author(s) Forked by William Newman from CMUCL
Developer(s) Various
Initial releaseDecember 1999;24 years ago (1999-12) (fork)
Stable release
2.3.10 [1]   OOjs UI icon edit-ltr-progressive.svg / 30 October 2023;43 days ago (30 October 2023)
Repository
Operating system Linux, Solaris, DragonFly BSD, FreeBSD, NetBSD, OpenBSD, Mac OS X, Microsoft Windows
Platform Cross-platform
Available in Common Lisp
Type Compiler and runtime
License Public Domain, with parts covered by the MIT License and BSD License (sans advertising clause)
Website www.sbcl.org

Steel Bank Common Lisp (SBCL) is a free Common Lisp implementation that features a high-performance native compiler, Unicode support and threading. It is open source software, with a permissive license. In addition to the compiler and runtime system for ANSI Common Lisp, it provides an interactive environment including a debugger, a statistical profiler, a code coverage tool, and many other extensions. [2]

Contents

The name "Steel Bank Common Lisp" is a reference to Carnegie Mellon University Common Lisp from which SBCL forked: Andrew Carnegie made his fortune in the steel industry and Andrew Mellon was a successful banker.

History

SBCL descends from CMUCL (created at Carnegie Mellon University), which is itself descended from Spice Lisp, [3] including early implementations for the Mach operating system on the IBM RT PC, and the Three Rivers Computing Corporation PERQ computer, in the 1980s.

William Newman originally announced SBCL as a variant of CMUCL in December 1999. [3] [4] The main point of divergence at the time was a clean bootstrapping procedure: CMUCL requires an already compiled executable binary of itself to compile the CMUCL source code, whereas SBCL supported bootstrapping from theoretically any ANSI-compliant Common Lisp implementation.

SBCL became a SourceForge project in September 2000. [3] The original rationale for the fork was to continue the initial work done by Newman without destabilizing CMUCL which was at the time already a mature and much-used implementation. The forking was amicable, and there have since then been significant flows of code and other cross-pollination between the two projects.

Since then SBCL has attracted several developers, been ported to multiple hardware architectures and operating systems, [5] and undergone many changes and enhancements: while it has dropped support for several CMUCL extensions that it considers beyond the scope of the project (such as the Motif interface) it has also developed many new ones, including native threading and Unicode support.

Version 1.0 was released in November 2006, and active development continues.

William Newman stepped down as project administrator for SBCL in April 2008. [6] Several other developers have taken over interim management of releases for the time being. [7]

For the tenth anniversary of SBCL, a Workshop was organized. [8]

Version 2.0.0 was released on 29 December 2019 for the 20th anniversary of SBCL, with no major breaking changes. [9]

Related Research Articles

<span class="mw-page-title-main">Common Lisp</span> Programming language standard

Common Lisp (CL) is a dialect of the Lisp programming language, published in American National Standards Institute (ANSI) standard document ANSI INCITS 226-1994 (S20018). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.

<span class="mw-page-title-main">Lisp (programming language)</span> Programming language family

Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common use, after Fortran. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket, and Clojure.

Kent M. Pitman (KMP) is a programmer who has been involved for many years in the design, implementation, and use of systems based on the programming languages Lisp and Scheme. Since 2010, he has been President of HyperMeta, Inc.

<span class="mw-page-title-main">Guy L. Steele Jr.</span> American computer scientist (born 1954)

Guy Lewis Steele Jr. is an American computer scientist who has played an important role in designing and documenting several computer programming languages and technical standards.

Interlisp is a programming environment built around a version of the programming language Lisp. Interlisp development began in 1966 at Bolt, Beranek and Newman in Cambridge, Massachusetts with Lisp implemented for the Digital Equipment Corporation (DEC) PDP-1 computer by Danny Bobrow and D. L. Murphy. In 1970, Alice K. Hartley implemented BBN LISP, which ran on PDP-10 machines running the operating system TENEX. In 1973, when Danny Bobrow, Warren Teitelman and Ronald Kaplan moved from BBN to the Xerox Palo Alto Research Center (PARC), it was renamed Interlisp. Interlisp became a popular Lisp development tool for artificial intelligence (AI) researchers at Stanford University and elsewhere in the community of the Defense Advanced Research Projects Agency (DARPA). Interlisp was notable for integrating interactive development tools into an integrated development environment (IDE), such as a debugger, an automatic correction tool for simple errors, and analysis tools.

<span class="mw-page-title-main">CLISP</span> Version of programming language Common Lisp

CLISP is an implementation of the programming language Common Lisp originally developed by Bruno Haible and Michael Stoll for the Atari ST. Today it supports the Unix and Microsoft Windows operating systems.

An incremental compiler is a kind of incremental computation applied to the field of compilation. Quite naturally, whereas ordinary compilers make a so-called clean build, that is, (re)build all program modules, an incremental compiler recompiles only modified portions of a program.

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

Greenspun's tenth rule of programming is an aphorism in computer programming and especially programming language circles that states:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

Embeddable Common Lisp (ECL) is a small implementation of the ANSI Common Lisp programming language that can be used stand-alone or embedded in extant applications written in C. It creates OS-native executables and libraries from Common Lisp code, and runs on most platforms that support a C compiler. The ECL runtime is a dynamically loadable library for use by applications. It is distributed as free software under a GNU Lesser Public License (LGPL) 2.1+.

*Lisp is a programming language, a dialect of the language Lisp. It was conceived of in 1985 by two employees of the Thinking Machines Corporation, Cliff Lasser and Steve Omohundro, as a way to provide an efficient yet high-level language for programming the nascent Connection Machine (CM).

<span class="mw-page-title-main">StumpWM</span>

StumpWM is a tiling window manager that was created when developer Shawn Betts found ratpoison growing increasingly large and "lispy". Intended as a successor to ratpoison, StumpWM is released under the terms of the GPL-2.0-or-later license.

<span class="mw-page-title-main">Allegro Common Lisp</span>

Allegro Common Lisp is a programming language with an integrated development environment (IDE), developed by Franz Inc. It is a dialect of the language Lisp, a commercial software implementation of the language Common Lisp. Allegro CL provides the full American National Standards Institute (ANSI) Common Lisp standard with many extensions, including threads, CLOS streams, CLOS MOP, Unicode, SSL streams, implementations of various Internet protocols, OpenGL interface. The first version of Allegro Common Lisp was finished at the end of 1986, originally called Extended Common Lisp. Allegro CL is available for many operating systems including Microsoft Windows (32/64-bit), and many Unix and Unix-like, 32-bit or 64-bit, including macOS, Linux (32/64-bit), FreeBSD (32-bit), Solaris, UNICOS, and UTS. Internationalization and localization support is based on Unicode. It supports various external text encodings and provides string and character types based on Universal Coded Character Set 2 (UCS-2). Allegro CL can be used with and without its integrated development environment (IDE), which is available for Windows, Linux, and on macOS in version 8.2. The IDE includes development tools including an editor and an interface designer. Allegro CL can be used to deliver applications.

LispWorks is computer software, a proprietary implementation and integrated development environment (IDE) for the programming language Common Lisp. LispWorks was developed by the UK software company Harlequin Ltd., and first published in 1989. Harlequin ultimately spun off its Lisp division as Xanalys Ltd., which took over management and rights to LispWorks. In January 2005, the Xanalys Lisp team formed LispWorks Ltd. to market, develop, and support the software.

<span class="mw-page-title-main">SLIME</span>

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. It is developed as an open-source public domain software project by Luke Gorrie and Helmut Eller. Over 100 Lisp developers have contributed code to SLIME since the project was started in 2003. SLIME uses a backend called Swank that is loaded into Common Lisp.

Spice Lisp is a programming language, a dialect of Lisp. Its implementation, originally written by Carnegie Mellon University's (CMU) Spice Lisp Group, targeted the microcode of the 16-bit workstation PERQ, and its operating system Accent. It used that workstation's microcode abilities to implement a stack machine architecture to store its data structures as 32-bit objects and to enable run time type-checking. It would later be popular on other workstations.

Clozure CL (CCL) is a Common Lisp implementation. It implements the full ANSI Common Lisp standard with several extensions. 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. Clozure CL is open source and the project is hosted by Clozure Associates.

FriCAS is a general purpose computer algebra system with a strong focus on mathematical research and development of new algorithms. It comprises an interpreter, a compiler and a still-growing library of more than 1,000 domains and categories.

In computer programming, self-hosting is the use of a program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software is commonplace on personal computers and larger systems. Other programs that are typically self-hosting include kernels, assemblers, command-line interpreters and revision control software.

References

  1. Christophe Rhodes. "sbcl-2.3.10 released" . Retrieved 4 November 2023.
  2. "About - Steel Bank Common Lisp". www.sbcl.org. Retrieved 2023-12-12.
  3. 1 2 3 Hirschfeld & Rose 2008, p. 76.
  4. http://www-jcsu.jesus.cam.ac.uk/~csr21/sbcl-0.0 original email announcement of the fork from CMUCL
  5. "Download - Steel Bank Common Lisp".
  6. http://groups.google.com/group/sbcl-devel/msg/4374486c33601c7f Mail from William Newman where he announces his resignation
  7. http://groups.google.com/group/sbcl-devel/msg/59c9cd6ce9949b61 Mail from Christophe Rhodes describing the interim SBCL management
  8. SBCL's 10th Anniversary Workshop
  9. Rhodes, Christophe. "sbcl-2.0.0 released". sourceforge.net. Retrieved 1 May 2021.

Works cited

Further reading