Hera never loaded common:messaging.4th, unlike every other VM in the fleet. The standing belief was this was deliberate, to avoid moving her dict_hash off baseline. Checked live instead of assumed: loading messaging.4th into her dictionary silently dropped every colon- definition referencing one of 8 STADIUM-* primitives that register_child_vm_words() gives every other VM but register_mama_forth_words() never gave her -- a missing-primitive gap, not a designed privilege boundary. Confirmed mama_word_birth is genuinely VM-agnostic and SPAWN-EVENT is an unwired placeholder before proposing the fix. Fix: register the same 8 STADIUM-* primitives for Hera, load messaging.4th from init.4th the same way Hermes/Artemis/console/mint already do, and give her own idle-loop context a direct MSG-TICK call (not VM-EXEC, which would hit the same reentrancy class the existing per-other-VM pump loop already guards against) so her own queued messages actually drain. Her dictionary is now a proper superset of every child VM's, plus her remaining extra privileges -- not structurally different from any other VM, just additionally privileged. Verified: dict_hash identical across amd64/aarch64/riscv64 (0xc8f4b09e36f4fc4a), Hermes/Artemis dict_hashes unchanged and still cross-arch identical, all three boot clean to zuse)ok> with zero UNKNOWN WORD faults, mkcapsule --lint clean. Unblocks rewriting the turn-attractor (FABRIC-3.md §XIX) to coordinate via real MSG-SEND/MSG-TICK instead of blocking VM-EXEC. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EXieurDfDSsDFdnSyusuWo
29 lines
721 B
Forth
29 lines
721 B
Forth
Block 2057
|
|
( BOOT-BANNER - LithosAnanke REPL greeting )
|
|
: .SEP ." ================================================" CR ;
|
|
: BOOT-BANNER
|
|
CR .SEP
|
|
." LithosAnanke — FORTH-79 bare-metal kernel" CR
|
|
." Stadium step one: Hera alone" CR
|
|
.SEP
|
|
." Hera [live]" CR
|
|
.SEP CR ;
|
|
Block 2049
|
|
( Hera init — Mama VM personality )
|
|
: VM-TREE ( -- ) ." Hera[0]" CR ;
|
|
: VM-PARENT ( -- id ) 0 ;
|
|
: VM-CHILDREN ( -- ) ." (none)" CR ;
|
|
S" ACL.4th" EXEC
|
|
S" block-acl.4th" EXEC
|
|
S" zuse-eligibility.4th" EXEC
|
|
S" lib.4th" EXEC
|
|
S" fabric.4th" EXEC
|
|
S" font.4th" EXEC
|
|
( SXX: same pattern Hermes/Artemis/console/mint already use. )
|
|
S" common:messaging.4th" EXEC
|
|
MSG-CD-INIT
|
|
Block 2050
|
|
( Hera boot — banner )
|
|
BOOT-BANNER
|
|
STARTUP-BANNER
|