multiuser-doe.4th: the campaign trial-loop capsule, verified live
Build / build-amd64-iso (push) Canceled after 0s
Build / build-aarch64-iso (push) Canceled after 0s
Build / build-riscv64-img (push) Canceled after 0s

Builds the experimental control Bob correctly identified as still
missing after HB-ON/HB-OFF (§XXXIII.5): walk the shuffled matrix of
concurrency-level x workload-mode cells, birth the right worker count
per cell, drive each with two VM-EXEC touches, check VM-ERROR?, kill
them, print a trial marker. Built entirely from existing primitives
(WORKER-BIRTH, VM-EXEC, VM-HEAT, VM-ERROR?, KILL, HB-ON/HB-OFF) plus
doe.4th's own RUN-MATRIX/SHUFFLE-MATRIX pattern -- no new C primitives.

Real capsule-format bug found and fixed: a first draft, chunked purely
by a fixed 16-line count with no regard for word boundaries, split
several CASE...ENDCASE structures and one oversized colon definition
across Block headers. Result was a cascading [CAPSULE][DEFER] failure
from the first split forward -- every subsequent line failed to
compile, and MU-RUN-TRIAL was never actually defined (confirmed:
UNKNOWN WORD when called). Root cause traced to capsule_loader.c
directly: a :...; word and any control structure inside it must fit
entirely within one 16-line block -- the loader's per-block compile
pass has no persistent record of an open CASE's (or an overlong
definition's own) state across a Block boundary. Not previously
documented anywhere in this project's capsule-authoring guidance.
Fixed via manually curated block boundaries and factoring oversized
bodies into smaller helper words.

Reps ratified at 60/cell (not the 10 first drafted), matching this
project's own "rule of 3's" DoE convention (ACL-RWT's 3 seeds/30 reps,
std79's 3x9x3). 6 cfgs x 60 reps = 360 main-block trials.
MU-MAX-REPS raised 20 -> 63 for run-matrix headroom.

Verified live on amd64: one isolated trial (0 0 999 MU-RUN-TRIAL)
produced two real concurrent births, two clean kills, and the exact
expected marker (MU-TRIAL run=999 cfg=0 rep=0 nw=2 mode=0 fail=0).
Hera stayed healthy throughout. Clean 3-arch qemu boot.

Not yet run: the full 360-trial MU-EXEC-CAMPAIGN itself (a genuinely
long-running action under TCG, deliberately not started without
explicit confirmation) or the WIREBIND-automation fixed arm.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
Robert Allan James
2026-09-16 10:27:45 -04:00
co-authored by Claude Sonnet 5
parent 41918a28a4
commit 29f91f9531
16 changed files with 56229 additions and 2 deletions
+46
View File
@@ -5044,3 +5044,49 @@ grow continuously via Hera/Hermes/Artemis's own background ticks. Confirmed: ban
both workers reported no error, both killed cleanly, Hera stayed healthy throughout
(`5 6 + .` -> `11`). Test capsule reverted after capture; `workload-calib1.4th` kept.
### XXXIII.6 -- The trial-loop capsule: built, one real capsule-format bug found and fixed
**Scope correction, made explicit rather than silently absorbed:** Captain Bob challenged
"driver capsule" as the wrong-sized word for what was actually still missing -- `HB-ON`/`HB-OFF`
already handles instrumentation gating (§XXXIII.5). What remained was purely the experimental
control: walking the shuffled matrix of concurrency-level x workload-mode cells, birthing the
right worker count per cell, driving each with two touches, checking `VM-ERROR?`, killing them,
and printing a trial-boundary marker. `multiuser-doe.4th` is exactly that control loop, built
entirely from primitives that already existed (`WORKER-BIRTH`, `VM-EXEC`, `VM-HEAT`,
`VM-ERROR?`, `KILL`, `HB-ON`/`HB-OFF`) plus `doe.4th`'s own `RUN-MATRIX`/`SHUFFLE-MATRIX`
pattern for the run order -- no new primitives needed at all.
**Real capsule-format bug found and fixed, not assumed away:** a first draft, chunked
automatically by a fixed 16-line-per-block count with no regard for word boundaries, split
several `CASE...ENDCASE` structures and one oversized colon definition across `Block` headers.
The result was a cascading `[CAPSULE][DEFER]` failure from the very first split forward --
every subsequent line in the file failed to compile and got silently deferred (the loader's own
retry mechanism, meant for genuine forward references, never actually resolves a structural
split), and `MU-RUN-TRIAL` was never defined at all (confirmed: `UNKNOWN WORD: 'MU-RUN-TRIAL'`
when called). **Root cause, verified against `capsule_loader.c` directly:** the loader's
per-block compile pass has no persistent record of an open `CASE`'s (or an overlong
definition's own) control-flow state across a `Block` boundary -- a `:...;` word and any
control structure inside it (`CASE...ENDCASE`, `DO...LOOP`) must fit entirely within one
16-line block. Not previously documented anywhere in this project's own capsule-authoring
guidance. **Fix:** manually curated block boundaries (not automated chunking) so every
definition and control structure is block-local; oversized bodies (`MU-RUN-TRIAL`,
`MU-EXEC-CAMPAIGN`) factored into smaller helper words (`MU-BIRTH-ALL`/`MU-TOUCH-ALL`/
`MU-CHECK-ALL`/`MU-KILL-ALL`, `MU-CAMPAIGN-STEP`) rather than shrunk by cutting real content.
**Reps ratified: 60 per cell**, not the 10 first drafted -- Captain Bob's own standing
convention ("maintain a rule of 3's in all our DoE's", matching the ACL-RWT campaign's 3
seeds/30 reps and the std79 DoE's 3x9x3 shape). 6 cfgs (3 concurrency levels x 2 workload
modes) x 60 reps = 360 main-block trials. `MU-MAX-REPS` raised from 20 to 63 to give the
run-matrix array headroom above 60.
**Verified live on amd64, one isolated trial (not yet the full shuffled campaign):**
`0 0 999 MU-RUN-TRIAL` (cfg=0 -> 2 workers, uniform mode) produced two real concurrent births
(`mu0`, `mu1`, both from the default uniform workload), two clean kills, and the exact expected
marker: `MU-TRIAL run=999 cfg=0 rep=0 nw=2 mode=0 fail=0`. Hera stayed healthy throughout
(`5 6 + .` -> `11`). Clean 3-arch qemu boot on the real committed capsule.
**Not yet run:** the full `MU-EXEC-CAMPAIGN` (360 trials, mixing in the heavier existing
workloads like `RUN-CHAOS5`'s 1,000,000 iterations) -- a genuinely long-running action under
TCG, deliberately not kicked off without explicit confirmation first. The WIREBIND-automation
fixed arm also remains unbuilt.