SESSION.md 2.3 KB

SESSION.md — M2compiler mc64 VM (session close)

Tree: /home/eric/Projets/Projets-Modula2/MyWork/M2compiler (git root, committed) West: mc64/ (16bit->64bit translator + 64bit VM mcint). Locked translator: trans8to64.mod md5 5f922946 (pristine, restored via git checkout, build rc=0

                             with FileIO.o Console.o; no corruption, no regression)

git: clean; mc64/SESSION.md tracked; Resources/ never tracked (per bb5e767).

Session result (HONEST: dependency-chain milestone NOT completed)

Assigned: Loader2 dep-chain so Extended/Array/Local (dcnt=1, dep=STACK) run under mcint. Attempts: several assert-first literal patches to trans8to64.mod — most aborted on literal mismatch (no writes); ONE landed but had LONGCARD/CARDINAL type bug at the tail (imgLen : CARDINAL), caught by build rc=1 BEFORE any image emit → git checkout restored pristine md5 5f922946. Net: no corruption, no regression, translator verified re-buildable, git clean.

Why stopped: the 64-bit loader binds ONE module window into slot 0 and hard-fences dcnt#0 at Loader2.mod:57. Real dep-chain = proper multi-module VM feature: (1) translator carry dcnt + dcnt*8-byte dep-name table appended at image tail

   (WB (DescDepCount, dcnt); imgLen := imgLen + dcnt*8; CARDINAL-typed all the way);

(2) Loader2 chain-load a sidecar dep image into module slot 1 before slot 0

   (multi-window arena);

(3) MC64 already resolves cross-module procs (nw DIV 16 = module, nw MOD 16 = proc,

   Interpreter.mod:743-744 via FindModuleBase) — VM side is ready; loader link missing.

NEXT SESSION — exact starting byte-verified state

cd /home/eric/Projets/Projets-Modula2/MyWork/M2compiler/mc64 md5sum trans8to64.mod # must print 5f922946 (locked) git status # must be clean gm2 -fiso -o trans8to64 trans8to64.mod FileIO.o Console.o # must rc=0 Then the Loader2 dep-chain milestone above. All writes go through FileIO.o Console.o (NOT the foreign FIO.o used in a lost earlier glob). Build rc != 0 => stop, restore.

Regression that stayed green (from earlier verified runs this tree)

Stack.MCD -> trans8to64 -> Stack64.MC4 -> mcint : rc=0 9-spec translator regression: Stack, Array, Local, Extended, Instruction, Loader, Console, FileIO, MCODE-stub: 8 ok / 1 skip (the translator never regresses these).