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 # 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. --> <!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live --> <!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. --> <!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -26,7 +26,7 @@
| `init.4th` | 2049, 2050, 2057 | `0xea038ba684c53443` | yes | | `init.4th` | 2049, 2050, 2057 | `0xea038ba684c53443` | yes |
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes | | `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0xb4f6f0c2c582a4d4` | 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 | | `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | yes |
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | yes | | `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | yes |
| `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | yes | | `user-font-demo.4th` | 4200, 4201, 4202 | `0xce1fd7d1b581a56d` | yes |
@@ -365,8 +365,8 @@
| 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok | | 5113 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok | | 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok | | 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
| 5117 | `per-isa-doe.4th` | `0x73f21c35b683e295` | ok | | 5117 | `per-isa-doe.4th` | `0xab13edecabfd78db` | ok |
| 5119 | `per-isa-doe.4th` | `0x73f21c35b683e295` | ok | | 5119 | `per-isa-doe.4th` | `0xab13edecabfd78db` | ok |
## Conflicts ## Conflicts
+19 -20
View File
@@ -1,28 +1,27 @@
Block 5117 Block 5117
( per-isa-doe.4th - per-ISA DoE driver. FABRIC-3 SXXXIV.4/ ) ( per-isa-doe.4th - per-ISA DoE driver. FABRIC-3 SXXXIV.4/ )
( SXXXV.5/.7: 6-cell factorial from multiuser-doe.4th's own ) ( SXXXV.5/.7: 6-cell factorial from multiuser-doe.4th's own )
( MU-EXEC-CAMPAIGN, unchanged. Adds: one fixed seed per ISA, ) ( MU-EXEC-CAMPAIGN, unchanged. Seed/reps are VARIABLEs, not )
( N=3 reps/cell=18 trials/ISA (ratified 2026-09-17, not the ) ( CONSTANTs -- settable before a run. Default N=3 reps/cell= )
( N=2 SXXXV.5 recommended). Load multiuser-doe.4th FIRST. ) ( 18 trials/ISA (ratified 2026-09-17). Load multiuser-doe.4th )
20260917 CONSTANT AMD64-SEED ( FIRST. )
20260918 CONSTANT AARCH64-SEED VARIABLE AMD64-SEED 20260917 AMD64-SEED !
20260919 CONSTANT RISCV64-SEED VARIABLE AARCH64-SEED 20260918 AARCH64-SEED !
18 CONSTANT PER-ISA-NREPS VARIABLE RISCV64-SEED 20260919 RISCV64-SEED !
VARIABLE PER-ISA-NREPS 3 PER-ISA-NREPS !
Block 5119 Block 5119
( Per-ISA entry points, single word, no args -- run ONE per ) ( DOE -- common entry point, seed reps isa-addr isa-u --. )
( boot (one-QEMU-at-a-time). Uses MU-ISA-TAG! (multiuser-doe. ) ( Tags, checks resume count, runs the campaign. Any experiment )
( 4th) -- redefining MU-EMIT-TRIAL-MARKER here never worked, ) ( goes through this one word -- run ONE per boot (one QEMU at )
( see FABRIC-3.md SXXXV.12 for why. ) ( 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 ( -- ) : RUN-AMD64-CAMPAIGN ( -- )
S" amd64" MU-ISA-TAG! AMD64-SEED @ PER-ISA-NREPS @ S" amd64" DOE ;
AMD64-SEED PER-ISA-NREPS
S" amd64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
: RUN-AARCH64-CAMPAIGN ( -- ) : RUN-AARCH64-CAMPAIGN ( -- )
S" aarch64" MU-ISA-TAG! AARCH64-SEED @ PER-ISA-NREPS @ S" aarch64" DOE ;
AARCH64-SEED PER-ISA-NREPS
S" aarch64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
: RUN-RISCV64-CAMPAIGN ( -- ) : RUN-RISCV64-CAMPAIGN ( -- )
S" riscv64" MU-ISA-TAG! RISCV64-SEED @ PER-ISA-NREPS @ S" riscv64" DOE ;
RISCV64-SEED PER-ISA-NREPS
S" riscv64" DOE-RESUME-COUNT MU-EXEC-CAMPAIGN ;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff