[Ecls-list] ECL fasl format

Gabriel Dos Reis gdr at integrable-solutions.net
Tue Jul 27 10:37:16 UTC 2010


On Sat, Jul 17, 2010 at 4:41 PM, Juan Jose Garcia-Ripoll
<juanjose.garciaripoll at googlemail.com> wrote:
> On Thu, Jul 15, 2010 at 3:08 AM, Gabriel Dos Reis
> <gdr at integrable-solutions.net> 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.

Many thanks.

-- Gaby




More information about the ecl-devel mailing list