1
0
mirror of synced 2026-03-22 01:09:47 +00:00

Compare commits

..

3 Commits

Author SHA1 Message Date
Larry Masinter
5a24a52819 Update CI and docs to use submodules for maiko/notecards/loops/test
doHCFILES.yml: replace 5 separate checkout steps with a single
  checkout using submodules:true; remove now-redundant .git cleanup step.

buildLoadup.yml: add submodules:true to Checkout Medley; remove
  separate Checkout Notecards + tar steps (notecards.tgz was already
  commented out of the release push).

make-gh-pages.md: replace manual clone+copy instructions with
  git clone --recurse-submodules; remove rm -rf of submodule dirs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 19:45:39 -07:00
Larry Masinter
34dfed15a1 Add online as git submodule
Adds Interlisp/online pinned to current HEAD of main, consistent
with the other submodules added in this branch.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 19:30:38 -07:00
Larry Masinter
6196019fcf Add maiko, notecards, loops, test as git submodules
Removes maiko/ from .gitignore so it can be tracked as a submodule.
Each submodule is pinned to the current HEAD of its default branch
(master for maiko/test, main for notecards/loops).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 13:25:58 -07:00
23 changed files with 244 additions and 343 deletions

View File

@@ -124,6 +124,8 @@ jobs:
# Checkout latest commit
- name: Checkout Medley
uses: actions/checkout@v4
with:
submodules: true
# Setup release tag
- name: Setup Release Tag
@@ -191,18 +193,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.MAIKO_TOKEN }}
# Checkout Notecards and tar it in the tarballsdir
- name: Checkout Notecards
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/notecards
path: ./notecards
- name: Tar notecards into tarball dir
run: |
mv ./notecards ../notecards
cd ../notecards
git archive --format=tgz --output="${TARBALL_DIR}/notecards.tgz" --prefix=notecards/ main
# Install vnc
- name: Install vnc
run: sudo apt-get update && sudo apt-get install -y tightvncserver

View File

@@ -51,33 +51,8 @@ jobs:
- name: Checkout Medley repo
uses: actions/checkout@v4
- name: Checkout maiko
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/maiko
path: ./maiko
- name: Checkout notecards
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/notecards
path: ./notecards
- name: Checkout loops
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/loops
path: ./loops
- name: Checkout test
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/test
path: ./test
- name: Cleanup .git for notecards, loops, test
run: rm -rf ./notecards/.git ./loops/.git ./test/.git
submodules: true
- name: Download Maiko
run: |

3
.gitignore vendored
View File

@@ -5,9 +5,6 @@ tmp/*
# releases directory
releases/*
# maiko directory
maiko/
# all PDFs (those explicitly checked in aren't ignored
# normally when you have derived files, you ignore them from git

20
.gitmodules vendored
View File

@@ -0,0 +1,20 @@
[submodule "maiko"]
path = maiko
url = https://github.com/Interlisp/maiko
branch = master
[submodule "notecards"]
path = notecards
url = https://github.com/Interlisp/notecards
branch = main
[submodule "loops"]
path = loops
url = https://github.com/Interlisp/loops
branch = main
[submodule "test"]
path = test
url = https://github.com/Interlisp/test
branch = master
[submodule "online"]
path = online
url = https://github.com/Interlisp/online
branch = main

View File

@@ -114,8 +114,8 @@ loadup is run.
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 --override flag
below).
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
@@ -130,7 +130,7 @@ 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 [+], -h [+], --help [+]\f[R]
\f[B]-z [+], --man [+], -man [+], -h [+], \[en]help [+]\f[R]
Print this manual page on the screen.
If the \f[B]+\f[R] parameter is specified, then no pager is used when
displaying the man page.
@@ -138,7 +138,7 @@ displaying the man page.
\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 --start option.
the \[en]start option.
.RS
.PP
STAGE can be one of the following:
@@ -175,7 +175,7 @@ Full.sysout is copied into the loadups directory.
.RS
.PP
a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
Also run the Aux stage as if --aux option had been specified.
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
@@ -185,7 +185,7 @@ Apps.sysout and the Aux files are copied into the loadups directory.
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 --aux option had been specified.
Also run the Aux stage as if \[en]aux option had been specified.
.RE
.RE
.TP
@@ -245,22 +245,22 @@ If this stage complete successfully, these files are copied into
loadups.
.TP
\f[B]-i, --init, -init, -1\f[R]
Synonym for \[lq]--target init\[rq]
Synonym for \[lq]\[en]target init\[rq]
.TP
\f[B]-m, --mid, -mid, -2\f[R]
Synonym for \[lq]--target mid\[rq]
Synonym for \[lq]\[en]target mid\[rq]
.TP
\f[B]-l, --lisp, -lisp, -3\f[R]
Synonym for \[lq]--target lisp\[rq]
Synonym for \[lq]\[en]target lisp\[rq]
.TP
\f[B]-f, --full. -full, -4\f[R]
Synonym for \[lq]--target full\[rq]
Synonym for \[lq]\[en]target full\[rq]
.TP
\f[B]-a, --apps, -apps, -5\f[R]
Synonym for \[lq]--target apps\[rq]
Synonym for \[lq]\[en]target apps\[rq]
.TP
\f[B]-a-, --apps-, -apps-, -5-\f[R]
Synonym for \[lq]--target apps\[rq]
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
@@ -300,14 +300,14 @@ contained in the working directory.
If the \f[B]+\f[R] parameter is used, then instead of deleting just the
versioned files, all files and subdirectories are deleted except for
those contained in the working directory.
If \f[B]+\f[R] is used and there is no working directory and \f[I]--tag
TAG\f[R] is also specified, then the tagged loadups directory
(<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
If \f[B]+\f[R] is used and there is no working directory and
\f[I]\[en]tag TAG\f[R] is also specified, then the tagged loadups
directory (<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
.TP
\f[B]-th [+], --thin [+], -thin [+]\f[R]
Equivalent to specifying both -tw [+] and -tl [+].
If \f[I]--tag TAG\f[R] is also specified and the \f[B]+\f[R] parameter
is used here, then the tagged loadups directory
If \f[I]\[en]tag TAG\f[R] is also specified and the \f[B]+\f[R]
parameter is used here, then the tagged loadups directory
(<MEDLEYDIR>/loadups/tagged/TAG) is removed.
.TP
\f[B]-d DIR, --maikodir DIR, -maikodir DIR\f[R]
@@ -328,36 +328,38 @@ commonly used in running Medley in the absence of an Xwindows server.
.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 --maikodir
(-d) option.
All of the following defaults rules hold independent of the
\[en]maikodir (-d) option.
.IP "1." 3
If none of --target, --start, --aux, and --db are specified, then:
If none of \[en]target, \[en]start, \[en]aux, and \[en]db are specified,
then:
.RS
.PP
1A.
If neither --thinw nor --thinl are specified, the options default to:
If neither \[en]thinw nor \[en]thinl are specified, the options default
to:
.RE
.RS
.RS
.PP
\f[B]--target full --start 0 --aux\f[R]
\f[B]\[en]target full \[en]start 0 \[en]aux\f[R]
.RE
.RE
.RS
.PP
1B.
If either --thinw or --thinl are specified, no loadups are run.
If either \[en]thinw or \[en]thinl are specified, no loadups are run.
.RE
.IP "2." 3
If neither --start nor --target are specified but either -aux or -db or
both are, then --start defaults to \f[I]full\f[R] and --target is
irrelevant.
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 --start is specified and --target is not, then --target defaults to
\f[I]full\f[R]
If \[en]start is specified and \[en]target is not, then \[en]target
defaults to \f[I]full\f[R]
.IP "4." 3
If --target is specified and --start is not, then --start defaults to
\f[I]0\f[R]
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)
@@ -366,14 +368,14 @@ starting from existing Stage 3 outputs (lisp.sysout).
\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 --aux\f[R] : run loadup from the beginning thru Stage 5
(apps.sysout) then run the Aux \[lq]stage\[rq] to create
\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 --maikodir \[ti]/il/newmaiko\f[R] : run loadup sequence
\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.

View File

@@ -52,7 +52,7 @@ Loadup does all of its work in a work directory (\<MEDLEYDIR>/loadups/build). T
If \<MEDLEYDIR> is a git directory, then a file is created in the loadups output directory called *gitinfo* which contains the git commit, git branch and git status information for the directory at the time the loadup is run.
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 ***lock***) that can be manually removed. The lock can also be automatically overridden (see the \-\-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.
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 ***lock***) that can be manually removed. The lock can also be automatically overridden (see the --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.
Note: **MEDLEYDIR** 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
@@ -61,12 +61,12 @@ hence MEDLEYDIR is computed on each invocation of loadup.
OPTIONS
=======
**-z [+], \-\-man [+], \-man [+], -h [+], \-\-help [+]**
**-z [+], \-\-man [+], \-man [+], -h [+], --help [+]**
: Print this manual page on the screen. If the **+** parameter is specified, then no pager is used when
displaying the man page.
**-t STAGE, \-\-target STAGE, -target STAGE**
: Run the sequential loadup procedure until the STAGE is complete, starting from the files created by the previously run STAGE specified in the \-\-start option.
: Run the sequential loadup procedure until the STAGE is complete, starting from the files created by the previously run STAGE specified in the --start option.
>STAGE can be one of the following:
@@ -78,9 +78,9 @@ displaying the man page.
>>f, full, 4: Run the loadup sequence through Stage 4 (full.sysout). Full.sysout is copied into the loadups directory.
>>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout). Also run the Aux stage as if \-\-aux option had been specified. Apps.sysout and the Aux files are copied into the loadups directory.
>>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout). Also run the Aux stage as if --aux option had been specified. Apps.sysout and the Aux files are copied into the loadups directory.
>>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 \-\-aux option had been specified.
>>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 --aux option had been specified.
**-s STAGE \-\-start STAGE, -start STAGE**
@@ -105,22 +105,22 @@ displaying the man page.
: Run the DB loadup stage, creating the *fuller.database* file. If this stage complete successfully, these files are copied into loadups.
**-i, \-\-init, -init, -1**
: Synonym for "\-\-target init"
: Synonym for "--target init"
**-m, \-\-mid, -mid, -2**
: Synonym for "\-\-target mid"
: Synonym for "--target mid"
**-l, \-\-lisp, -lisp, -3**
: Synonym for "\-\-target lisp"
: Synonym for "--target lisp"
**-f, \-\-full. -full, -4**
: Synonym for "\-\-target full"
: Synonym for "--target full"
**-a, \-\-apps, -apps, -5**
: Synonym for "\-\-target apps"
: Synonym for "--target apps"
**-a-, \-\-apps-, -apps-, -5-**
: Synonym for "\-\-target apps"
: Synonym for "--target apps"
**-ov, \-\-override, -override**
: 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.
@@ -149,11 +149,11 @@ working directory (and all files and subdirectories it contains) is deleted.
files except for those contained in the working directory.
If the **+** parameter is used, then instead of deleting just the versioned files, all files and
subdirectories are deleted except for those contained in the working directory. If **+** is used and
there is no working directory and *\-\-tag TAG* is also specified,
there is no working directory and *--tag TAG* is also specified,
then the tagged loadups directory (\<MEDLEYDIR>/loadups/tagged/TAG) is also deleted.
**-th [+], \-\-thin [+], -thin [+]**
: Equivalent to specifying both -tw [+] and -tl [+]. If *\-\-tag TAG* is also specified and
: Equivalent to specifying both -tw [+] and -tl [+]. If *--tag TAG* is also specified and
the **+** parameter is used here, then the tagged loadups directory (\<MEDLEYDIR>/loadups/tagged/TAG)
is removed.
@@ -168,21 +168,21 @@ running Medley in the absence of an Xwindows server.
DEFAULTS
====
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 \-\-maikodir (-d) option.
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 --maikodir (-d) option.
1. If none of \-\-target, \-\-start, \-\-aux, and \-\-db are specified, then:
1. If none of --target, --start, --aux, and --db are specified, then:
>1A. If neither \-\-thinw nor \-\-thinl are specified, the options default to:
>1A. If neither --thinw nor --thinl are specified, the options default to:
>> **\-\-target full \-\-start 0 \-\-aux**
>> **--target full --start 0 --aux**
>1B. If either \-\-thinw or \-\-thinl are specified, no loadups are run.
>1B. If either --thinw or --thinl are specified, no loadups are run.
2. If neither \-\-start nor \-\-target are specified but either -aux or -db or both are, then \-\-start defaults to *full* and \-\-target is irrelevant.
2. If neither --start nor --target are specified but either -aux or -db or both are, then --start defaults to *full* and --target is irrelevant.
3. If \-\-start is specified and \-\-target is not, then \-\-target defaults to *full*
3. If --start is specified and --target is not, then --target defaults to *full*
4. If \-\-target is specified and \-\-start is not, then \-\-start defaults to *0*
4. If --target is specified and --start is not, then --start defaults to *0*
EXAMPLES
====
@@ -190,11 +190,11 @@ EXAMPLES
**./loadup \-\-target full \-\-start lisp** : run loadup thru Stage 4 (full.sysout) starting from existing Stage 3 outputs (lisp.sysout).
**./loadup -5 \-\-aux** : run loadup from the beginning thru Stage 5 (apps.sysout) then run the Aux "stage" to create *whereis.hash* and *exports.all*
**./loadup -5 --aux** : run loadup from the beginning thru Stage 5 (apps.sysout) then run the Aux "stage" to create *whereis.hash* and *exports.all*
**./loadup -db** : just run the DB "stage" starting from an existing full.sysout; do not run any of the sequential stages.
**./loadup \-\-maikodir ~/il/newmaiko** : run loadup sequence from beginning to full plus the loadup Aux stage, while using *~/il/newmaiko* as the location for the lde executables when running Medley.
**./loadup --maikodir ~/il/newmaiko** : run loadup sequence from beginning to full plus the loadup Aux stage, while using *~/il/newmaiko* as the location for the lde executables when running Medley.
**./loadup -full** : run loadup sequence from beginning thru full

View File

@@ -87,7 +87,7 @@ the time the loadup is run.</p>
time. There is lock file to prevent simultaneous loadups in the work
directory (named <strong><em>lock</em></strong>) that can be manually
removed. The lock can also be automatically overridden (see the
--override flag below). Alternatively, if a lock is encountered at run
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.</p>
<p>Note: <strong>MEDLEYDIR</strong> is an environment variable set by
@@ -99,8 +99,7 @@ installed in multiple places on any given machine and hence MEDLEYDIR is
computed on each invocation of loadup.</p>
<h1>OPTIONS</h1>
<dl>
<dt><strong>-z [+], --man [+], -man [+], -h [+], --help
[+]</strong></dt>
<dt><strong>-z [+], --man [+], -man [+], -h [+], help [+]</strong></dt>
<dd>
<p>Print this manual page on the screen. If the <strong>+</strong>
parameter is specified, then no pager is used when displaying the man
@@ -110,7 +109,7 @@ page.</p>
<dd>
<p>Run the sequential loadup procedure until the STAGE is complete,
starting from the files created by the previously run STAGE specified in
the --start option.</p>
the start option.</p>
<p>STAGE can be one of the following:</p>
<blockquote>
<p>i, init, 1: Run the loadup sequence through Stage 1 (init.dlinit).
@@ -130,13 +129,13 @@ Full.sysout is copied into the loadups directory.</p>
</blockquote>
<blockquote>
<p>a, apps, 5: Run the loadup sequence through Stage 5 (apps.sysout).
Also run the Aux stage as if --aux option had been specified.
Apps.sysout and the Aux files are copied into the loadups directory.</p>
Also run the Aux stage as if aux option had been specified. Apps.sysout
and the Aux files are copied into the loadups directory.</p>
</blockquote>
<blockquote>
<p>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 --aux
copied into the loadups directory. Also run the Aux stage as if aux
option had been specified.</p>
</blockquote>
</dd>
@@ -182,27 +181,27 @@ loadups.</p>
</dd>
<dt><strong>-i, --init, -init, -1</strong></dt>
<dd>
<p>Synonym for “--target init”</p>
<p>Synonym for “target init”</p>
</dd>
<dt><strong>-m, --mid, -mid, -2</strong></dt>
<dd>
<p>Synonym for “--target mid”</p>
<p>Synonym for “target mid”</p>
</dd>
<dt><strong>-l, --lisp, -lisp, -3</strong></dt>
<dd>
<p>Synonym for “--target lisp”</p>
<p>Synonym for “target lisp”</p>
</dd>
<dt><strong>-f, --full. -full, -4</strong></dt>
<dd>
<p>Synonym for “--target full”</p>
<p>Synonym for “target full”</p>
</dd>
<dt><strong>-a, --apps, -apps, -5</strong></dt>
<dd>
<p>Synonym for “--target apps”</p>
<p>Synonym for “target apps”</p>
</dd>
<dt><strong>-a-, --apps-, -apps-, -5-</strong></dt>
<dd>
<p>Synonym for “--target apps”</p>
<p>Synonym for “target apps”</p>
</dd>
<dt><strong>-ov, --override, -override</strong></dt>
<dd>
@@ -246,13 +245,13 @@ contained in the working directory. If the <strong>+</strong> parameter
is used, then instead of deleting just the versioned files, all files
and subdirectories are deleted except for those contained in the working
directory. If <strong>+</strong> is used and there is no working
directory and <em>--tag</em> TAG is also specified, then the tagged
directory and <em>tag TAG</em> is also specified, then the tagged
loadups directory (&lt;MEDLEYDIR&gt;/loadups/tagged/TAG) is also
deleted.</p>
</dd>
<dt><strong>-th [+], --thin [+], -thin [+]</strong></dt>
<dd>
<p>Equivalent to specifying both -tw [+] and -tl [+]. If <em>--tag
<p>Equivalent to specifying both -tw [+] and -tl [+]. If <em>tag
TAG</em> is also specified and the <strong>+</strong> parameter is used
here, then the tagged loadups directory
(&lt;MEDLEYDIR&gt;/loadups/tagged/TAG) is removed.</p>
@@ -278,24 +277,24 @@ absence of an Xwindows server.</p>
<p>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 --maikodir (-d) option.</p>
the maikodir (-d) option.</p>
<ol type="1">
<li><p>If none of --target, --start, --aux, and --db are specified,
<li><p>If none of target, start, aux, and db are specified,
then:</p>
<p>1A. If neither --thinw nor --thinl are specified, the options default
<p>1A. If neither thinw nor thinl are specified, the options default
to:</p>
<blockquote>
<p><strong>--target full --start 0 --aux</strong></p>
<p><strong>target full start 0 aux</strong></p>
</blockquote>
<p>1B. If either --thinw or --thinl are specified, no loadups are
<p>1B. If either thinw or thinl are specified, no loadups are
run.</p></li>
<li><p>If neither --start nor --target are specified but either -aux or
-db or both are, then --start defaults to <em>full</em> and --target is
<li><p>If neither start nor target are specified but either -aux or
-db or both are, then start defaults to <em>full</em> and target is
irrelevant.</p></li>
<li><p>If --start is specified and --target is not, then --target
defaults to <em>full</em></p></li>
<li><p>If --target is specified and --start is not, then --start
defaults to <em>0</em></p></li>
<li><p>If start is specified and target is not, then target defaults
to <em>full</em></p></li>
<li><p>If target is specified and start is not, then start defaults
to <em>0</em></p></li>
</ol>
<h1>EXAMPLES</h1>
<p><strong>./loadup -full -s lisp</strong> : run loadup thru Stage 4
@@ -303,12 +302,12 @@ defaults to <em>0</em></p></li>
<p><strong>./loadup --target full --start lisp</strong> : run loadup
thru Stage 4 (full.sysout) starting from existing Stage 3 outputs
(lisp.sysout).</p>
<p><strong>./loadup -5 --aux</strong> : run loadup from the beginning
<p><strong>./loadup -5 aux</strong> : run loadup from the beginning
thru Stage 5 (apps.sysout) then run the Aux “stage” to create
<em>whereis.hash</em> and <em>exports.all</em></p>
<p><strong>./loadup -db</strong> : just run the DB “stage” starting from
an existing full.sysout; do not run any of the sequential stages.</p>
<p><strong>./loadup --maikodir ~/il/newmaiko</strong> : run loadup
<p><strong>./loadup maikodir ~/il/newmaiko</strong> : run loadup
sequence from beginning to full plus the loadup Aux stage, while using
<em>~/il/newmaiko</em> as the location for the lde executables when
running Medley.</p>

View File

@@ -1,52 +0,0 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "25-Feb-2026 09:09:57" {WMEDLEY}<lispusers>CONVERT-TO-UTF8.;16 2573
:EDIT-BY rmk
:CHANGES-TO (FNS CONVERT-TO-UTF8)
:PREVIOUS-DATE "24-Feb-2026 22:45:57" {WMEDLEY}<lispusers>CONVERT-TO-UTF8.;14)
(PRETTYCOMPRINT CONVERT-TO-UTF8COMS)
(RPAQQ CONVERT-TO-UTF8COMS ((FNS CONVERT-TO-UTF8)))
(DEFINEQ
(CONVERT-TO-UTF8
[LAMBDA (FILENAME FILETYPE) (* ; "Edited 25-Feb-2026 09:09 by rmk")
(* ;; "This produces a new version of the source FILENAME with :UTF-8 external format.")
(* ;; "If we had a list of problematic functions (multiple definitions on multiple files, MOVD's), we could check that against the functions in FILENAME, and at least produce a warning.")
(* ;; "Compiling may be tricky: some files have CL:COMPILE-FILE FILETYPE properties that don't correspond to the fact that they actually have only an LCOM. This tries to revert the filetype back to FAKE-COMPILE-FILE so that we don't get confused when a DFASL mysteriously appears.")
(SETQ FILENAME (PSEUDOFILENAME FILENAME))
(SETQ FILENAME (OR (FINDFILE FILENAME T)
(ERROR "FILE NOT FOUND" FILENAME)))
(if [EQ :UTF-8 (CL:WITH-OPEN-FILE (STREAM FILENAME :DIRECTION :INPUT)
(fetch (READER-ENVIRONMENT REFORMAT) of (GET-ENVIRONMENT-AND-FILEMAP STREAM
T]
then (PRINTOUT T FILENAME " is already " .P2 :UTF-8 T)
NIL
else (LOAD? (MEDLEYDIR "loadups" 'EXPORTS.ALL)) (* ; "Maybe this should load SYSEDIT ?")
(LOAD FILENAME 'PROP)
(LOADCOMP FILENAME)
(SETQ FILENAME (PACKFILENAME 'VERSION NIL 'BODY FILENAME))
(CL:WHEN [AND (EQ 'CL:COMPILE-FILE (GETPROP (ROOTFILENAME FILENAME)
'FILETYPE))
(FINDFILE (PACKFILENAME 'EXTENSION 'LCOM 'BODY FILENAME))
(NOT (FINDFILE (PACKFILENAME 'EXTENSION 'DFASL 'BODY FILENAME]
(CL:UNLESS FILETYPE (SETQ FILETYPE :FAKE-COMPILE-FILE))
(PRINTOUT T "Changing FILETYPE back to " .P2 FILETYPE T)
(PUTPROP (ROOTFILENAME FILENAME)
'FILETYPE FILETYPE))
[SETQ FILENAME (MAKEFILE FILENAME '(NEW :UTF-8]
(MAKEFILE1 FILENAME NIL '(F))
FILENAME])
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (406 2550 (CONVERT-TO-UTF8 416 . 2548)))))
STOP

Binary file not shown.

Binary file not shown.

1
loops Submodule

Submodule loops added at 8508dd0d9a

1
maiko Submodule

Submodule maiko added at d791b1d332

1
notecards Submodule

Submodule notecards added at 32defaee14

1
online Submodule

Submodule online added at 9ae1f13088

View File

@@ -5,18 +5,20 @@ HCFILES writes in {MEDLEYDIR} but it should write in something like (SRCDIR)
## Remove extraneous files
There are lots of ways to get there but basically set up the execution environment with everything clean but notecards loops, test are copied in. If you don't make fresh, at least 'git clean'.
There are lots of ways to get there but basically set up the execution environment with everything clean. If you don't make fresh, at least 'git clean'.
```
gh repo clone interlisp/medley
gh repo clone interlisp/notecards
gh repo clone interlisp/loops
gh repo clone interlisp/test
cp -r notecards loops test medley
rm -rf notecards/.git loops/.git test/.git
git clone --recurse-submodules https://github.com/Interlisp/medley
```
Or, if you already have a clone:
```
git submodule update --init --recursive
```
This will populate notecards, loops, test (and maiko) inside the medley directory.
# making the .pdfs and index.html files
## best start with a fresh loadup
@@ -62,6 +64,5 @@ after you've done this, you can clean up (from the medley folder):
```
find . -iname "*.pdf" -exec rm {} \;
git remote set-url --push https://github.com/Interlisp/medley
rm -rf loops notecards test
```

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "28-Feb-2026 12:09:38" {WMEDLEY}<sources>COREIO.;20 57201
(FILECREATED "11-Sep-2025 16:49:07" {WMEDLEY}<sources>COREIO.;18 56903
:EDIT-BY rmk
:CHANGES-TO (FNS \CORE.DIRECTORYNAMEP)
:PREVIOUS-DATE "11-Sep-2025 16:49:07" {WMEDLEY}<sources>COREIO.;18)
:PREVIOUS-DATE " 5-Jun-2022 00:14:07" {WMEDLEY}<sources>COREIO.;17)
(PRETTYCOMPRINT COREIOCOMS)
@@ -89,8 +89,6 @@
(\CORE.DIRECTORYNAMEP
[LAMBDA (DIRNAME DEV)
(* ;; "Edited 28-Feb-2026 12:08 by rmk")
(* ;; "Edited 11-Sep-2025 16:48 by rmk")
(* ;; "Edited 18-Jan-2022 11:17 by rmk")
@@ -108,21 +106,18 @@
(* ;; "Returns NIL for a DIRNAME of just {CORE}, or {CORE}xxx. If the latter, then we want it to be a directory and not a file (assuming that xxx and xxx> can't both exist.")
(LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY]
(if DIR
then (SETQ DIR (CONCAT DIR ">"))
[LET [(DIR (FILENAMEFIELD DIRNAME 'DIRECTORY]
(CL:WHEN DIR
(SETQ DIR (CONCAT DIR ">"))
(* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)")
(* ;; "DIRPOS because caller may not have stripped off the device. This will match the first < or / (or >)")
(FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY))
FIRST (CL:UNLESS (EQ DIRPOS 1)
(SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS)))
IN (CDR (FETCH COREDIRECTORY OF DEV))
WHEN (STRPOS DIRNAME (CAR ENTRY)
1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T))
else (* ;
 "Top level: does the device exist at al. The cd {CORE}case")
T)))])
(FOR ENTRY (DIRPOS _ (STRPOS "<" DIRNAME 1 NIL NIL NIL FILEDIRCASEARRAY))
FIRST (CL:UNLESS (EQ DIRPOS 1)
(SETQ DIRNAME (SUBSTRING DIRNAME DIRPOS)))
IN (CDR (FETCH COREDIRECTORY OF DEV))
WHEN (STRPOS DIRNAME (CAR ENTRY)
1 NIL T NIL FILEDIRCASEARRAY) DO (RETURN T)))])])
(\CORE.FINDPAGE
[LAMBDA (STREAM PN) (* bvm%: "20-Apr-85 13:32")
@@ -1002,16 +997,16 @@
)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1572 46413 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) (
\CORE.DIRECTORYNAMEP 4345 . 6136) (\CORE.FINDPAGE 6138 . 9367) (\CORE.GENERATEFILES 9369 . 11956) (
\CORE.NEXTFILEFN 11958 . 12457) (\CORE.FILEINFOFN 12459 . 12688) (\CORE.GETFILEHANDLE 12690 . 14844) (
\CORE.GETFILEINFO 14846 . 15809) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15811 . 17348) (\CORE.GETFILENAME
17350 . 19639) (\CORE.GETINFOBLOCK 19641 . 22264) (\CORE.NAMESCAN 22266 . 23813) (\CORE.NAMESEGMENT
23815 . 24252) (\CORE.OPENFILE 24254 . 27646) (\COREFILE.SETPARAMETERS 27648 . 29829) (
\CORE.PACKFILENAME 29831 . 30226) (\CORE.RELEASEPAGES 30228 . 30829) (\CORE.SETFILEPTR 30831 . 31930)
(\CORE.UPDATEOF 31932 . 33561) (\CORE.BACKFILEPTR 33563 . 35771) (\CORE.SETEOFPTR 35773 . 37642) (
\CORE.SETACCESSTIME 37644 . 38269) (\CORE.SETFILEINFO 38271 . 40573) (\CORE.GETNEXTBUFFER 40575 .
44531) (\CORE.UNPACKFILENAME 44533 . 46411)) (46414 50047 (COREDEVICE 46424 . 46595) (
\CREATECOREDEVICE 46597 . 50045)) (50048 52462 (\NODIRCOREFDEV 50058 . 50655) (\NODIRCORE.OPENFILE
50657 . 52460)))))
(FILEMAP (NIL (1572 46115 (\CORE.CLOSEFILE 1582 . 2355) (\CORE.DELETEFILE 2357 . 4343) (
\CORE.DIRECTORYNAMEP 4345 . 5838) (\CORE.FINDPAGE 5840 . 9069) (\CORE.GENERATEFILES 9071 . 11658) (
\CORE.NEXTFILEFN 11660 . 12159) (\CORE.FILEINFOFN 12161 . 12390) (\CORE.GETFILEHANDLE 12392 . 14546) (
\CORE.GETFILEINFO 14548 . 15511) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15513 . 17050) (\CORE.GETFILENAME
17052 . 19341) (\CORE.GETINFOBLOCK 19343 . 21966) (\CORE.NAMESCAN 21968 . 23515) (\CORE.NAMESEGMENT
23517 . 23954) (\CORE.OPENFILE 23956 . 27348) (\COREFILE.SETPARAMETERS 27350 . 29531) (
\CORE.PACKFILENAME 29533 . 29928) (\CORE.RELEASEPAGES 29930 . 30531) (\CORE.SETFILEPTR 30533 . 31632)
(\CORE.UPDATEOF 31634 . 33263) (\CORE.BACKFILEPTR 33265 . 35473) (\CORE.SETEOFPTR 35475 . 37344) (
\CORE.SETACCESSTIME 37346 . 37971) (\CORE.SETFILEINFO 37973 . 40275) (\CORE.GETNEXTBUFFER 40277 .
44233) (\CORE.UNPACKFILENAME 44235 . 46113)) (46116 49749 (COREDEVICE 46126 . 46297) (
\CREATECOREDEVICE 46299 . 49747)) (49750 52164 (\NODIRCOREFDEV 49760 . 50357) (\NODIRCORE.OPENFILE
50359 . 52162)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10 :FORMAT :UTF-8)
(FILECREATED " 4-Mar-2026 00:16:13" {WMEDLEY}<sources>FONT.;686 279360
(FILECREATED "26-Feb-2026 17:01:47" {WMEDLEY}<sources>FONT.;677 278005
:EDIT-BY rmk
:CHANGES-TO (FNS \SEARCHFONTFILES)
:CHANGES-TO (FNS MOVEFONTCHARS)
:PREVIOUS-DATE " 2-Mar-2026 13:14:53" {WMEDLEY}<sources>FONT.;685)
:PREVIOUS-DATE "20-Feb-2026 12:54:44" {WMEDLEY}<sources>FONT.;675)
(PRETTYCOMPRINT FONTCOMS)
@@ -38,8 +38,7 @@
(FNS FONTASCENT FONTDESCENT FONTHEIGHT FONTPROP \AVGCHARWIDTH)
(EXPORT (OPTIMIZERS FONTPROP))
(FNS FONTDEVICEPROP)
(PROP ARGNAMES FONTDEVICEPROP))
(FNS FONTDEVICEPROP))
(COMS (* ; "Moving character information")
(FNS EDITCHAR)
(* ; "Should this be on EDITFONT ?")
@@ -195,8 +194,7 @@
(SYMBOL . SY]
(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
(NLAML)
(LAMA FONTCOPY
FONTDEVICEPROP])
(LAMA FONTCOPY])
@@ -1291,34 +1289,23 @@
(DEFINEQ
(FONTDEVICEPROP
[LAMBDA NARGS (* ; "Edited 2-Mar-2026 13:14 by rmk")
(* ; "Edited 1-Mar-2026 12:22 by rmk")
(* ; "Edited 25-Aug-2025 21:23 by rmk")
[LAMBDA (FONTDEVICE PROP) (* ; "Edited 25-Aug-2025 21:23 by rmk")
(* ;; "Returns the value of the PROP property of the FONTDEVICE. E.g. if FONTDEVICE is DISPLAY and PROP is %"FONTCOERCIONS%", returns the value of DISPLAYFONTCOERCIONS ((HELVETICA 1)(HELVETICA 4)...)")
(CL:WHEN (ILESSP NARGS 2)
(ERROR "DEVICE/PROP not specified"))
(LET ((FONTDEVICE (ARG NARGS 1))
(PROP (ARG NARGS 2))
VAR)
[if (LITATOM FONTDEVICE)
then (SETQ FONTDEVICE (\FONTSYMBOL FONTDEVICE))
else (SETQ FONTDEVICE (\FONT.CHECKARGS FONTDEVICE))
(SETQ FONTDEVICE (CL:IF (type? FONTDESCRIPTOR FONTDEVICE)
(FONTPROP FONTDEVICE 'DEVICE)
(fetch (FONTSPEC FSDEVICE) of FONTDEVICE))]
(CL:UNLESS FONTDEVICE
(SETQ FONTDEVICE 'DISPLAY))
(SETQ VAR (PACK* FONTDEVICE PROP))
(PROG1 (CL:WHEN (BOUNDP VAR)
(GETATOMVAL VAR))
(CL:WHEN (IGEQ NARGS 3)
(SETATOMVAL VAR (ARG NARGS 3))))])
[if (LITATOM FONTDEVICE)
then (SETQ FONTDEVICE (\FONTSYMBOL FONTDEVICE))
else (SETQ FONTDEVICE (\FONT.CHECKARGS FONTDEVICE))
(SETQ FONTDEVICE (CL:IF (type? FONTDESCRIPTOR FONTDEVICE)
(FONTPROP FONTDEVICE 'DEVICE)
(fetch (FONTSPEC FSDEVICE) of FONTDEVICE))]
(CL:UNLESS FONTDEVICE
(SETQ FONTDEVICE 'DISPLAY))
(LET ((VAR (PACK* FONTDEVICE PROP)))
(CL:WHEN (BOUNDP VAR)
(GETATOMVAL VAR])
)
(PUTPROPS FONTDEVICEPROP ARGNAMES (FONTDEVICE PROP NEWVALUE))
(* ; "Moving character information")
@@ -1563,8 +1550,7 @@
NEWDESCENT])
(MOVEFONTCHARS
[LAMBDA (PAIRS DESTFONT DEFAULTSOURCEFONT) (* ; "Edited 1-Mar-2026 09:40 by rmk")
(* ; "Edited 26-Feb-2026 16:59 by rmk")
[LAMBDA (PAIRS DESTFONT DEFAULTSOURCEFONT) (* ; "Edited 26-Feb-2026 16:59 by rmk")
(* ; "Edited 4-Sep-2025 11:07 by rmk")
(* ; "Edited 30-Aug-2025 23:20 by rmk")
(* ; "Edited 26-Aug-2025 23:10 by rmk")
@@ -1596,34 +1582,27 @@
then
(* ;; "E.g. *UNICODETOMCCS*")
[MAPHASH PAIRS (FUNCTION (LAMBDA (DCODE SCODE)
(CL:UNLESS (AND (EQ DCODE SCODE)
(EQ DESTFONT DEFAULTSOURCEFONT))
(\MOVEFONTCHAR (\MOVEFONTCHARS.SOURCEDATA SCODE
[MAPHASH PAIRS (FUNCTION (LAMBDA (VAL KEY)
(CL:UNLESS (EQ VAL KEY)
(\MOVEFONTCHAR (\MOVEFONTCHARS.SOURCEDATA KEY
DEFAULTSOURCEFONT)
DCODE DESTFONT))]
VAL DESTFONT))]
else (LET (PAIRINFO)
(* ;; "Fix/check arguments, and expand out the information for all the source characters, so there is no toe-stepping if there are overlaps.")
(SETQ PAIRINFO (for P S DCODE in PAIRS
collect (CL:WHEN (SMALLP P)
(SETQ P (LIST P P)))
(SETQ DCODE (CADR P))
(CL:UNLESS (CHARCODEP DCODE)
(SETQ DCODE (CHARCODE.DECODE DCODE)))
(CL:WHEN (AND (EQ DCODE (CHARCODE.DECODE (CAR P)
T))
(EQ DESTFONT DEFAULTSOURCEFONT))
(* ;;
 "Skip the vacuous movement within the same font")
(GO $$ITERATE))
(\INSURECHARSETINFO DESTFONT (\CHARSET DCODE))
(LIST (\MOVEFONTCHARS.SOURCEDATA (CAR P)
DEFAULTSOURCEFONT)
DCODE)))
(SETQ PAIRINFO (for P S DCODE in PAIRS collect (CL:WHEN (SMALLP P)
(SETQ P (LIST P P)))
(SETQ DCODE (CADR P))
(CL:UNLESS (CHARCODEP DCODE)
(SETQ DCODE (CHARCODE.DECODE
DCODE)))
(\INSURECHARSETINFO DESTFONT
(\CHARSET DCODE))
(LIST (\MOVEFONTCHARS.SOURCEDATA
(CAR P)
DEFAULTSOURCEFONT)
DCODE)))
(* ;; "Install source character information into the destination font. ")
@@ -2749,8 +2728,7 @@
NIL])
(\SEARCHFONTFILES
[LAMBDA (FONTSPEC) (* ; "Edited 4-Mar-2026 00:14 by rmk")
(* ; "Edited 28-Aug-2025 14:47 by rmk")
[LAMBDA (FONTSPEC) (* ; "Edited 28-Aug-2025 14:47 by rmk")
(* ; "Edited 25-Aug-2025 10:23 by rmk")
(* ; "Edited 23-Aug-2025 12:36 by rmk")
(* ; "Edited 21-Jul-2025 08:57 by rmk")
@@ -2784,8 +2762,8 @@
(* ;;
 "make sure the face, size, and family really match.")
when (AND THISFONT (OR (EQ FAMILY '*)
(EQ FAMILY (fetch (FONTSPEC FSFAMILY) of THISFONT)))
when (AND (OR (EQ FAMILY '*)
(EQ FAMILY (fetch (FONTSPEC FSFAMILY) of THISFONT)))
(OR (EQ SIZE '*)
(EQ SIZE (fetch (FONTSPEC FSSIZE) of THISFONT)))
(MATCHFONTFACE FACE (fetch (FONTSPEC FSFACE) of THISFONT))) unless (MEMBER THISFONT
@@ -3117,9 +3095,7 @@
CHARSETNO ← MAX.SMALLP)
(RECORD FONTSPEC (FSFAMILY FSSIZE FSFACE FSROTATION FSDEVICE)
[TYPE? (AND (LISTP DATUM)
(LITATOM (CAR DATUM))
(FIXP (CADR DATUM])
(TYPE? LISTP))
)
(/DECLAREDATATYPE 'FONTCLASS '(BYTE POINTER POINTER POINTER POINTER POINTER)
@@ -4514,46 +4490,46 @@
(ADDTOVAR NLAML )
(ADDTOVAR LAMA FONTCOPY FONTDEVICEPROP)
(ADDTOVAR LAMA FONTCOPY)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (11576 21243 (CHARWIDTH 11586 . 12375) (CHARWIDTHY 12377 . 13894) (STRINGWIDTH 13896 .
14933) (\CHARWIDTH.DISPLAY 14935 . 15350) (\STRINGWIDTH.DISPLAY 15352 . 15780) (\STRINGWIDTH.GENERIC
15782 . 21241)) (21244 27876 (DEFAULTFONT 21254 . 22539) (FONTCLASS 22541 . 24813) (FONTCLASSUNPARSE
24815 . 25716) (FONTCLASSCOMPONENT 25718 . 26306) (SETFONTCLASSCOMPONENT 26308 . 26750) (
GETFONTCLASSCOMPONENT 26752 . 27874)) (29589 47629 (FONTCREATE 29599 . 32844) (FONTCREATE1 32846 .
35461) (FONTCREATE.SLUGFD 35463 . 36967) (\FONT.CHECKARGS1 36969 . 41674) (\FONTCREATE1.NOFN 41676 .
41890) (FONTFILEP 41892 . 42780) (\READCHARSET 42782 . 47627)) (47630 54706 (\FONT.CHECKARGS 47640 .
54389) (\CHARSET.CHECK 54391 . 54704)) (54707 61318 (COERCEFONTSPEC 54717 . 60629) (
COERCEFONTSPEC.TARGETFACE 60631 . 61316)) (63513 64862 (MAKEFONTSPEC 63523 . 64860)) (64863 73040 (
COMPLETE.FONT 64873 . 67396) (COMPLETEFONTP 67398 . 68021) (COMPLETE.CHARSET 68023 . 70708) (
PRUNESLUGCSINFOS 70710 . 71635) (MONOSPACEFONTP 71637 . 73038)) (73079 81537 (FONTASCENT 73089 . 73473
) (FONTDESCENT 73475 . 73960) (FONTHEIGHT 73962 . 74364) (FONTPROP 74366 . 80814) (\AVGCHARWIDTH 80816
. 81535)) (82194 83627 (FONTDEVICEPROP 82204 . 83625)) (83744 84598 (EDITCHAR 83754 . 84596)) (84644
96834 (GETCHARBITMAP 84654 . 85778) (PUTCHARBITMAP 85780 . 87938) (\GETCHARBITMAP.CSINFO 87940 . 89956
) (\PUTCHARBITMAP.CSINFO 89958 . 96832)) (96835 118474 (MOVECHARBITMAP 96845 . 98739) (MOVEFONTCHARS
98741 . 103846) (\MOVEFONTCHAR 103848 . 108695) (\MOVEFONTCHARS.SOURCEDATA 108697 . 114812) (
\MAKESLUGCHAR 114814 . 117349) (SLUGCHARP.DISPLAY 117351 . 118472)) (119132 130981 (FONTFILES 119142
. 120975) (\FINDFONTFILE 120977 . 122954) (\FONTFILENAMES 122956 . 123516) (\FONTFILENAME 123518 .
126429) (FONTSPECFROMFILENAME 126431 . 130979)) (130982 167231 (FONTCOPY 130992 . 136075) (FONTP
136077 . 136376) (FONTUNPARSE 136378 . 138101) (SETFONTDESCRIPTOR 138103 . 139567) (\STREAMCHARWIDTH
139569 . 143580) (\COERCECHARSET 143582 . 146949) (\BUILDSLUGCSINFO 146951 . 150582) (\FONTSYMBOL
150584 . 151238) (\DEVICESYMBOL 151240 . 152024) (\FONTFACE 152026 . 159230) (\FONTFACE.COLOR 159232
. 166014) (SETFONTCHARENCODING 166016 . 167229)) (167232 187036 (FONTSAVAILABLE 167242 . 172606) (
FONTEXISTS? 172608 . 176149) (\SEARCHFONTFILES 176151 . 179365) (FLUSHFONTCACHE 179367 . 181590) (
FINDFONTFILES 181592 . 184808) (SORTFONTSPECS 184810 . 187034)) (187037 191152 (MATCHFONTFACE 187047
. 187862) (MAKEFONTFACE 187864 . 188898) (FONTFACETOATOM 188900 . 191150)) (191783 192275 (
\UNITWIDTHSVECTOR 191793 . 192273)) (207029 209096 (FONTDESCRIPTOR.DEFPRINT 207039 . 208618) (
FONTCLASS.DEFPRINT 208620 . 209094)) (212925 215715 (\CREATEKERNELEMENT 212935 . 213293) (
\FSETLEFTKERN 213295 . 213786) (\FGETLEFTKERN 213788 . 215713)) (215716 227382 (\CREATEFONT 215726 .
218622) (\CREATECHARSET 218624 . 223133) (\INSTALLCHARSETINFO 223135 . 226469) (
\INSTALLCHARSETINFO.CHARENCODING 226471 . 227380)) (227704 229072 (\FONTRESETCHARWIDTHS 227714 .
229070)) (229702 239779 (\CREATEDISPLAYFONT 229712 . 231579) (\CREATECHARSET.DISPLAY 231581 . 237296)
(\FONTEXISTS?.DISPLAY 237298 . 239777)) (239780 254785 (STRIKEFONT.FILEP 239790 . 240678) (
STRIKEFONT.GETCHARSET 240680 . 246274) (WRITESTRIKEFONTFILE 246276 . 251189) (STRIKECSINFO 251191 .
254783)) (254816 271149 (MAKEBOLD.CHARSET 254826 . 258481) (MAKEBOLD.CHAR 258483 . 260235) (
MAKEITALIC.CHARSET 260237 . 263916) (MAKEITALIC.CHAR 263918 . 266264) (\SFMAKEBOLD 266266 . 268492) (
\SFMAKEITALIC 268494 . 271147)) (271150 275174 (\SFMAKEROTATEDFONT 271160 . 272394) (\SFROTATECSINFO
272396 . 273071) (\SFROTATEFONTCHARACTERS 273073 . 273457) (\SFROTATECSINFOOFFSETS 273459 . 275172)) (
275175 276349 (\SFMAKECOLOR 275185 . 276347)))))
(FILEMAP (NIL (11429 21096 (CHARWIDTH 11439 . 12228) (CHARWIDTHY 12230 . 13747) (STRINGWIDTH 13749 .
14786) (\CHARWIDTH.DISPLAY 14788 . 15203) (\STRINGWIDTH.DISPLAY 15205 . 15633) (\STRINGWIDTH.GENERIC
15635 . 21094)) (21097 27729 (DEFAULTFONT 21107 . 22392) (FONTCLASS 22394 . 24666) (FONTCLASSUNPARSE
24668 . 25569) (FONTCLASSCOMPONENT 25571 . 26159) (SETFONTCLASSCOMPONENT 26161 . 26603) (
GETFONTCLASSCOMPONENT 26605 . 27727)) (29442 47482 (FONTCREATE 29452 . 32697) (FONTCREATE1 32699 .
35314) (FONTCREATE.SLUGFD 35316 . 36820) (\FONT.CHECKARGS1 36822 . 41527) (\FONTCREATE1.NOFN 41529 .
41743) (FONTFILEP 41745 . 42633) (\READCHARSET 42635 . 47480)) (47483 54559 (\FONT.CHECKARGS 47493 .
54242) (\CHARSET.CHECK 54244 . 54557)) (54560 61171 (COERCEFONTSPEC 54570 . 60482) (
COERCEFONTSPEC.TARGETFACE 60484 . 61169)) (63366 64715 (MAKEFONTSPEC 63376 . 64713)) (64716 72893 (
COMPLETE.FONT 64726 . 67249) (COMPLETEFONTP 67251 . 67874) (COMPLETE.CHARSET 67876 . 70561) (
PRUNESLUGCSINFOS 70563 . 71488) (MONOSPACEFONTP 71490 . 72891)) (72932 81390 (FONTASCENT 72942 . 73326
) (FONTDESCENT 73328 . 73813) (FONTHEIGHT 73815 . 74217) (FONTPROP 74219 . 80667) (\AVGCHARWIDTH 80669
. 81388)) (82047 82955 (FONTDEVICEPROP 82057 . 82953)) (83001 83855 (EDITCHAR 83011 . 83853)) (83901
96091 (GETCHARBITMAP 83911 . 85035) (PUTCHARBITMAP 85037 . 87195) (\GETCHARBITMAP.CSINFO 87197 . 89213
) (\PUTCHARBITMAP.CSINFO 89215 . 96089)) (96092 117372 (MOVECHARBITMAP 96102 . 97996) (MOVEFONTCHARS
97998 . 102744) (\MOVEFONTCHAR 102746 . 107593) (\MOVEFONTCHARS.SOURCEDATA 107595 . 113710) (
\MAKESLUGCHAR 113712 . 116247) (SLUGCHARP.DISPLAY 116249 . 117370)) (118030 129879 (FONTFILES 118040
. 119873) (\FINDFONTFILE 119875 . 121852) (\FONTFILENAMES 121854 . 122414) (\FONTFILENAME 122416 .
125327) (FONTSPECFROMFILENAME 125329 . 129877)) (129880 166129 (FONTCOPY 129890 . 134973) (FONTP
134975 . 135274) (FONTUNPARSE 135276 . 136999) (SETFONTDESCRIPTOR 137001 . 138465) (\STREAMCHARWIDTH
138467 . 142478) (\COERCECHARSET 142480 . 145847) (\BUILDSLUGCSINFO 145849 . 149480) (\FONTSYMBOL
149482 . 150136) (\DEVICESYMBOL 150138 . 150922) (\FONTFACE 150924 . 158128) (\FONTFACE.COLOR 158130
. 164912) (SETFONTCHARENCODING 164914 . 166127)) (166130 185807 (FONTSAVAILABLE 166140 . 171504) (
FONTEXISTS? 171506 . 175047) (\SEARCHFONTFILES 175049 . 178136) (FLUSHFONTCACHE 178138 . 180361) (
FINDFONTFILES 180363 . 183579) (SORTFONTSPECS 183581 . 185805)) (185808 189923 (MATCHFONTFACE 185818
. 186633) (MAKEFONTFACE 186635 . 187669) (FONTFACETOATOM 187671 . 189921)) (190554 191046 (
\UNITWIDTHSVECTOR 190564 . 191044)) (205689 207756 (FONTDESCRIPTOR.DEFPRINT 205699 . 207278) (
FONTCLASS.DEFPRINT 207280 . 207754)) (211585 214375 (\CREATEKERNELEMENT 211595 . 211953) (
\FSETLEFTKERN 211955 . 212446) (\FGETLEFTKERN 212448 . 214373)) (214376 226042 (\CREATEFONT 214386 .
217282) (\CREATECHARSET 217284 . 221793) (\INSTALLCHARSETINFO 221795 . 225129) (
\INSTALLCHARSETINFO.CHARENCODING 225131 . 226040)) (226364 227732 (\FONTRESETCHARWIDTHS 226374 .
227730)) (228362 238439 (\CREATEDISPLAYFONT 228372 . 230239) (\CREATECHARSET.DISPLAY 230241 . 235956)
(\FONTEXISTS?.DISPLAY 235958 . 238437)) (238440 253445 (STRIKEFONT.FILEP 238450 . 239338) (
STRIKEFONT.GETCHARSET 239340 . 244934) (WRITESTRIKEFONTFILE 244936 . 249849) (STRIKECSINFO 249851 .
253443)) (253476 269809 (MAKEBOLD.CHARSET 253486 . 257141) (MAKEBOLD.CHAR 257143 . 258895) (
MAKEITALIC.CHARSET 258897 . 262576) (MAKEITALIC.CHAR 262578 . 264924) (\SFMAKEBOLD 264926 . 267152) (
\SFMAKEITALIC 267154 . 269807)) (269810 273834 (\SFMAKEROTATEDFONT 269820 . 271054) (\SFROTATECSINFO
271056 . 271731) (\SFROTATEFONTCHARACTERS 271733 . 272117) (\SFROTATECSINFOOFFSETS 272119 . 273832)) (
273835 275009 (\SFMAKECOLOR 273845 . 275007)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 10)
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 2-Mar-2026 22:52:59" {WMEDLEY}<sources>MEDLEYFONTFORMAT.;252 61298
(FILECREATED "14-Feb-2026 00:39:34" {WMEDLEY}<sources>MEDLEYFONTFORMAT.;250 60733
:EDIT-BY rmk
:CHANGES-TO (FNS MEDLEYFONT.FILENAME MEDLEYFONT.READ.FONT MEDLEYFONT.READ.VERIFIEDFONT)
:CHANGES-TO (FNS MEDLEYFONT.GETCHARSET MEDLEYFONT.READ.CHARSET)
:PREVIOUS-DATE "14-Feb-2026 00:39:34" {WMEDLEY}<sources>MEDLEYFONTFORMAT.;250)
:PREVIOUS-DATE "23-Jan-2026 15:10:16" {WMEDLEY}<sources>MEDLEYFONTFORMAT.;249)
(PRETTYCOMPRINT MEDLEYFONTFORMATCOMS)
@@ -280,14 +280,14 @@
(DEFINEQ
(MEDLEYFONT.READ.FONT
[LAMBDA (FILE CHARSETNOS FONT) (* ; "Edited 2-Mar-2026 20:40 by rmk")
(* ; "Edited 20-Jan-2026 22:31 by rmk")
[LAMBDA (FILE CHARSETNOS FONT) (* ; "Edited 20-Jan-2026 22:31 by rmk")
(* ; "Edited 31-Aug-2025 14:42 by rmk")
(* ; "Edited 15-Jul-2025 20:20 by rmk")
(* ; "Edited 9-Jul-2025 00:06 by rmk")
(* ; "Edited 6-Jul-2025 11:45 by rmk")
(CL:WHEN FONT
(SETQ FONT (FONTCREATE FONT)))
(SETQ FONT (CL:IF FONT
(FONTCREATE FONT)
(create FONTDESCRIPTOR)))
(SETQ FILE (MEDLEYFONT.FILENAME FILE FONT))
(SETQ CHARSETNOS (SORT (MKLIST CHARSETNOS)))
(CL:WITH-OPEN-FILE (STREAM FILE :DIRECTION :INPUT)
@@ -516,16 +516,13 @@
(bind PAIR until [EQ 'STOP (CAR (SETQ PAIR (MEDLEYFONT.READ.ITEM STREAM] collect PAIR])
(MEDLEYFONT.READ.VERIFIEDFONT
[LAMBDA (STREAM FONT) (* ; "Edited 2-Mar-2026 20:40 by rmk")
(* ; "Edited 20-Jan-2026 22:31 by rmk")
[LAMBDA (STREAM FONT) (* ; "Edited 20-Jan-2026 22:31 by rmk")
(* ; "Edited 2-Sep-2025 23:52 by rmk")
(* ; "Edited 12-Aug-2025 17:57 by rmk")
(* ; "Edited 10-Jun-2025 20:57 by rmk")
(* ; "Edited 21-May-2025 22:55 by rmk")
(* ; "Edited 19-May-2025 17:42 by rmk")
(* ; "Edited 16-May-2025 10:28 by rmk")
(CL:UNLESS FONT
(SETQ FONT (create FONTDESCRIPTOR)))
(LET ((FONTPROPS (MEDLEYFONT.READ.FONTPROPS STREAM)))
(for P VAL in FONTPROPS do (SETQ VAL (CADR P))
(SELECTQ (CAR P)
@@ -850,9 +847,7 @@
(DEFINEQ
(MEDLEYFONT.FILENAME
[LAMBDA (FILE FONT CHARSET EXTENSION DIRECTORY) (* ; "Edited 2-Mar-2026 22:45 by rmk")
(* ; "Edited 1-Mar-2026 01:07 by rmk")
(* ; "Edited 23-Jan-2026 15:10 by rmk")
[LAMBDA (FILE FONT CHARSET EXTENSION DIRECTORY) (* ; "Edited 23-Jan-2026 15:10 by rmk")
(* ; "Edited 20-Jan-2026 17:39 by rmk")
(* ; "Edited 7-Oct-2025 11:50 by rmk")
(* ; "Edited 4-Sep-2025 08:48 by rmk")
@@ -860,9 +855,7 @@
(* ; "Edited 25-May-2025 21:25 by rmk")
(* ; "Edited 19-May-2025 17:42 by rmk")
(* ; "Edited 16-May-2025 14:09 by rmk")
(LET [(FONTSPEC (if (type? FONTSPEC FONT)
then (\FONT.CHECKARGS FONT)
else (FONTPROP FONT 'SPEC]
(LET [(FONTSPEC (AND FONT (\FONT.CHECKARGS FONT NIL NIL NIL NIL T]
(CL:UNLESS EXTENSION (* ;
 "EXTENSION may be needed for DIRECTORY below")
(SETQ EXTENSION (OR (FILENAMEFIELD FILE 'EXTENSION)
@@ -931,11 +924,11 @@
)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (2176 16925 (MEDLEYFONT.WRITE.FONT 2186 . 7241) (MEDLEYFONT.GETCHARSET 7243 . 11384) (
MEDLEYFONT.CHARSET? 11386 . 12855) (MEDLEYFONT.GETFILEPROP 12857 . 14957) (MEDLEYFONT.FILEP 14959 .
16923)) (16951 39873 (MEDLEYFONT.READ.FONT 16961 . 21550) (MEDLEYFONT.READ.CHARSET 21552 . 27267) (
MEDLEYFONT.READ.ITEM 27269 . 33418) (MEDLEYFONT.PEEK.ITEM 33420 . 34282) (MEDLEYFONT.READ.FONTPROPS
34284 . 34749) (MEDLEYFONT.READ.VERIFIEDFONT 34751 . 39871)) (39899 57736 (MEDLEYFONT.WRITE.CHARSET
39909 . 44471) (MEDLEYFONT.WRITE.ITEM 44473 . 53526) (MEDLEYFONT.WRITE.FONTPROPS 53528 . 57081) (
MEDLEYFONT.WRITE.HEADER 57083 . 57734)) (57737 60413 (MEDLEYFONT.FILENAME 57747 . 60411)))))
(FILEMAP (NIL (2152 16901 (MEDLEYFONT.WRITE.FONT 2162 . 7217) (MEDLEYFONT.GETCHARSET 7219 . 11360) (
MEDLEYFONT.CHARSET? 11362 . 12831) (MEDLEYFONT.GETFILEPROP 12833 . 14933) (MEDLEYFONT.FILEP 14935 .
16899)) (16927 39618 (MEDLEYFONT.READ.FONT 16937 . 21473) (MEDLEYFONT.READ.CHARSET 21475 . 27190) (
MEDLEYFONT.READ.ITEM 27192 . 33341) (MEDLEYFONT.PEEK.ITEM 33343 . 34205) (MEDLEYFONT.READ.FONTPROPS
34207 . 34672) (MEDLEYFONT.READ.VERIFIEDFONT 34674 . 39616)) (39644 57481 (MEDLEYFONT.WRITE.CHARSET
39654 . 44216) (MEDLEYFONT.WRITE.ITEM 44218 . 53271) (MEDLEYFONT.WRITE.FONTPROPS 53273 . 56826) (
MEDLEYFONT.WRITE.HEADER 56828 . 57479)) (57482 59848 (MEDLEYFONT.FILENAME 57492 . 59846)))))
STOP

Binary file not shown.

1
test Submodule

Submodule test added at 9f6d26f719