Skip to content

Releases: metebalci/muir-sys

System 1001

Choose a tag to compare

@metebalci metebalci released this 23 Sep 01:28

System 1001

A deep cleanup of System 1000, and the faults found while making it. What
will never be used is gone, not commented out, and git keeps the history.
docs/release-1001.md
lists every change, one by one.

The band in the pack was compiled by the system from the sources in
release-1001-sys.tar.gz, made into a cold load, loaded with QLD and saved.

What changed

Removed, 38 fewer source files and about 21,000 fewer lines:

  • Machines other than the CADR: all of the Lambda and the Explorer, their
    processor tests, their NuBus and SDU code, their Ethernet and its microcode,
    and the 28 instruction declarations the CADR's microcode never implemented.
  • Hosts it does not talk to: ITS, TOPS-20, Tenex, Twenex, VMS and Multics
    pathnames and hosts, and LMFILE. What remains is UNIX, the local file
    system, and logical hosts.
  • Hardware nobody here has: the Xerox Press and Dover printing path with
    EFTP, the XGP printer, the keyboard and PROM firmware tools, the wire-wrap
    board tester and the Votrax speech demos.
  • Patches. This system makes releases, never patches, so the machinery
    that loaded and wrote them is gone, with the editor's commands for it. The
    version the herald prints is kept, and so is the patch directory it lives in.
  • Other dialects: MacLisp and NIL conditionals, STATUS and SSTATUS,
    and the compatibility macros; about 400 reader conditionals resolved to what
    a CADR reads, with no change to the code the reader produces.
  • Dead weight: files no system loaded, disabled blocks, duplicate copies,
    obsolete names nothing called, and notes that described a machine that is
    not here.

Fixed, each with its reason in the source:

  • The last of MIT's own unfinished notes are answered.
  • The error handler saves and restores a stack group's property list again,
    and returns to single-instruction stepping from a foothold.
  • A property of a function spec that is not a symbol, such as which file a
    method came from, can be read back again.
  • Over TELNET: ~% sends CR LF, a session whose first input is Return no
    longer breaks, a line read no longer traps, and a question answered wrongly
    asks again instead of failing.
  • The who line shows what a running process is doing, not NIL.
  • The microcode assembler writes the diagnostic microcode files correctly.

New: a cold load can be driven without a console. It asks the file server
for SYS: SITE; COLDRUN LISP and evaluates what it finds, so a build can hand
it (SI:QLD) and the save with no screen. It reports its progress with MINI's
new opcode 204, which ozd 8c816e5 or later writes to its log.

Assets

File Bytes SHA-256
release-1001-pack.img.gz 6,908,903 7ddf071b28a6e8b14fe0501683458ee8ae640291751e2c306e35316ee15ba713
release-1001-sys.tar.gz 4,344,048 507d1fe89e8a8890a42c4a8630ef5eddb058fbebebc4c66df7e33ea708a42269

The uncompressed pack, release-1001-pack.img, is 269,562,880 bytes with
SHA-256 279e597891a0d8263a82d52898dbc2194e7c0f19cbca194d8aaf5750226b7298.

  • The pack is named LISPM-1 and laid out as muir's diskpack initialize
    makes it: MCR1 and MCR2, PAGE, and LOD1 to LOD4. Only two partitions are
    loaded: MCR1, "UCADR 323", the microcode, written from the assembled
    sys/ubin/ucadr.mcr, and LOD1, "Exp 1001", the band. Both are current.
  • The sources unpack to release-1001/: the whole repository from
    git archive of tag release-1001 (commit
    d0d68ded90548b375d25bfcfae01710e8da583be; sys/ is git tree
    94b40800ad8146b39be75d39f5254b581ba06e01), plus sys/ubin/: the
    assembled microcode, boot PROM and diagnostic microcode, which the error
    handler reads at run time and a rebuild needs.
  • site/ in the sources is the site the band was built with. It is an
    example to copy and readdress; a band built for another site loads that
    site's files.

Verification

Built on 2026-09-22 and 23 on muir 3457a56's micro engine with ozd
8c816e5. The clean SYSTEM compile took 2h27m30s, MAKE-COLD 5m33s, and the
unattended QLD 25m26s. Every QFASL was compiled by a band whose site is MIT, and
reassembling the microcode from sys/ucadr/ reproduced ucadr.mcr, .tbl,
.locs and .sym byte for byte.

The saved band passed version, site, SYS file-access and arithmetic checks,
and WORMCH matched its AST source. A copy of the compressed pack, with the
sources extracted from the archive, booted as "MIT System, band 1 of LISPM-1",
System 1001, microcode 323, and read SYS files from those sources. Both loaded
partitions of the release pack match the build pack, and every unused
partition, PAGE included, is zero. The checksummed pack itself has never been
booted.

Running it

The band expects its site's Chaosnet: subnet 376, with its file, time and host
table server OZ at 177200 and the machine LISPM-1 at 177201.

gunzip release-1001-pack.img.gz
tar -xzf release-1001-sys.tar.gz
mkdir lispm

ozd --address 177200 --name OZ,system=UNIX \
    --root sys=$PWD/release-1001/sys --root site=$PWD/release-1001/site \
    --root lispm=$PWD/lispm \
    --host 177201,LISPM-1,system=LISPM --peer 177201@127.0.0.1:42043 \
    --tcp 127.0.0.1:2323,TELNET@177201

muir --micro --disk-pack release-1001-pack.img \
    --chaos-address 177201 --chaos-udp 42043 \
    --chaos-udp-peer 177200@127.0.0.1:42042 --chaos-udp-default-peer 127.0.0.1:42042

The machine boots to "MIT System, band 1 of LISPM-1" and "Experimental System
1001". muir serves the screen, keyboard and mouse over RFB, for any VNC viewer
(muir --help, --terminal), and telnet 127.0.0.1 2323 reaches its Lisp
listener through ozd. Log in with (login "LISPM" "OZ" t) before touching
files.

Upgrading from System 1000

Nothing carries over between bands: a release is a whole band, and there are
no patches. Take the new pack. The 28 unimplemented instruction declarations
are gone, freeing octal 732-737, 761-767 and 1100-1116, and MINI has opcode
204. The microcode is unchanged, 323.

Licence

GNU Affero General Public License, version 3 or later. LICENSE and NOTICE
are in the sources tarball; NOTICE gives the sources' provenance and every
copyright notice in the tree that is not MIT's.

System 1000

Choose a tag to compare

@metebalci metebalci released this 23 Sep 01:57

System 1000

System 100 fixed and cleaned up: the same sources and microcode 323, the
faults that stopped it rebuilding itself repaired, the material that is not
MIT's left out. It continues where System 100 left off.
docs/release-1000.md
lists every change.

The band in the pack was compiled by the system from the sources in
release-1000-sys.tar.gz, made into a cold load, loaded with QLD and saved.

What changed

  • It rebuilds itself. The fault that stopped a cold load in silence and
    MINI's two stream faults are fixed. The band is compiled by the system
    itself, and the microcode is assembled from its sources.
  • The network: the routing table covers every subnet, and MINI finds its
    file server by itself.
  • Fixes from LM-3's later work. LM-3 went on from System 100 to releases
    300 through 304. Those are not taken whole, because much of them is LMI and
    System 130 material; instead 36 of LM-3's bug fixes are taken one at a
    time, each read against this tree before it was applied: in the cold-load
    builder, the compiler, pathnames and the file client, Chaosnet, the window
    system and ZWEI.
    docs/upstream-changes.md
    records every ruling.
  • About forty faults are fixed across the tree.
  • Gone: the tape, LMFILE and Xerox printing systems. Only System is
    patchable, and what is not MIT's, or not wanted, was never imported.
  • The site is named MIT, as System 100 has it, so the herald says "MIT
    System". Only the name is taken: the hosts are this site's own, numbered
    from the first address of subnet 376, OZ at 177200 and LISPM-1 at 177201.

Assets

File Bytes SHA-256
release-1000-pack.img.gz 7,092,250 3a7a9ed31a342ccd1d8b21390b39243e977068c036f023a84e5f3177b74a6c4f
release-1000-sys.tar.gz 4,515,833 939193ba71cb2b9e59616ee232f918cf727e5480f414c904ecb777baf498a823

The uncompressed pack, release-1000-pack.img, is 269,562,880 bytes with
SHA-256 358716ee112c37eb292c6b812851039bd3eafad050d025cd42e84cd90a0536e1.

  • The pack is named LISPM-1 and laid out as muir's diskpack initialize
    makes it: MCR1 and MCR2, PAGE, and LOD1 to LOD4. Only two partitions are
    loaded: MCR1, "UCADR 323", the microcode, written from the assembled
    sys/ubin/ucadr.mcr, and LOD1, "Exp 1000", the band. Both are current.
  • The sources unpack to release-1000/: the system alone, sys/ and
    site/ with LICENSE and NOTICE, by git archive of tag release-1000
    (commit 660c7ac7bcb18b4c648ffb7ce42cf0222800fc58; sys/ is git tree
    becbfd439179e5ac13cd7e991aa03295f09ba337), plus sys/ubin/: the
    microcode, boot PROM and diagnostic microcode, which the error handler reads
    at run time and a rebuild needs. The build procedure and the change record
    are in the repository's docs/.
  • site/ in the sources is the site the band was built with. It is an
    example to copy and readdress; a band built for another site loads that
    site's files.

Verification

Built on 2026-09-22 and 23 on muir 3457a56's micro engine with ozd
8c816e5. The clean SYSTEM compile took 2h27m, MAKE-COLD 6m45s, and QLD,
typed at the cold load's console, loaded the world to a partition size of
20842 blocks. Every QFASL was compiled by a band whose site is MIT, and
reassembling the microcode from sys/ucadr/ reproduced ucadr.mcr, .tbl
and .locs byte for byte, and .sym line for line.

The saved band passed version, site, SYS file-access and arithmetic checks,
and WORMCH matched its AST source. A copy of the compressed pack, with the
sources extracted from the archive, booted as "MIT System, band 1 of LISPM-1",
System 1000, microcode 323, and read SYS files from those sources. Both loaded
partitions of the release pack match the build pack, and every unused
partition, PAGE included, is zero. The checksummed pack itself has never been
booted.

Running it

The band expects its site's Chaosnet: subnet 376, with its file, time and host
table server OZ at 177200 and the machine LISPM-1 at 177201.

gunzip release-1000-pack.img.gz
tar -xzf release-1000-sys.tar.gz
mkdir lispm

ozd --address 177200 --name OZ,system=UNIX \
    --root sys=$PWD/release-1000/sys --root site=$PWD/release-1000/site \
    --root lispm=$PWD/lispm \
    --host 177201,LISPM-1,system=LISPM --peer 177201@127.0.0.1:42043 \
    --tcp 127.0.0.1:2323,TELNET@177201

muir --micro --disk-pack release-1000-pack.img \
    --chaos-address 177201 --chaos-udp 42043 \
    --chaos-udp-peer 177200@127.0.0.1:42042 --chaos-udp-default-peer 127.0.0.1:42042

The machine boots to "MIT System, band 1 of LISPM-1" and "Experimental System
1000". muir serves the screen, keyboard and mouse over RFB, for any VNC viewer
(muir --help, --terminal), and telnet 127.0.0.1 2323 reaches its Lisp
listener through ozd. Log in with (login "LISPM" "OZ" t) before touching
files.

Licence

GNU Affero General Public License, version 3 or later. LICENSE and NOTICE
are in the sources tarball; NOTICE gives the sources' provenance and every
copyright notice in the tree that is not MIT's.