Previous: Compiling the Lisp Code, Up: System Building [Contents]
Both the kernel and final core build are normally done using shell script drivers:
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.
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:
don’t load the compiler.
don’t load CLX.
don’t load CLM.
don’t load Hemlock.
don’t load PCL.
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]