Previous Chapter | Next Section | Table of Contents | Glossary | Index |
The following terms are used in subsequent sections; it may be helpful to refer to these definitions.
fasl
files are the object files produced
by compile-file
. fasl files store the
machine code associated with function definitions and the
external representation of other lisp objects in a compact,
machine-readable form. fasl is short for
“FAS
t
L
oading”. Clozure CL uses different pathname
types (extensions) to name fasl files on different platforms;
see
Table 3.1, “Platform-specific filename conventions”
The Lisp kernel is a C program with a fair amount of platform-specific assembly language code. Its basic job is to map a lisp heap image into memory, transfer control to some compiled lisp code that the image contains, handle any exceptions that occur during the execution of that lisp code, and provide various other forms of runtime support for that code. Clozure CL uses different filenames to name the lisp kernel files on different platforms; see Table 3.1, “Platform-specific filename conventions”.
A heap
image is a file that can be quickly mapped into a
process's address space. Conceptually, it's not too different
from an executable file or shared library in the OS's native
format (ELF or Mach-O/dyld format); for historical reasons,
Clozure CL's own heap images are in their own (fairly simple)
format. The term full heap image
refers to a
heap image file that contains all of the code and data that
comprise Clozure CL. Clozure CL uses different filenames to name the
standard full heap image files on different platforms; see
Table 3.1, “Platform-specific filename conventions”.
A bootstrapping image is a minimal heap image used in the process of building Clozure CL itself. The bootstrapping image contains just enough code to load the rest of Clozure CL from fasl files. It may help to think of the bootstrapping image as the egg and the full heap image as the chicken. Clozure CL uses different filenames to name the standard bootstrapping image files on different platforms; see Table 3.1, “Platform-specific filename conventions” .
Each supported platform (and possibly a few
as-yet-unsupported ones) has a uniquely named subdirectory of
ccl/lisp-kernel/
; each such
contains a Makefile and may contain some auxiliary files (linker
scripts, etc.) that are used to build the lisp kernel on a
particular platform.The platform-specific name of the kernel
build directory is described in
Table 3.1, “Platform-specific filename conventions”.
Table 3.1. Platform-specific filename conventions
Platform | kernel | full-image | boot-image | fasl extension | kernel-build directory |
---|---|---|---|---|---|
DarwinPPC32 | dppccl | dppccl.image | ppc-boot.image | .dfsl | darwinppc |
LinuxPPC32 | ppccl | ppccl.image | ppc-boot | .pfsl | linuxppc |
DarwinPPC64 | dppccl64 | dppccl64.image | ppc-boot64.image | .d64fsl | darwinppc64 |
LinuxPPC64 | ppccl64 | ppccl64.image | ppc-boot64 | .p64fsl | linuxppc64 |
LinuxX8664 | lx86cl64 | lx86cl64.image | x86-boot64 | .lx64fsl | linuxx8664 |
LinuxX8632 | lx86cl | lx86cl.image | x86-boot32 | .lx32fsl | linuxx8632 |
DarwinX8664 | dx86cl64 | dx86cl64.image | x86-boot64.image | .dx64fsl | darwinx8664 |
DarwinX8632 | dx86cl | dx86cl.image | x86-boot32.image | .dx32fsl | darwinx8632 |
FreeBSDX8664 | fx86cl64 | fx86cl64.image | fx86-boot64 | .fx64fsl | freebsdx8664 |
FreeBSDX8632 | fx86cl | fx86cl.image | fx86-boot32 | .fx32fsl | freebsdx8632 |
SolarisX64 | sx86cl64 | sx86cl64.image | sx86-boot64 | .sx64fsl | solarisx64 |
SolarisX86 | sx86cl | sx86cl.image | sx86-boot32 | .sx32fsl | solarisx86 |
Win64 | wx86cl64.exe | sx86cl64.image | wx86-boot64.image | .wx64fsl | win64 |
Win32 | wx86cl.exe | wx86cl.image | wx86-boot32.image | .wx32fsl | win32 |
Previous Chapter | Next Section | Table of Contents | Glossary | Index |