multiuser-doe.4th: the campaign trial-loop capsule, verified live
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:
co-authored by
Claude Sonnet 5
parent
41918a28a4
commit
29f91f9531
+46
@@ -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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user