Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework loadups so that the loadup-all.sh process can be restarted from the various stages. Add template for lfg loadups. #1958

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

fghalasz
Copy link
Member

@fghalasz fghalasz commented Jan 6, 2025

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:

loadup-all.sh [-init | -mid | -lisp | -full | -apps | -lfg] [-s [scratch | init | mid | lisp | full ] [-noaux]

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

loadup-all.sh -full -s lisp

Example - builds the lfg sysout starting from scratch

loadups-all.sh -lfg

How this works:

  1. All work is now done in the /loadups/build directory (so can only run one loadup at a time - no checks for this now).

  2. 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.

  3. 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).

  4. 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.

@masinter
Copy link
Member

masinter commented Jan 6, 2025

from PR #1948 loadup changes, please set HELPTIME to 0, change CLOS::LOAD-CLOS to IL: package.
Other changes as discussed.

@rmkaplan
Copy link
Contributor

rmkaplan commented Jan 7, 2025

I fetched this branch and tried doing a build: scripts/loadup-full.sh.

It said success, but TEDIT and some other things (cd commands) were not included in the makesys.

And after the script ran, there were a bunch of new discardable files in the loadups/build/ directory.

@MattHeffron
Copy link
Contributor

  1. I got this branch.
    i.e., copied my medley repo folder (at the master branch), then checked out fgh_loadups-rework branch.
  2. I deleted the contents of the loadups folder.
  3. in Ubuntu shell, I cd to the scripts folder
  4. ./loadup-all.sh

It failed during loadup-aux. The whereis.dribble contains:

XCL::WHERE-IS-NOTICE is an undefined function.
3_
NIL
3_ (IL:LOGOUT T)

Then I deleted the contents of the loadups folder, checked out the master branch, and repeated the .\loadup-all.sh as above. It succeeded, but there were several warnings/errors in the whereis.dribble (attached).
whereis.dribble.txt
The full.sysout ran seemingly fine.

@rmkaplan
Copy link
Contributor

rmkaplan commented Jan 8, 2025 via email

@MattHeffron MattHeffron linked an issue Jan 17, 2025 that may be closed by this pull request
| sed -e "s#${MEDLEYDIR}/##g"
fi

if [ -f "${LOADUP_WORKDIR}"/RDSYS ]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be checking for RDSYS.LCOM before trying to cpv it?

@fghalasz fghalasz marked this pull request as draft January 20, 2025 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

typo in scripts/copy-full.sh & copy-all.sh
4 participants