Build DOE-PERSIST-TRIAL: block-backed DoE campaign persistence, live-verified
FABRIC-3.md §XXXV.3/.4 designed this and it was never built -- two live campaigns got launched relying entirely on a live serial-log tail before this was caught. doe_region.c/.h mirrors log_region.c's own growable-ring pattern (own devblock_from_top fence at 98, past log_region's ceiling at 97) to persist one trial-summary record per completed trial straight to disk/artemis.img, surviving past QEMU exit with no host required. Verified end to end: booted amd64, called DOE-PERSIST-TRIAL at the console, clean BYE, then read the raw disk bytes back with QEMU fully dead -- confirmed the exact values passed in. Wired into both multiuser-doe.4th and per-isa-doe.4th's trial markers. Clean build, zero new warnings, all 3 ISAs; mkcapsule --lint passes both edited capsules. FABRIC-3.md §XXXV.10 documents the fix and the root-cause correction: two campaigns were launched on an unbuilt persistence design before this was caught and fixed. 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
8b8e8e1405
commit
2da746c01c
+18
-18
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-17T16:28:31Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-17T18:37:43Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
@@ -27,8 +27,8 @@
|
||||
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` | yes |
|
||||
| `init.4th` | 2049, 2050, 2057 | `0x1ef4939ed32ec1e6` | yes |
|
||||
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
|
||||
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0x22140588ee7c39e6` | yes |
|
||||
| `per-isa-doe.4th` | 5117, 5118, 5119 | `0xe3a6c1352d3ecaed` | yes |
|
||||
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0xaef05d0fd502fdc4` | yes |
|
||||
| `per-isa-doe.4th` | 5117, 5118, 5119 | `0x369a7c1cad0c3a7b` | yes |
|
||||
| `process.4th` | 4300, 4301 | `0x781afc1dbd0294f7` | 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 |
|
||||
@@ -377,18 +377,18 @@
|
||||
| 5041 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
|
||||
| 5042 | `common:messaging.4th` | `0x201cfd6d39fcb22d` | ok |
|
||||
| 5043 | `workload-calib1.4th` | `0x3b9f2d17b554fabc` | ok |
|
||||
| 5044 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5045 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5046 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5047 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5048 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5049 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5050 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5051 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5052 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5053 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5054 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5055 | `multiuser-doe.4th` | `0x22140588ee7c39e6` | ok |
|
||||
| 5044 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5045 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5046 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5047 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5048 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5049 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5050 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5051 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5052 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5053 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5054 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5055 | `multiuser-doe.4th` | `0xaef05d0fd502fdc4` | ok |
|
||||
| 5056 | `workload-5-lite.4th` | `0xea0303f38824f254` | ok |
|
||||
| 5057 | `workload-5-lite.4th` | `0xea0303f38824f254` | ok |
|
||||
| 5058 | `workload-1-lite.4th` | `0x44a7a7e3176dcc8d` | ok |
|
||||
@@ -410,9 +410,9 @@
|
||||
| 5114 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
||||
| 5115 | `sdk.4th` | `0x008fdbbb62c94a3a` | ok |
|
||||
| 5116 | `hermes:init.4th` | `0x2df61924448a6812` | ok |
|
||||
| 5117 | `per-isa-doe.4th` | `0xe3a6c1352d3ecaed` | ok |
|
||||
| 5118 | `per-isa-doe.4th` | `0xe3a6c1352d3ecaed` | ok |
|
||||
| 5119 | `per-isa-doe.4th` | `0xe3a6c1352d3ecaed` | ok |
|
||||
| 5117 | `per-isa-doe.4th` | `0x369a7c1cad0c3a7b` | ok |
|
||||
| 5118 | `per-isa-doe.4th` | `0x369a7c1cad0c3a7b` | ok |
|
||||
| 5119 | `per-isa-doe.4th` | `0x369a7c1cad0c3a7b` | ok |
|
||||
|
||||
## Conflicts
|
||||
|
||||
|
||||
@@ -110,7 +110,9 @@ VARIABLE MU-MODE VARIABLE MU-NREPS
|
||||
." rep=" MU-REP @ .
|
||||
." nw=" MU-NW @ .
|
||||
." mode=" MU-MODE @ .
|
||||
." fail=" MU-FAIL-COUNT @ . CR ;
|
||||
." fail=" MU-FAIL-COUNT @ . CR
|
||||
MU-RUN-ID @ MU-CFG @ MU-REP @ MU-NW @
|
||||
MU-MODE @ MU-FAIL-COUNT @ 0 0 DOE-PERSIST-TRIAL ;
|
||||
|
||||
Block 5052
|
||||
: MU-BIRTH-ALL ( -- )
|
||||
|
||||
@@ -27,7 +27,10 @@ Block 5118
|
||||
." rep=" MU-REP @ .
|
||||
." nw=" MU-NW @ .
|
||||
." mode=" MU-MODE @ .
|
||||
." fail=" MU-FAIL-COUNT @ . CR ;
|
||||
." fail=" MU-FAIL-COUNT @ . CR
|
||||
MU-RUN-ID @ MU-CFG @ MU-REP @ MU-NW @
|
||||
MU-MODE @ MU-FAIL-COUNT @
|
||||
PER-ISA-TAG-BUF PER-ISA-TAG-LEN @ DOE-PERSIST-TRIAL ;
|
||||
|
||||
Block 5119
|
||||
( Per-ISA entry points, single word, no args -- for boot )
|
||||
|
||||
Reference in New Issue
Block a user