1
0
mirror of synced 2026-03-27 10:41:23 +00:00
Files
Interlisp.medley/internal/loadups/man-page/loadup.1
Frank Halasz d6cb62a354 Response to Issue #2198: loadup and medley scripts can now store/retrieve loadup files to/from named subdirectories of MEDLEYDIR/loadups (#2200)
* Add to loadup and medley scripts a --branch argument whereby which loadup outputs are stored in MEDLEYDIR/loadups/branches/BRANCH, where BRANCH is the name of the currently active git branch of MEDLEYDIR (for loadup) or the name of a BRANCH whereby which a loadup had been run with the --branch option (for medley).  Man pages updated accordingly.

* Removed --git-branch synonym for --branch from both medley and loadup scripts.  Added optional BRANCH argument to --branch in loadup script. If BRANCH is specified iot is used as the (pseudo)branch name instead of the current active git branch of MEDLEYDIR.  If BRANCH is "-", the current git branch name is used.

* When doing loadups, a file called gitinfo is created in the LOADUP_OUTDIR that contains the git commit, git branch and git status of MEDLEYDIR at the time of the loadup.  Branch names in loadup and medley scripts now contain only alphanumerics, dahes, underscores, periods.  Any other character is coerced to underscore.  The branch name is now included in the window title.

* Incorporate changes from PR#2208: Use the loadup step script names as the --id string.

* Add loadups/gitinfo and loadups/branches to .gitignore
2025-07-14 10:28:26 -07:00

378 lines
12 KiB
Groff

.\" Automatically generated by Pandoc 3.1.3
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.ad l
.TH "loadup" "1" "" "" "Run the Medley loadup procedure"
.nh
.SH NAME
.PP
\f[B]loadup\f[R] \[em] runs a loadup procedure for Medley Interlisp
.SH SYNOPSIS
.PP
\f[B]<MEDLEYDIR>/scripts/loadup\f[R] [ options \&...
]
.SH DESCRIPTION
.PP
Runs all or part of the \f[B]loadup\f[R] procedure for Medley Interlisp.
The loadup procedure is used to create the standard sysout files from
which you can start a Medley session as well as other standard files
that are useful in running Medley.
After cloning Medley from GitHub or after making significant changes to
the Medley source, you need to run the loadup procedure to (re)create
these standard files.
.PP
The complete loadup procedure happens in 5 sequential stages with each
stage depending on successful completion of the previous stage.
There are two other non-sequential stages (Aux and DB), which depend
only on the completion of Stage 4 (full.sysout).
.PP
You need not run all 5 stages, depending on what sysout files you need
to create for your work.
The target files created in each stage are copied into a loadups
directory (<MEDLEYDIR>/loadups).
The \f[I]medley\f[R] run script and other Medley tools look for these
files in the loadups directory.
.PP
The 5 sequential stages and their main products are:
.RS
.IP "1." 3
\f[B]Init:\f[R] create an \f[I]init.dlinit\f[R] sysout file.
This init.dlinit file is used internally for Stage 2 and is not copied
into the loadups directory.
.RE
.RS
.IP "2." 3
\f[B]Mid:\f[R] create an \f[I]init-mid.sysout\f[R].
This init-mid.sysout is used only internally for Stage 3 and is not
copied into the loadups directory.
.RE
.RS
.IP "3." 3
\f[B]Lisp:\f[R] create \f[I]lisp.sysout\f[R].
Lisp.sysout has a minimal set of Medley\[cq]s functionality loaded and
can be used as the basis for running a stripped-down Medley session.
Lisp.sysout is copied into the loadups directory.
.RE
.RS
.IP "4." 3
\f[B]Full:\f[R] create \f[I]full.sysout\f[R].
Full.sysout has all of the \[lq]standard\[rq] set of Medley
functionality loaded and is the primary sysout used for running Medley
sessions.
Full.sysout is copied into the loadups directory.
.RE
.RS
.IP "5." 3
\f[B]Apps:\f[R]: create \f[I]apps.sysout\f[R].
Apps.sysout includes everything in full.sysout plus the Medley
applications Buttons, CLOS, Rooms, and Notecards.
.RE
.PP
The two independent stages that can be run if the first 4 sequential
stages complete successfully are:
.RS
.IP \[bu] 2
\f[B]Aux:\f[R]: create the \f[I]whereis.hash\f[R] and
\f[I]exports.all\f[R] files.
These are databases that are commonly used when working on Medley source
code.
They are copied into the loadups directory.
.IP \[bu] 2
\f[B]DB:\f[R]: creates the \f[I]fuller.database\f[R] file.
Fuller.database is a Mastercope database created by analyzing all of the
source code included in full.sysout.
(Stage 4) Fuller.database is copied into the loadups directory.
.RE
.PP
Loadup does all of its work in a work directory
(<MEDLEYDIR>/loadups/build).
The target files are copied from this work directory to the loadups
directory if the loadup is successful.
Each stage of the loadup also creates a dribble file containing the
terminal output from within the Medley environment.
These dribble files are also copied to the loadups directory, but also
remain available in the work directory after the loadup completes.
.PP
If <MEDLEYDIR> is a git directory, then a file is created in the loadups
output directory called \f[I]gitinfo\f[R] which contains the git commit,
git branch and git status information for the directory at the time the
loadup is run.
.PP
Only one instance (per <MEDLEIDIR>) of loadup can be run at a time.
There is lock file to prevent simultaneous loadups in the work directory
(named \f[B]\f[BI]lock\f[B]\f[R]) that can be manually removed.
The lock can also be automatically overridden (see the \[en]override
flag below).
Alternatively, if a lock is encountered at run time, the user will be
asked to choose whether to override or simply exit the loadup.
.PP
Note: \f[B]MEDLEYDIR\f[R] is an environment variable set by the loadup
script.
It is set to the top level directory of the Medley installation that
contains the specific loadup script that is invoked after all symbolic
links are resolved.
In the standard global installation this will be
/usr/local/interlisp/medley.
But Medley can be installed in multiple places on any given machine and
hence MEDLEYDIR is computed on each invocation of loadup.
.SH OPTIONS
.TP
\f[B]-z, --man, -man\f[R]
Print this manual page on the screen.
.TP
\f[B]-t STAGE, --target STAGE, -target STAGE\f[R]
Run the sequential loadup procedure until the STAGE is complete,
starting from the files created by the previously run STAGE specified in
the \[en]start option.
.RS
.PP
STAGE can be one of the following:
.RE
.RS
.RS
.PP
i, init, 1: Run the loadup sequence through Stage 1 (init.dlinit).
Init.dlinit is \f[I]not\f[R] copied into the loadups directory.
.RE
.RE
.RS
.RS
.PP
m, mid, 2: Run the loadup sequence through Stage 2 (init-mid.sysout).
Init-mid.sysout is \f[I]not\f[R] copied into the loadups directory.
.RE
.RE
.RS
.RS
.PP
l, lisp, 3: Run the loadup sequence through Stage 3 (lisp.sysout).
Lisp.sysout is copied into the loadups directory.
.RE
.RE
.RS
.RS
.PP
f, full, 4: Run the loadup sequence through Stage 4 (full.sysout).
Full.sysout is copied into the loadups directory.
.RE
.RE
.RS
.RS
.PP
a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
Also run the Aux stage as if \[en]aux option had been specified.
Apps.sysout and the Aux files are copied into the loadups directory.
.RE
.RE
.RS
.RS
.PP
a-, apps-, 5-: Run the loadup sequence through Stage 5 (apps.sysout).
The Aux stage is not run unless otherwise specified.
Apps.sysout is copied into the loadups directory.
Also run the Aux stage as if \[en]aux option had been specified.
.RE
.RE
.TP
\f[B]-s STAGE --start STAGE, -start STAGE\f[R]
Start the loadup process using the files previously created by STAGE.
These files are looked for first in the loadups directory or, if not
found there, in the work directory.
It is an error if the files created by STAGE cannot be found.
.RS
.PP
STAGE can be one of the following:
.RE
.RS
.RS
.PP
s, scratch, 0 : Start the loadup process from the beginning.
This is the default.
.RE
.RE
.RS
.RS
.PP
i, init, 1 : Start the loadup process using the files created by Stage 1
(init.dlinit).
.RE
.RE
.RS
.RS
.PP
m, mid, 2 : Start the loadup process using the files created by Stage 2
(init-mid.sysout).
.RE
.RE
.RS
.RS
.PP
l, lisp, 3 : Start the loadup process using the files created by Stage 3
(lisp.sysout)
.RE
.RE
.RS
.RS
.PP
f, full, 4 : Start the loadup process using the files created by Stage 4
(full.sysout).
.RE
.RE
.TP
\f[B]-x, --aux, -aux\f[R]
Run the Aux loadup stage, creating the \f[I]whereis.hash\f[R] and
\f[I]exports.all\f[R] files.
If loadup completes successfully, these files are copied into loadups.
.TP
\f[B]-b, --db, -db\f[R]
Run the DB loadup stage, creating the \f[I]fuller.database\f[R] file.
If this stage complete successfully, these files are copied into
loadups.
.TP
\f[B]-i, --init, -init, -1\f[R]
Synonym for \[lq]\[en]target init\[rq]
.TP
\f[B]-m, --mid, -mid, -2\f[R]
Synonym for \[lq]\[en]target mid\[rq]
.TP
\f[B]-l, --lisp, -lisp, -3\f[R]
Synonym for \[lq]\[en]target lisp\[rq]
.TP
\f[B]-f, --full. -full, -4\f[R]
Synonym for \[lq]\[en]target full\[rq]
.TP
\f[B]-a, --apps, -apps, -5\f[R]
Synonym for \[lq]\[en]target apps\[rq]
.TP
\f[B]-a-, --apps-, -apps-, -5-\f[R]
Synonym for \[lq]\[en]target apps\[rq]
.TP
\f[B]-ov, --override, -override\f[R]
Automatically override the lock that prevents two loadups from running
simultaneously.
If this flag is not set and an active lock is encountered, the user will
be asked to choose whether to override or exit.
.TP
\f[B]-br [ BRANCH | -], --branch [ BRANCH | - ]\f[R]
By default the sysouts and other files produced by loadup are placed at
the top level of the <MEDLEYDIR>/loadups directory.
If this flag is specified, then the sysout and other output files are
placed in the directory <MEDLEYDIR>/loadups/branches/BRANCH.
If BRANCH is \[lq]-\[rq] or not specified at all, then BRANCH is the
name of the currently active git branch of <MEDLEYDIR>, except if git is
not installled on the current system or if <MEDLEYDIR> is not a git
directory, in which case then this flag is ignored.
BRANCH can contain alphanumerics, dashes, underscores,and periods.
Any other character is replaced by an underscore.
The medley script has a corresponding --branch argument to load these
sysout files.
.TP
\f[B]-nc, --nocopy, -nocopy\f[R]
Run the specified loadups, but do not copy results into loadups
directory.
.TP
\f[B]-tw, --thinw, -thinw\f[R]
Before running loadups (if any), thin the working directory by deleting
all versioned (\f[I].\[ti][0-9]\f[R]\[ti]) files.
.TP
\f[B]-tl, --thinl, -thinl\f[R]
Before running loadups (if any), thin the loadups directory by deleting
all versioned (\f[I].\[ti][0-9]\f[R]\[ti]) files.
.TP
\f[B]-d DIR, --maikodir DIR, -maikodir DIR\f[R]
Use DIR as the directory from which to execute lde (Miko) when running
Medley in the loadup process.
If this flag is not present, the value of the environment variable
MAIKODIR will be used instead.
And if MAIKODIR does not exist, then the default Maiko directory search
within Medley will be used.
.TP
\f[B]-v, --vnc, -vnc\f[R]
Relevant to Linux (including WSLv1 and WSLv2) platforms only.
Use Xvnc for the Medley display during this loadup.
By default, the Medley display will use X Windows.
This flag is most useful on Windows System for Linux v1, where Xvnc is
commonly used in running Medley in the absence of an Xwindows server.
.SH DEFAULTS
.PP
The defaults for the Options context-dependent and somewhat complicated
due to the goal of maintaining compatibility with legacy loadup scripts.
All of the following defaults rules hold independent of the
\[en]maikodir (-d) option.
.IP "1." 3
If none of \[en]target, \[en]start, \[en]aux, and \[en]db are specified,
then:
.RS
.PP
1A.
If neither \[en]thinw nor \[en]thinl are specified, the options default
to:
.RE
.RS
.RS
.PP
\f[B]\[en]target full \[en]start 0 \[en]aux\f[R]
.RE
.RE
.RS
.PP
1B.
If either \[en]thinw or \[en]thinl are specified, no loadups are run.
.RE
.IP "2." 3
If neither \[en]start nor \[en]target are specified but either -aux or
-db or both are, then \[en]start defaults to \f[I]full\f[R] and
\[en]target is irrelevant.
.IP "3." 3
If \[en]start is specified and \[en]target is not, then \[en]target
defaults to \f[I]full\f[R]
.IP "4." 3
If \[en]target is specified and \[en]start is not, then \[en]start
defaults to \f[I]0\f[R]
.SH EXAMPLES
.PP
\f[B]./loadup -full -s lisp\f[R] : run loadup thru Stage 4 (full.sysout)
starting from existing Stage 3 outputs (lisp.sysout).
.PP
\f[B]./loadup --target full --start lisp\f[R] : run loadup thru Stage 4
(full.sysout) starting from existing Stage 3 outputs (lisp.sysout).
.PP
\f[B]./loadup -5 \[en]aux\f[R] : run loadup from the beginning thru
Stage 5 (apps.sysout) then run the Aux \[lq]stage\[rq] to create
\f[I]whereis.hash\f[R] and \f[I]exports.all\f[R]
.PP
\f[B]./loadup -db\f[R] : just run the DB \[lq]stage\[rq] starting from
an existing full.sysout; do not run any of the sequential stages.
.PP
\f[B]./loadup \[en]maikodir \[ti]/il/newmaiko\f[R] : run loadup sequence
from beginning to full plus the loadup Aux stage, while using
\f[I]\[ti]/il/newmaiko\f[R] as the location for the lde executables when
running Medley.
.PP
\f[B]./loadup -full\f[R] : run loadup sequence from beginning thru full
.PP
\f[B]./loadup -apps\f[R] : run loadup sequence from beginning thru app.
Also run the Aux stage loadup.
.PP
\f[B]./loadup -apps-\f[R] : run loadup sequence from beginning thru app.
Do not run the Aux stage loadup.
.SH BUGS
.PP
See GitHub Issues: <https://github.com/Interlisp/medley/issues>
.SH COPYRIGHT
.PP
Copyright(c) 2025 by Interlisp.org