Rework loadups so that the loadup-all.sh process can be restarted from the various stages. Add template for lfg loadups. #1958
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR reworks the loadup scripts so that the loadup process can be "restarted" from an existing sysout.
You now call loadup-all.sh with the following flags:
All flags and parameters have alternative forms (e.g., -s or -start or --start). The first set of flags specifies the target sysout. The set of options to -s specifies the sysout to start building from. The -noaux option prevents the building of the whereis.database and exports.all when building full.sysout. Defaults are -full and -s scratch.
Example - builds the full.sysout starting with the existing lisp.sysout
Example - builds the lfg sysout starting from scratch
How this works:
All work is now done in the /loadups/build directory (so can only run one loadup at a time - no checks for this now).
On successful completion of loadup-all run, the sysouts and a few other files are copied into /loapdups. The dribble files are not copied. The result of this is that the loadups directory can easily have "inconsistent" sysouts - e.g., the lisp.sysout and the apps.sysout are based on different medley commits.
When you specify a starting stage - it looks for the corresponding sysout first in loadups/build and then in loadups (which it then copies into loadups/build). If the sysout is not found in either place, it errors out (although we should eventually have it recursively build the required starting sysout until it find an existing starting sysout).
The SYSOUTCOMMITS mechanism had to be changed since there is no guarantee that e.g., lisp.sysout and full.sysout are built on the same commit. So (ASSOC 'MEDLEY SYSOUTCOMMITS) now returns an assoc list of sysouts, e.g., ((INIT "aaa")(LISP "bbb")(FULL "ccc")(APPS "ddd")), showing the commits for the various layers of the loadup. [The whole SYSOUTCOMMITS mechanism is a bit problematic in loadups and needs to be discussed.]
@rmkaplan There is a template loadup-lfg-from-full.sh. But we need to discuss specifics about how to do the lfg loadup and how the lfg and medley dirs are p=located relative to each other.