per-isa-doe.4th: fix PER-ISA-NREPS, make seed/reps VARIABLEs, add common DOE word

PER-ISA-NREPS was 18, inherited unchanged from local master, but every doc
comment (this file's own header, doe_region.h's own design comment) assumes
N=3 reps/cell -- 18 trials/ISA, 54 total across 3 ISAs. With the actual
constant at 18, MU-EXEC-CAMPAIGN's own math (n-reps * MU-N-CFG, MU-N-CFG=6)
produced 108 trials/ISA, 324 total -- well past the DoE region ring's
256-slot ceiling, silently dropping the oldest ~68 records to FIFO eviction
mid-campaign. Confirmed with Captain Bob: 3 is correct. Fixed.

AMD64-SEED/AARCH64-SEED/RISCV64-SEED/PER-ISA-NREPS are now VARIABLEs, not
CONSTANTs, so they're settable before a run instead of fixed at compile time.

New DOE ( seed reps isa-addr isa-u -- ) word: the common interface for
running any named experiment (not just the three fixed per-ISA ones) through
one entry point -- tags, checks resume count, runs the campaign.
RUN-AMD64-CAMPAIGN/RUN-AARCH64-CAMPAIGN/RUN-RISCV64-CAMPAIGN are now thin
wrappers over it, using the stored per-ISA seed/reps variables.

Live-verified on amd64: both capsules load via EXEC with zero errors, and
DOE itself was exercised directly (4567 3 S" doe-xyz" DOE) -- correctly
tagged, correctly checked DOE-RESUME-COUNT, and launched a real campaign
(confirmed by live per-tick physics output and growing trial state; a full
18-trial run takes the ~25-30 min/ISA CLAUDE.md itself documents, so the run
was stopped once the wiring was confirmed working rather than run to
completion for a syntax check).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-23 11:50:59 -04:00
co-authored by Claude Sonnet 5
parent a6146b9693
commit e40cafcd49
9 changed files with 138322 additions and 24 deletions
+4 -4
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-23T15:11:56Z -->
<!-- Generated by mkcapsule --manifest 2026-09-23T15:28:38Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -26,7 +26,7 @@
| `init.4th` | 2049, 2050, 2057 | `0xea038ba684c53443` | yes |
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0xb4f6f0c2c582a4d4` | yes |
| `per-isa-doe.4th` | 5117, 5119 | `0x73f21c35b683e295` | yes |
| `per-isa-doe.4th` | 5117, 5119 | `0xab13edecabfd78db` | yes |
| `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | yes |
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | yes |
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | yes |
@@ -365,8 +365,8 @@
| 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5117 | `per-isa-doe.4th` | `0x73f21c35b683e295` | ok |
| 5119 | `per-isa-doe.4th` | `0x73f21c35b683e295` | ok |
| 5117 | `per-isa-doe.4th` | `0xab13edecabfd78db` | ok |
| 5119 | `per-isa-doe.4th` | `0xab13edecabfd78db` | ok |
## Conflicts
+19 -20
View File
@@ -1,28 +1,27 @@
Block 5117
( per-isa-doe.4th - per-ISA DoE driver. FABRIC-3 SXXXIV.4/ )
( SXXXV.5/.7: 6-cell factorial from multiuser-doe.4th's own )
( MU-EXEC-CAMPAIGN, unchanged. Adds: one fixed seed per ISA, )
( N=3 reps/cell=18 trials/ISA (ratified 2026-09-17, not the )
( N=2 SXXXV.5 recommended). Load multiuser-doe.4th FIRST. )
20260917 CONSTANT AMD64-SEED
20260918 CONSTANT AARCH64-SEED
20260919 CONSTANT RISCV64-SEED
18 CONSTANT PER-ISA-NREPS
( MU-EXEC-CAMPAIGN, unchanged. Seed/reps are VARIABLEs, not )
( CONSTANTs -- settable before a run. Default N=3 reps/cell= )
( 18 trials/ISA (ratified 2026-09-17). Load multiuser-doe.4th )
( FIRST. )
VARIABLE AMD64-SEED 20260917 AMD64-SEED !
VARIABLE AARCH64-SEED 20260918 AARCH64-SEED !
VARIABLE RISCV64-SEED 20260919 RISCV64-SEED !
VARIABLE PER-ISA-NREPS 3 PER-ISA-NREPS !
Block 5119
( Per-ISA entry points, single word, no args -- run ONE per )
( boot (one-QEMU-at-a-time). Uses MU-ISA-TAG! (multiuser-doe. )
( 4th) -- redefining MU-EMIT-TRIAL-MARKER here never worked, )
( see FABRIC-3.md SXXXV.12 for why. )
( DOE -- common entry point, seed reps isa-addr isa-u --. )
( Tags, checks resume count, runs the campaign. Any experiment )
( goes through this one word -- run ONE per boot (one QEMU at )
( a time). See FABRIC-3.md SXXXV.12 for why MU-EMIT-TRIAL- )
( MARKER can't just be redefined instead. )
: DOE ( seed reps isa-addr isa-u -- )
2DUP MU-ISA-TAG!
DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
: RUN-AMD64-CAMPAIGN ( -- )
S" amd64" MU-ISA-TAG!
AMD64-SEED PER-ISA-NREPS
S" amd64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
AMD64-SEED @ PER-ISA-NREPS @ S" amd64" DOE ;
: RUN-AARCH64-CAMPAIGN ( -- )
S" aarch64" MU-ISA-TAG!
AARCH64-SEED PER-ISA-NREPS
S" aarch64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
AARCH64-SEED @ PER-ISA-NREPS @ S" aarch64" DOE ;
: RUN-RISCV64-CAMPAIGN ( -- )
S" riscv64" MU-ISA-TAG!
RISCV64-SEED PER-ISA-NREPS
S" riscv64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
RISCV64-SEED @ PER-ISA-NREPS @ S" riscv64" DOE ;