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.
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)
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.
CL-USER
is "cleaned" of any
implementation-dependent packages. This makes it easier to follow
along the code in the book (particularly in the early chapters before
I've introduced packages) without running into name conflicts with
names exported from implementaton-defined packages that might
otherwise be inherited by CL-USER
. This does have
the consequence that certain implementation-specific extensions are
not automatically available. But they can easily be added back once
you know about Common Lisp's package system.COMPILE-FILE
. The former makes it slightly
easier to install new Common Lisp libraries and, more important,
provides a mechanism that works the same on OS X, GNU/Linux, and
Windows. The latter makes it easier to experiment with different Lisp
implementations since it causes the files generated
by COMPILE-FILE
to be placed in an
implementation/operating system/architecture dependent directory.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.