Stage D batch 5: mama_forth_words.c group 3 -- cross-VM execution/dispatch, both flagged special cases resolved (FABRIC-3.md §XXXII.6)
VM-STEP/VM-EXEC/VM-CALL (5 sites) gained console_println() diagnostics
matching their own existing sibling guards.
SWITCH-MARK-WORK and VM-HEAT (3 sites) resolved per §XXXII.3's own
recommendation: dropped vm->error entirely rather than diagnosing it,
matching each function's own doc comment ("must never error or spam
the console" / "does not print/error"). SWITCH-MARK-WORK is the same
function §XXVIII.3 already fixed once for an off-by-one that fired
silently on every MSG-SEND in the system -- the guard now genuinely
cannot repeat that by contract, not just by the threshold being right.
VM-HEAT's guards now push 0 and return, matching its own
always-returns-a-value stack effect.
Three-arch clean qemu acceptance passed. Zuse's own WIREBIND attach
(every boot) drives MSG-SEND -> SWITCH-MARK-WORK, so this batch's most
safety-critical fix is exercised by standard acceptance, not just
compiled.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
b42c3b195c
commit
8b5300fc4f
+20
@@ -4634,3 +4634,23 @@ gold-standard default for a function with nothing else to match against.
|
||||
`BIRTH` itself is exercised heavily by every boot (Hermes/Artemis birth), a real regression check
|
||||
beyond compile-cleanliness for this specific batch.
|
||||
|
||||
**Batch 5 -- DONE, 2026-09-15: group 3, cross-VM execution/dispatch (`VM-STEP`/`VM-EXEC`/
|
||||
`VM-CALL`/`SWITCH-MARK-WORK`/`VM-HEAT`) -- 11 sites, including both flagged special cases.**
|
||||
`VM-STEP` (1 site), `VM-EXEC` (2), `VM-CALL` (2) gained `console_println()` diagnostics matching
|
||||
their own existing sibling guards, same shape as batch 4.
|
||||
|
||||
**The two flagged special cases resolved per §XXXII.3's own recommendation -- dropped the error
|
||||
entirely, not diagnosed.** `SWITCH-MARK-WORK`'s underflow guard (`dsp < 1`) now bare-returns,
|
||||
matching its own doc comment's "must never error or spam the console" contract exactly -- this
|
||||
is the same function §XXVIII.3 already fixed once for an off-by-one that fired on every
|
||||
`MSG-SEND` in the system; the guard now genuinely cannot do that again, by contract rather than
|
||||
by accident of the threshold being right. `VM-HEAT`'s two guards (`dsp < 1`, bad address) now
|
||||
push `0` and return, matching the word's own "unknown name -> push 0, never error" contract and
|
||||
its own always-returns-a-value stack effect -- previously these two specific guards were the
|
||||
only ways to make this word violate its own documented promise.
|
||||
|
||||
**Verified:** three-architecture `clean qemu` acceptance (amd64/aarch64/riscv64) passed. Zuse's
|
||||
own WIREBIND attach (every boot) drives `HERA-BLK-ATTACH-REQ`'s `MSG-SEND`, which tail-calls
|
||||
`SWITCH-MARK-WORK` -- so this fix's own most safety-critical path is exercised by the standard
|
||||
acceptance boot itself, not just compiled.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user