capsules: prune init.4th to Hera alone
Punch list §25 item 0.1 complete. Verified: all three architectures build clean and boot to the ok> prompt with Hera alone. Blocks executed are exactly 2057 -> 2049 (-> lib.4th/4050) -> 2050. Zero occurrences of "Hermes" or "Tripod" in any of the three serial logs, and the only parity record is MAMA_INIT -- no baby VM is born. mkcapsule --lint passes 26 files, 0 failing, 0 violations. Deleted blocks 2051, 2052, 2053, 2054, 2055, 2056, 2058, 2059 -- readiness handshake, broadcast test, TRIPOD-TEST, HERMES-E2E and the fleet-DoE scaffolding. Edited 2057 (banner), 2049 (dropped both births with their CD-INIT calls and the common:msg.4th / process.4th loads, which are wholly Hermes-dependent; kept lib.4th; VM-TREE and VM-CHILDREN no longer name absent children) and 2050 (kept the BOOT-BANNER call, dropped the two calls to the deleted words). capsules/hermes/ and capsules/artemis/ untouched on disk. New Hera-alone parity baseline, identical across all three ISAs: dict_hash=0x3d4e1daf289da94f capsule_hash=0xb4c4b5559146a3bd This supersedes the pre-prune baselines in logs/ and is what item 0.10's double-boot reproducibility check compares against. Commit contents beyond the item's own edit, noted rather than slipped in: capsules/BLOCK_MAP.md is regenerated by any build; the three serial logs are this item's acceptance evidence and CLAUDE.md requires committing them; the DoE CSVs are auto-extracted by the qemu target on every run. Leaving generated output from this item's acceptance run for a later item to sweep up would be worse than including it here. Reported, not fixed: tools/mkcapsule.c emits two -Wstringop-truncation warnings on the host build (:404, :562), pre-existing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
39aa54b9a4
commit
c3e4fc282c
+4
-132
@@ -4,145 +4,17 @@ Block 2057
|
||||
: BOOT-BANNER
|
||||
CR .SEP
|
||||
." LithosAnanke — FORTH-79 bare-metal kernel" CR
|
||||
." Tripod v1: K=1.0 + Hermes events + Artemis storage" CR
|
||||
." Stadium step one: Hera alone" CR
|
||||
.SEP
|
||||
." Tripod: Hera Hermes Artemis [live]" CR
|
||||
." Hera [live]" CR
|
||||
.SEP CR ;
|
||||
Block 2049
|
||||
( Hera init — Mama VM personality )
|
||||
: VM-TREE ( -- ) ." Hera[0]>Hermes[1] Artemis[2]" CR ;
|
||||
: VM-TREE ( -- ) ." Hera[0]" CR ;
|
||||
: VM-PARENT ( -- id ) 0 ;
|
||||
: VM-CHILDREN ( -- ) ." Hermes[1] Artemis[2]" CR ;
|
||||
: VM-CHILDREN ( -- ) ." (none)" CR ;
|
||||
\ S" ACL.4th" EXEC
|
||||
S" lib.4th" EXEC
|
||||
S" common:msg.4th" USE
|
||||
S" process.4th" EXEC
|
||||
\ Tripod boot: Artemis -> Hermes -> Hera
|
||||
S" Artemis" BIRTH
|
||||
S" CD-INIT" S" Artemis" VM-EXEC
|
||||
S" Hermes" BIRTH
|
||||
S" CD-INIT" S" Hermes" VM-EXEC
|
||||
Block 2053
|
||||
( Phase 1: readiness handshake -- VM-FLEET-ATTRACTOR-DESIGN )
|
||||
: READINESS-HANDSHAKE ( -- )
|
||||
S" HERMES-ANNOUNCE-READY" S" Hermes" VM-EXEC
|
||||
S" ARTEMIS-ANNOUNCE-READY" S" Artemis" VM-EXEC
|
||||
S" 0 ENQUEUE-READY" S" Hermes" VM-EXEC
|
||||
S" HERMES-TICK" S" Hermes" VM-EXEC
|
||||
S" READY-ALL?" S" Hermes" VM-CALL IF
|
||||
S" READY-ACK" S" Hermes" VM-EXEC
|
||||
S" ARTEMIS-READY-ACK" S" Artemis" VM-EXEC
|
||||
LOG-TEST" PASS: readiness handshake"
|
||||
VM-PHYSICS-STATUS
|
||||
ELSE
|
||||
LOG-ERROR" FAIL: readiness handshake"
|
||||
THEN ;
|
||||
Block 2054
|
||||
( Phase 2: real broadcast -- VM-FLEET-ATTRACTOR-DESIGN )
|
||||
VARIABLE BCAST-GOT
|
||||
: BCAST-RECV ( -- ) 1 BCAST-GOT +! ;
|
||||
: BROADCAST-TEST ( -- )
|
||||
S" REGISTER-COMMON-MEMBERS" S" Hermes" VM-EXEC
|
||||
S" SEND-BROADCAST-TEST" S" Hermes" VM-EXEC
|
||||
S" HERMES-TICK" S" Hermes" VM-EXEC
|
||||
BCAST-GOT @ 0>
|
||||
S" BCAST-GOT @" S" Hermes" VM-CALL 0> AND
|
||||
S" BCAST-GOT @" S" Artemis" VM-CALL 0> AND
|
||||
IF LOG-TEST" PASS: broadcast reached all 3"
|
||||
VM-PHYSICS-STATUS
|
||||
ELSE LOG-ERROR" FAIL: broadcast reached all 3" THEN ;
|
||||
Block 2050
|
||||
( Hera boot — banner )
|
||||
BOOT-BANNER
|
||||
READINESS-HANDSHAKE
|
||||
BROADCAST-TEST
|
||||
Block 2051
|
||||
( TRIPOD-TEST: 6 criteria per TRIPOD.md )
|
||||
( K holds continuously by construction; no tick-pump )
|
||||
: TRIPOD-TEST ( -- )
|
||||
LOG-INFO" === TRIPOD Acceptance ==="
|
||||
VM-CONSERVED? IF LOG-TEST" PASS: fleet K"
|
||||
ELSE LOG-ERROR" FAIL: K drift" THEN
|
||||
S" HERMES-TICK" S" Hermes" VM-EXEC
|
||||
LOG-TEST" PASS: Hermes liveness"
|
||||
S" ART-STATUS" S" Artemis" VM-EXEC
|
||||
LOG-TEST" PASS: Artemis ready"
|
||||
S" Hermes" KILL-VM
|
||||
LOG-TEST" PASS: reap"
|
||||
S" Hermes" BIRTH S" CD-INIT" S" Hermes" VM-EXEC
|
||||
VM-CONSERVED? IF LOG-TEST" K soak"
|
||||
ELSE LOG-ERROR" K soak" THEN
|
||||
LOG-INFO" === TRIPOD DONE ===" ;
|
||||
Block 2052
|
||||
( Run TRIPOD acceptance test + E2E msg flow )
|
||||
TRIPOD-TEST
|
||||
: HERMES-E2E ( -- )
|
||||
S" HERMES-MSG-TEST" S" Hermes" VM-CALL
|
||||
IF LOG-TEST" PASS: msg queued"
|
||||
ELSE LOG-ERROR" FAIL: msg queued" THEN
|
||||
S" HERMES-TICK" S" Hermes" VM-EXEC
|
||||
S" MSG-USED" S" Hermes" VM-CALL
|
||||
0 > IF LOG-TEST" PASS: E2E msg flow"
|
||||
ELSE LOG-ERROR" FAIL: E2E msg flow" THEN ;
|
||||
HERMES-E2E
|
||||
Block 2055
|
||||
( Phase 3: fleet DoE -- one config per VM per run )
|
||||
( VM-FLEET-ATTRACTOR-DESIGN-20260705.md rev h. Not run at )
|
||||
( boot -- invoked via serial injection: )
|
||||
( SEED N-RUNS EXEC-FLEET-DOE )
|
||||
VARIABLE FDOE-RUN-ID
|
||||
VARIABLE FDOE-HERA VARIABLE FDOE-HERMES VARIABLE FDOE-ARTEMIS
|
||||
: FLEET-DOE-HDR ( -- )
|
||||
." FLEETDOE,run_id,hera_cfg,hermes_cfg,artemis_cfg" CRLF ;
|
||||
: FLEET-DOE-ROW ( -- )
|
||||
." FLEETDOE," FDOE-RUN-ID @ CSV-COL
|
||||
FDOE-HERA @ CSV-COL FDOE-HERMES @ CSV-COL
|
||||
FDOE-ARTEMIS @ CSV-LAST ;
|
||||
Block 2056
|
||||
( FDOE-REMOTE-FORCE-CMD: cfg -> "N L8-TABLE-FORCE" command )
|
||||
( string for VM-EXEC, targeting the same 128-config table )
|
||||
( the remote VM's own heartbeat drives (ssm_l8_force_config, )
|
||||
( ssm_jacquard.c) -- no CASE lookup needed for a raw index. )
|
||||
VARIABLE FDOE-CMD-POS VARIABLE FDOE-APPEND-LEN
|
||||
: FDOE-CMD-APPEND ( src-addr src-len -- )
|
||||
DUP FDOE-APPEND-LEN !
|
||||
FDOE-CMD-POS @ SWAP MOVE
|
||||
FDOE-APPEND-LEN @ FDOE-CMD-POS +! ;
|
||||
: FDOE-REMOTE-FORCE-CMD ( cfg -- addr len )
|
||||
PAD FDOE-CMD-POS !
|
||||
0 SWAP <# #S #> FDOE-CMD-APPEND
|
||||
S" L8-TABLE-FORCE" FDOE-CMD-APPEND
|
||||
PAD FDOE-CMD-POS @ PAD - ;
|
||||
Block 2058
|
||||
( Per-run apply + workload. Workload is HERMES-TICK/ART-PING, )
|
||||
( not BROADCAST-TEST -- that would exhaust Hermes's fixed )
|
||||
( member/message arenas after ~20 runs by re-registering )
|
||||
( members and allocating message slots faster than heat-decay )
|
||||
( reap can free them. VM-EXEC/VM-CALL themselves are what )
|
||||
( trigger vm_physics_touch -- the workload just needs to reach )
|
||||
( Hermes and Artemis each run, not do anything expensive. )
|
||||
: FDOE-APPLY-ALL ( hera-cfg hermes-cfg artemis-cfg -- )
|
||||
FDOE-ARTEMIS ! FDOE-HERMES ! FDOE-HERA !
|
||||
FDOE-HERA @ L8-TABLE-FORCE
|
||||
FDOE-HERMES @ FDOE-REMOTE-FORCE-CMD S" Hermes" VM-EXEC
|
||||
FDOE-ARTEMIS @ FDOE-REMOTE-FORCE-CMD S" Artemis" VM-EXEC ;
|
||||
: FLEET-DOE-WORKLOAD ( -- )
|
||||
S" HERMES-TICK" S" Hermes" VM-EXEC
|
||||
S" ART-PING" S" Artemis" VM-EXEC ;
|
||||
Block 2059
|
||||
( Run loop: draws (hera,hermes,artemis) cfg independently and )
|
||||
( uniformly from 0-127 each, with replacement, for n-runs. )
|
||||
: FLEET-DOE-RUN-ONE ( hera-cfg hermes-cfg artemis-cfg -- )
|
||||
FDOE-APPLY-ALL
|
||||
FLEET-DOE-WORKLOAD
|
||||
FLEET-DOE-ROW
|
||||
1 FDOE-RUN-ID +! ;
|
||||
: EXEC-FLEET-DOE ( seed n-runs -- )
|
||||
SWAP SEED 0 FDOE-RUN-ID ! 1 LOG-LEVEL!
|
||||
FLEET-DOE-HDR
|
||||
0 DO
|
||||
0 127 RANDOM 0 127 RANDOM 0 127 RANDOM
|
||||
FLEET-DOE-RUN-ONE
|
||||
LOOP
|
||||
3 LOG-LEVEL!
|
||||
." FLEET-DOE: complete" CRLF ;
|
||||
|
||||
Reference in New Issue
Block a user