muir-sys · the front page · release notes

Release notes

Releases

Every release is a whole band, built from the sources by a clean compile, a new cold load, QLD and a save. There are no patches: a release is replaced by the next one.

System 1001

2026-09-23 · tag release-1001 · get it

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.

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
  • 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.
Upgrading from System 1000

Nothing carries over between bands: 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.

Assets
FileBytesSHA-256
release-1001-pack.img.gz6,908,9037ddf071b28a6e8b14fe0501683458ee8ae640291751e2c306e35316ee15ba713
release-1001-sys.tar.gz4,344,048507d1fe89e8a8890a42c4a8630ef5eddb058fbebebc4c66df7e33ea708a42269

The tarball unpacks to release-1001/: the whole repository at the tag, with the assembled microcode in sys/ubin/. Every change is recorded in docs/release-1001.md.

System 1000

2026-09-23 · tag release-1000 · get it

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.

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 subnet’s first address, OZ at 177200 and LISPM-1 at 177201 on subnet 376.
Assets
FileBytesSHA-256
release-1000-pack.img.gz7,092,2503a7a9ed31a342ccd1d8b21390b39243e977068c036f023a84e5f3177b74a6c4f
release-1000-sys.tar.gz4,515,833939193ba71cb2b9e59616ee232f918cf727e5480f414c904ecb777baf498a823

The tarball unpacks to release-1000/: sys/ and site/ with LICENSE and NOTICE, and the assembled microcode in sys/ubin/. Every change is recorded in docs/release-1000.md.

Running a release

A band expects its site’s Chaosnet: subnet 376, with its file, time and host table server OZ at 177200, which ozd provides, and the machine LISPM-1 at 177201. For release N, with muir:

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

ozd --address 177200 --name OZ,system=UNIX \
    --root sys=$PWD/release-N/sys --root site=$PWD/release-N/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-N-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". muir serves the screen, keyboard and mouse over RFB, for any VNC viewer, and telnet 127.0.0.1 2323 reaches its Lisp listener through ozd. Log in with (login "LISPM" "OZ" t) before touching files.