Previous: , Up: System Building   [Contents]


2.3 Building Core Images

Both the kernel and final core build are normally done using shell script drivers:

do-worldbuild*

Builds a kernel core for the current machine. The version to build is indicated by an optional argument, which defaults to “alpha”. The kernel.core file is written either in the lisp/ directory in the build area, or in /usr/tmp/. The directory which already contains kernel.core is chosen. You can create a dummy version with e.g. “touch” to select the initial build location.

mk-lisp*

Builds a full core, with conditional loading of subsystems. The version is the first argument, which defaults to “alpha”. Any additional arguments are added to the *features* list, which controls system loading (among other things.) The lisp.core file is written in the current working directory.

These scripts load Lisp command files. When tools/worldbuild.lisp is loaded, it calls genesis with the correct arguments to build a kernel core. Similarly, worldload.lisp builds a full core. Adding certain symbols to *features* before loading worldload.lisp suppresses loading of different parts of the system. These symbols are:

:no-compiler

don’t load the compiler.

:no-clx

don’t load CLX.

:no-clm

don’t load CLM.

:no-hemlock

don’t load Hemlock.

:no-pcl

don’t load PCL.

:runtime

build a runtime code, implies all of the above, and then some.

Note: if you don’t load the compiler, you can’t (successfully) load the pretty-printer or pcl. And if you compiled hemlock with CLX loaded, you can’t load it without CLX also being loaded.

These features are only used during the worldload process; they are not propagated to the generated lisp.core file.


Previous: Compiling the Lisp Code, Up: System Building   [Contents]