Artifact 3f5afa6031be370ae591aa22aebecd52f183847ef0fc800010b3ede65ece6ed8:
- File
psl-1983/doc/fasl-file-specs.mss
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1286) [annotate] [blame] [check-ins using] [more...]
Current FASL file format: Word: Magic number (currently 99). Word: Number of local IDs. Block: Local ID names, in order, in regular Lisp format (string size followed by block of chars). Word: Size of code segment in words. Word: Offset in addressing units of initialization procedure. Block: Code segment. Word: Size of bit table in words (redundant, could be eliminated). Block: Bit table. Bit table format: Block of 2 bit items, one for each \addressing unit/ in the code block. 0: Don't relocate at this offset. 1: Relocate the word at this offset in the code segment. 2: Relocate the (halfword on VAX, right half on 20) at this offset. 3: Relocate the info field of the Lisp item at this offset. The data referred to by relocation entries in the bit table are split into tag and info fields. The tag field specifies the type of relocation to be done: 0: Add the code base to the info part. 1: Replace the local ID number in the info part by its global ID number. 2: Replace the local ID number in the info part by the location of its value cell. 3: Replace the local ID number in the info part by the location of its function cell. Local ID numbers begin at 2048, to allow for statically allocated ID numbers (those which will be the same at compile time and load time).