wiki:FaslFormatAndLoading

FASL format

The system supports 2 types of FASL files (compiles lisp files): Uncompressed and compressed ones. These FASL files can be loaded into a running Lisp image. Both compressed and uncompressed fasls have the extension '.abcl'.

Uncompressed

An uncompressed fasl is a '.abcl' file and a series of '.cls' files. The .abcl file contains (textual) Lisp instructions, some of which may be to load a compiled function file (a '.cls' file). The '.cls' files are Java class files containing compiled Lisp functions: Lisp functions translated into java byte code.

Compressed

A compressed fasl is a single '.abcl' file: a zip archive containing the files as described above. The difference being that the '.abcl' file as described above has a '._' extension in the archive.

FASL loading

The FASL loader reads the instructions (mostly Lisp) from the uncompressed '.abcl' or '._' file. When so instructed, it loads a compiled function from a '.cls' file into memory, using a custom class loader to load the Java class in the memory buffer.

When the FASL is a compressed one, the compiled-functions loader finds the files it needs to load inside the .abcl (zipped) archive.

Last modified 9 years ago Last modified on 11/01/08 16:43:36