[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

Common Lisp in Debian Manual
Chapter 1 - Common Lisp Controller

As Common Lisp is an ANSI Standard, multiple implementations of the language exist in Debian. Because these have different objectives and distinct features beyond ANSI Common Lisp, this document cannot declare a default implementation.

Instead, Debian provides the Common Lisp Controller (CLC) from the common-lisp-controller package. The CLC manages Common Lisp implementations and libraries in a Debian system by compiling sources on demand for desired implementations and handling implementation updates.

E.g., it allows for loading libraries using (clc:clc-require :asdf-system-name) or rebuilding all installed sources using (clc:clc-build-all-packages) on a number of different implementations.

1.1 Customizing default images

Common Lisp Controller can pre-load the images of various implementations with frequently-needed libraries. It is working for all implementations that support saving the current memory image at run time (e.g. SBCL, Clisp, and CMUCL) and for some that need to link an image from pre-compiled objects (i.e. ECL at the moment).

To make use of this feature, write the names of the ASDF systems (one per line) you wish to have pre-loaded in files of the form /etc/common-lisp/images/implementation.

1.2 Common Lisp Controller Setup

Compiling the Common Lisp Controller for an implementation is done by loading /usr/share/common-lisp/source/common-lisp-controller/common-lisp-controller.lisp, and running (common-lisp-controller:compile-common-lisp-controller-v5 "implementation") afterwards. This function returns a list of object files that have resulted from the compilation of CLC. They are supposed to make up the new image and can be used by implementations like ECL to link one.

Setting up the Common Lisp Controller is done by invoking (common-lisp-controller:init-common-lisp-controller-v5 "implementation") afterwards. This can be done in the implementation's startup stage after an image with the above objects has been loaded, or you can set it up prior to saving a new default lisp image at runtime (this is the more usual case).

It must be possible to restore the original CLC-less state of the implementation.

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ next ]

Common Lisp in Debian Manual

René van Bevern rvb@debian.org