1.0.27.31: repeatable fasl header and debug-source
The fasl header is easy to deal with; writing "at cross-compile time"
instead of something depending on the host is easy. The debug-source is
harder; we set the structure slots to 0 in the cross-compiler, and
arrange for cold-init to patch sensible values in (by inventing a new
FOP to note the debug-source's arrival).
made up of 5 commits, whose individual messages follow:
deal with trivial volatile contents of fasl files
Don't try to preserve, even in the header, information about which
implementation or machine was used for the compilation.
Similarly, don't emit the timestamps in the debug-source into the fasls.
comments: delete a FIXME and explain a bare `2'
consistent source pathname for output/stuff-groveled-from-headers.lisp
At the moment it's the only compiled file not in src/; code defensively
around that fact.
fix a longstanding KLUDGE
Find the index of the source slot by introspection rather than using a
baffling literal `2'. Unfortunately, in doing so we run into bug #117.
patch in the source created/compiled information in cold-init
We can't do it before without making our fasls or cold-sbcl.core
dependent on filesystem timestamps or current time. The way we do it is
perhaps overcomplicated, compared with simply assuming that the file
timestamps are right, but has the advantage that it's demonstrably
correct: we implement a new FOP specifically for noting our
DEBUG-SOURCE, dumped only during cross-compilation, and in genesis we
interpret that FOP to build a list of debug-sources, which we can frob
in cold-init.
Everything should now be restored to its previous functionality.
13 files changed: