Lispy versus …

Occasionally, some confusion arises over how Lispy compares to other Common Lisp projects or technologies. Please note any inaccuracies below to the Lispy mailing list so that they may be corrected.

ASDF

ASDF is to library what Lispy is to library management. An ASDF file includes meta data on other ASDF systems, but ASDF provides no mechanism to resolve or integrate those dependencies. Lispy is designed to provide the infrastructure and plumbing necessary for Common Lisp library integration.

Lispy configures an ASDF registry (namely, the special variable asdf:*central-registry*) for the libraries you have installed through Lispy. Lispy is therefore not required at runtime at all. See also asdf-config.lisp, generated by Lispy and stored in your Lispy installation directory.

ASDF-Install

ASDF-Install builds upon ASDF to provide Common Lisp library integration. ASDF-Install relies on CLiki (the Common Lisp Wiki) for resolution of Common Lisp libraries. ASDF-Install uses GnuPG to establish the authenticity of downloaded archives.

ASDF-Install works well, however there are some inconveniences that Lispy tries to address:

Libraries are typically updated independently so there is no coherent idea of a working set of dependencies. Library archives can vanish. Because ASDF-Install, through CLiki, references the library author's project for the actual stored location of archives, CLiki is vulnerable to outages on the library authors' side (e.g. temporary missing, or lapsed domain name registrations). Lispy keeps archives in a central location on common-lisp.net Individual signing of archives using the OpenPGP standards. In order to benefit from archive signatures, one must establish a web of trust with the signer. This is typically done by verifying the authenticity of the signer's key by contacting them. This can be difficult to achieve when there are several dozen library authors. Lispy uses one signing key to establish that the map of libraries can be trusted.

LibCL

LibCL provides a large collection of ready-to-use Common Lisp libraries in a monolithic download and a single path containing symlinks of their ASDF definition files. Therefore installation is very simple. Each release also represents a coherent set of libraries.

Lispy itself only contains the dependencies it needs to bootstrap itself. Every other library is installed dynamically using Lispy's high level list-available/install/upgrade commands. There is no difference between libraries you install with Lispy and the library dependencies Lispy comes with.

cl-librarian

cl-librarian as well as several other Common Lisp library management systems are able to install libraries directly from their source code repositories. Lispy tries to deal with released project archives, or reluctantly creates archives in the case of no released project archives for the few rare projects which do not make releases.

Certainly there is the potential to have an always up-to-date collection of installed libraries using the source code repository approach. The disadvantages include:

Things may break from time to time

Repositories may become unavailable depending on infrastructure.

Heavy external program dependencies (e.g. svn, git, cvs clients).

cl-librarian uses a nifty Lisp DSL for describing libraries.

cl-librarian does not currently support authenticity checking.

clbuild

clbuild is essentially a large shell script and an external projects.txt containing the description of Common Lisp library locations. Like cl-librarian, clbuild is designed to work with source code repositories directly and has the same advantages and disadvantages.

Repo-install

TBD.

Distributions (GNU/Linux, FreeBSD etc.)

Some distributions such as Gentoo Linux, Debian and FreeBSD include distribution packages for Common Lisp libraries. Typically, these distributions build upon ASDF and manage an ASDF central registry. Some include support for the Common Lisp Controller. In general a distributions' packages are not portable between platforms.

Distributions do tend to support code authenticity well (via the same, well established, approaches used for the rest of the distribution's packages).

Lispbox

Lisp in a Box

STARTER-PACK

These are essentially monolithic re-packagings of many Common Lisp libraries. They share some of the same qualities as LibCL.