Previous Chapter Next Chapter Table of Contents Glossary Index

Chapter 3. Building Clozure CL from its Source Code

3.1. Building Definitions
3.1.1. Platform-specific filename conventions
3.2. Setting Up to Build
3.3. Kernel Build Prerequisites
3.4. Building Everything
3.5. Building the Kernel
3.5.1. Using "make" to build the lisp kernel
3.6. Building the Heap Image
3.6.1. Development cycle
3.6.2. Generating a bootstrapping image
3.6.3. Generating fasl files
3.6.4. Building a full image from a bootstrapping image

Clozure CL, like many other Lisp implementations, consists of a kernel and a heap image. The kernel is an ordinary C program, and is built with a C compiler. It provides very basic and fundamental facilities, such as memory management, garbage collection, and bootstrapping. All the higher-level features are written in Lisp, and compiled into the heap image. Both parts are needed to have a working Lisp implementation; neither the kernel nor the heap image can stand alone.

You may already know that, when you have a C compiler which is written in C, you need a working C compiler to build the compiler. Similarly, the Clozure CL heap image includes a Lisp compiler, which is written in Lisp. You therefore need a working Lisp compiler in order to build the Lisp heap image.

Where will you get a working Lisp compiler? No worries; you can use a precompiled copy of a (slightly older and compatible) version of Clozure CL. This section explains how to do all this.

In principle it should be possible to use another implementation of Common Lisp as the host compiler, rather than an older Clozure CL; this would be a challenging and experimental way to build, and is not described here.

Previous Chapter Next Chapter Table of Contents Glossary Index