chiark / gitweb /
dump-ecl: Defeat ASDF's magic internal knowledge of itself.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 27 May 2021 00:14:17 +0000 (01:14 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 3 Jun 2021 02:45:23 +0000 (03:45 +0100)
commit627ff527e9062eb2ad4c94b6f674bae087217f6e
tree43609259c7df673178c5c4dec5b70861967fdf9d
parenta71016725a61073f437a9e725af564a6dc371a38
dump-ecl: Defeat ASDF's magic internal knowledge of itself.

When you load ASDF, it comes with built-in knowledge of itself as a
system, but without details of any source files (or, indeed, any
information about how to do anything with it).  When you try to find the
`asdf' system, it does check the filesystem, but does a quick check of
the reported version number against its current version number and skips
loading the full system definition if it's already up-to-date.

This would all be fine in a resident system, because once the system is
loaded, we don't really care much.  But ECL isn't a resident system: it
compiles to external files, and this poses a problem.  If the initially
loaded ASDF matches the one in the system registry, then we don't have
any source filename details, and `lib-op' does nothing.

Defeat this by locating and loading the system-definition by hand and
stuffing it into ASDF's internal structures before we try to do stuff.

This is, of course, completely terrible.
dump-ecl