On Sat, Jul 17, 2010 at 4:41 PM, Juan Jose Garcia-Ripoll
> On Thu, Jul 15, 2010 at 3:08 AM, Gabriel Dos Reis
> <gdr@...> wrote:
>> Do you have a documentation for ECL's FASL format (and data structures)?
> Not really: read.d and more precisely read_VV document the process of
> initializing a FASL file, while load.d shows how it is loaded.
> FASL files are just shared libraries. We do not use "formats" as such, but
> just link together object files.
> Each object file contains a single initialization routine, which is just a C
> function with the statements in the lisp file, compiled.
> This routine is called twice by read_VV. The first time it just returns a
> structure (ecl_codeblock) with some fields filled in, such as the text
> representation of all constants, the text representation of those constants
> that are only used during initialization (and can be eliminated afterwards),
> and some debug information.
> The second time, the init function executes the compiled statements I
> mentioned before. Now all constants and packages have been set up and thus
> the lisp code works just fine. Functions will be installed by the statements
> that implement DEFUN, and macros, classes, and other things will be defined.
> But again, this is _how_ it works. There is no format as such. ECL just uses
> whatever the operating system provides in terms of binary file formats,
> system calls to load them, etc.