A system for installing Common Lisp libraries and source on Debian, Fedora, Gentoo and Ubuntu linux systems.

Released packages are available from As of August 2009, the latest package for the Debian sid (unstable) distribution is version 6.18.

Low traffic mailing lists are clc-users and clc-devel. Debian packaging questions are directed to pkg-common-lisp-devel. An old source repository, last updated in 2005, is at Debian alioth.

Authors are Peter Van Eynde, Kevin Rosenberg and Rene van Bevern.

A manual for version 4 (2004) is at, though additional documentation is included with the package.

Currently, Common Lisp Controller is supported by the following Common Lisp implementations in Debian:

  • SBCL
  • CLisp
  • ECL
  • OpenMCL
  • AllegroCL
  • Lispworks

The very first thing you have to do is:

# aptitude install common-lisp-controller
Installation of other Common Lisp libraries should then be a simple matter of:
# aptitude install <package name>
e.g aptitude install cl-split-sequence You're good to go now.

How it works (note: we're describing version 4 here):

  • it's expected to be used with a package system that can run setup scripts after installing things.
  • lisp packages are distributed as source code, placed in the /usr/share/common-lisp/source/package/.
  • asdf is required. Each package needs a system definition that expects it to be found in /usr/share/common-lisp/systems/.
  • it does not anymore use the logical pathname system. Instead it overrides the asdf:output-files method to divert the fasls to a user, implementation and library specific location. At the moment /var/cache/common-lisp-controller/user-name/implementation/library/.
  • To use a library the user just has to use (clc:clc-require :foo)
  • To recompile all libraries the user can use (clc:clc-build-all-packages) or (clc:clc-build-all-packages t) to ignore any errors during rebuilding.
  • On installation of an implementation it should run /usr/sbin/register-common-lisp-implementation bar where bar is the name of the implementation. On removal it should call the /usr/sbin/unregister-common-lisp-implementation bar command.
  • An implementation should provide a /usr/lib/common-lisp/bin/ script that implements the install-clc command.
  • On installation libraries should call /usr/sbin/register-common-lisp-source foo on removal /usr/sbin/unregister-common-lisp-source foo.
  • Also there is now a debconf interface for site-name stuff that implementations should use if possible. The results are stored in /etc/lisp-config.lisp.

We simply add a system location to asdf's ASDF:*CENTRAL-REGISTRY*, so the native locations still work. To install local packages, either use asdf-install or modify at ASDF:*CENTRAL-REGISTRY* to also point to your files.