SICL

Purpose and objectives

The SICL project aims to supply building blocks for implementers of Common Lisp systems. These building blocks come in the form of modules, implementing some part of the HyperSpec.

Most modules are implemented in entirely portable Common Lisp, making it easy to use them as drop-in modules in any standard-conforming Common Lisp implementation. In order to avoid circular dependencies, we implicitly define a hierarchy of modules where higher-level modules only use the functionality of lower-level modules.

Contrary to similar projects in the past, the SICL cares about performance. For that, we use compiler macros and other techniques to detect common special use cases that can be implemented more efficiently than the general case.

While performance is important, so is understandability. We would like for the code to be easy to read and understand, so that it can serve as teaching material for people interested in implementing Common Lisp. In cases where performance is not considered important, such as in macro expanders, we instead put considerable effort into making the code very clear and general. In particular, we use more object-oriented techniques than are typically used in traditional Common Lisp implementations.

Downlaoad releases

Download repository

The SICL project uses the GIT version management system. To clone the repository, use git clone git://common-lisp.net/projects/sicl/SICL.git if you are not a project member, and git clone your-name@common-lisp.net:/project/sicl/public_html/SICL.git if you are.

Back to Common-lisp.net.

Valid XHTML 1.0 Strict