Lispbox

Lispbox is a version of Lisp in a Box, which was originally created by Matthew Danish and Mikel Evins, customized for use with Practical Common Lisp.

The purpose of Lispbox (and Lisp in a Box) is to get you up and running in a good Lisp environment as quickly as possible. When you start Lispbox it launches the text editor Emacs with SLIME (the Superior Lisp Interaction Mode for Emacs) already installed and starts Common Lisp for you. Lisp in a Box is designed to not interfere with your existing Emacs installation, if you have one. If you are already an Emacs user, you may wish to install the no-Emacs version designed to work with an existing Emacs installation.

For more about what Lispbox is, read on; otherwise hop down to the download section and start downloading.

What Lispbox gives you

A full Lispbox distribtion contains:

When you run the Lispbox application it will start Emacs and start Common Lisp in SLIME and you're ready to start hacking. You can use ASDF to load the various libraries and applications from Practical Common Lisp.

For instance, to load the test-framework from Chapter 9 you can type:

  (oos 'load-op :test-framework)

at the REPL prompt. Or you can use the SLIME shortcut load-system available by typing a comma followed by load-system and then, when prompted, the name test-framework. (Coming soon: the abilility to load the code from a specific chapter via a system named chapter-X.)

As of version 0.3 there are also ASD files named chapter-X for each chapter. So you can, for instance, load the test framework codeby typing:

  (oos 'load-op :chapter-9)

Lispbox special features

The environment provided by Lispbox has a few special features beyond what you'd get from combining Emacs, SLIME, ASDF, and a Common Lisp implementation. These features are designed to make it easier to use, particularly for new Lispers.

Download Lispbox

Lispbox is designed to given you everything you need to get up and running, hacking Common Lisp, in one easy-to-install download. However you do need to pick the right version of Lispbox for the OS you are using and the Common Lisp implementation you want to try.

All of the Lisp implementations available here are high-quality implementations that can be used for learning Lisp and for writing real applications. However if you want to be able to run all the practical examples from Practical Common Lisp the easiest path is to use Allegro since it supports both Unicode and threads and has AllegroServe built in. CLISP has excellent Unicode support but no threads. SBCL added Unicode in version 0.8.17 but there are still, as of this writing, a few wrinkles to work out. And it supports threads only on GNU/Linux 2.6 systems running on x86. OpenMCL supports native threads but not Unicode. The ID3 parser developed in Chapter 25 works best in Lisps that support Unicode but will work fine in non-Unicode Lisps as long as none of the MP3 files you want to parse contain Unicode strings. And the Shoutcast server developed in Chapters 28 and 29 requires an implementation that supports multiple threads.

OS X (10.4/PPC) OS X (10.4/Intel) GNU/Linux x86 GNU/Linux x86-64 Windows
Allegro 8.1 8.1 8.1 8.1 8.1
SBCL 0.9.7 0.9.7
Clozure CL 1.0 1.0
CLISP 2.35 2.36 2.37

To choose a Lisbox, pick the operating system you are running and the Common Lisp implementation you want to try. The numbers in the table's cells are the version of the Lisp implementation. If you choose Allegro on a OS other than Windows you will need to get a free licence from Franz. You can do this by running the newlicense program in the acl81_express subdirectory of the Lispbox installation. On Windows the installer will obtain and install the license for you.

Since Lispbox is designed primarily for folks who haven't used Emacs before (or who just want to try out Lisp without mucking with their existing Emacs setup) it is designed to work completely standalone. This should increase the liklihood that it'll Just Work. However this does mean that it doesn't load your ~/.emacs file if you have one. Of course if you know enough to have a ~/.emacs you can probably figure out how to change that. Note: I used to provide Lispbox distributions intended to be loaded into an existing Emacs installation. I'm dropping support for those for the time being as very few people seemed to use them and they mostly just confused people.