diff --git a/FABRIC-3.md b/FABRIC-3.md index 4db06af4..de7af37a 100644 --- a/FABRIC-3.md +++ b/FABRIC-3.md @@ -5830,3 +5830,28 @@ as done; both real bugs here would have been caught immediately by checking one value, which is what finally surfaced them. Worth remembering the next time "verified live" gets written down for something that only checked word resolution. +### XXXV.14 -- Flagged, not built: L8 Jacquard has no fault-triggered fallback to SSM_MODE_C0 + +Raised directly by Captain Bob mid-campaign, discussing what this DoE might reveal: the +intended design is that a faulting VM should drop to `SSM_MODE_C0` ("Minimal, stable/predictable +workloads," `include/ssm_jacquard.h`) and continue as a plain, non-adaptive VM rather than fault +outright -- "the faulting VM simply becomes a plain old uncompudynamic VM." Confirmed by reading +the actual source, not assumed: `ssm_l8_update()` (`src/ssm_jacquard.c:88`) computes its target +mode purely from four workload-metric loop-gate bits (L2/L3/L5/L6, fed from `vm_time.c`) -- no +reference to `vm->error` or any fault condition anywhere in the file. `SSM_MODE_C0` is real and +is every VM's boot-time starting mode (`vm_bootstrap.c`), but nothing routes a VM back to it in +response to a fault; the mode selector is an adaptive performance tuner, not a fault safety net, +and only the first job is wired up. Bob's own diagnosis: "an oversight when building the +stadium... forgot to carry that over from the hosted StarForth" -- a real regression from the +standalone StarForth repo's design, not a new gap invented here (this repo has no visibility +into that repo to confirm exactly how it was wired there). + +One relevant building block already exists on this side: `ssm_l8_force_config()` +(`src/word_source/inference_words.c`) -- a manual FORTH-callable primitive that force-sets a +VM's L8 mode. Currently only ever invoked by hand; nothing calls it automatically on a fault. +That is the natural mechanism a real fix would hook, not something to build from scratch. + +**Not built.** Flagged per Bob's own explicit instruction ("we will continue in this direction +with the workflow") -- find and log these live, keep the campaign running, don't stop to fix +each one as found. Real feature, real gap, deliberately deferred. + diff --git a/capsules/BLOCK_MAP.md b/capsules/BLOCK_MAP.md index 9e5c13dd..53535ccd 100644 --- a/capsules/BLOCK_MAP.md +++ b/capsules/BLOCK_MAP.md @@ -1,5 +1,5 @@ # Capsule Block Manifest — Auto-generated - +