Steel Bank Common Lisp

Getting Started

SBCL is available in source and binary form for a number of different architectures. This page describes how to get SBCL installed and how to start using it. For more complete installation instructions, please see the INSTALL document that comes with SBCL.

Installing a binary

SBCL is available in binary form for many architectures. To obtain the latest binary release for your system, visit the platform support page and click on the green square which indicates your platform. When the binary is downloaded, unpack the tarball:

bzip2 -cd sbcl-1.1.17-x86-linux-binary.tar.bz2 | tar xvf -
replacing sbcl-1.1.17-x86-linux-binary.tar.bz2 with the name of the tarball you downloaded. Then enter the directory which was unpacked, and run the installation script to install SBCL in your /usr/local directory:
cd sbcl-1.1.17-x86-linux

Running SBCL

Make sure that /usr/local/bin is in your PATH. Then run SBCL by invoking "sbcl", which should produce a banner like this:

This is SBCL 1.1.17, an implementation of ANSI Common Lisp.
More information about SBCL is available at <>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
To quit SBCL, type (quit).

Installing to a different prefix

You can install SBCL to a different directory prefix by setting the INSTALL_ROOT environment variable before running the installation script:

INSTALL_ROOT=/my/sbcl/prefix sh
To start SBCL, you need to set the SBCL_HOME environment variable to point at a subdirectory of the place you installed SBCL:
export SBCL_HOME=/my/sbcl/prefix/lib/sbcl # for bash / zsh
setenv SBCL_HOME /my/sbcl/prefix/lib/sbcl # for csh / tcsh
Make sure that /my/sbcl/prefix/bin is in your PATH and invoke SBCL as described above.

Using SBCL with Emacs

If you are going to use SBCL to develop Common Lisp, you will want a development environment which is more human friendly than the basic SBCL read-eval-print-loop. Such an environment is provided by SLIME, the Superior Lisp Interaction Mode for Emacs. SLIME provides many features, including an enhanced REPL with symbol completion and command-line history and interactive support for compiling and debugging code.

Compiling SBCL from Source

SBCL can be compiled from source code using another ANSI-compliant Common Lisp implementation. As of SBCL 0.8.13, the following compilers are known to work:

  • SBCL itself
  • CMU Common Lisp, tested with 18e and 19a
  • OpenMCL 0.14.1
  • CLISP 2.33.2
  • To compile SBCL, first unpack the source tarball and enter the directory it makes. Then make sure that your system's make is a GNU make or set the GNUMAKE environment variable appropriately:
    export GNUMAKE=gnumake # for bash / zsh
    setenv GNUMAKE gnumake # for csh / tcsh
    Then you will need to invoke the build shell script with the appropriate argument for the host Common Lisp you are using:
    CMUCLsh "lisp -batch"
    OpenMCLsh "openmcl --batch"
    CLISPsh "clisp"
    Important: It is highly recommended that you run the script in either a very fast terminal such as xterm (the GNOME terminal and the OS X terminal are too slow) or that you run it in a detached GNU screen session (use C-a d to detach the session and screen -r to resume it). The SBCL compile produces lots of output and your system's terminal program will likely slow down the compile in a drastic manner.

    To install the SBCL binary you have built, see the installation instructions above.