Stage I: strip dead code -- pump drain loop, SWITCH-MARK-WORK, global interpret depth, native_switch_back_to (FABRIC-3.8 §4 row I)

Each shown dead three ways (FABRIC-3.5 §XXII): the pump loop by its
condition, by construction (birth cap == switch table capacity, every birth
registers) and at run time (probe silent through boot, G interleave, an
8-worker DoE trial and the relay); SWITCH-MARK-WORK by callers, capsules
(source and baked), experiments/tools/logs; the depth counter and back_to
field by having no readers.

Kept: Hera's own pump drain (last timer-paced delivery, Hera only) and the
always-0 readiness CSV columns (a DoE schema call). Acceptance on amd64/
aarch64/riscv64: G interleave unchanged, cfg-0 trial fail=0 2/2 dead,
relay 3, idle growth 0; dict_hash set changed by the removed word
(word_count 531) and identical across ISAs. FABRIC-3.8 stages A-I done.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-24 06:23:41 -04:00
co-authored by Claude Opus 5.5
parent f152a91099
commit dd23c3aa45
18 changed files with 36834 additions and 143 deletions
+46
View File
@@ -1325,3 +1325,49 @@ explicit instruction.
observation, not investigated.
- Stage F's remaining evidence (work proceeds with the console idle) is shown by Stage G's
interleave and by these trials.
- [x] **Stage I — strip the dead code (§4 row I).** 2026-09-24. Captain Bob: *"go ahead with
stage I."* Per `FABRIC-3.5.md` §XXII's discipline, each removal's reachability was shown
three ways, not by grep alone.
**Removed:**
| Item | Why dead |
|---|---|
| **The idle pump's drain loop** (`repl.c`, `sk_repl_idle()`), which drained every non-Hera live VM on Hera's stack (G3) | (1) **Static:** since C-b it acted only on a live **non-participant**. (2) **Construction:** births are refused at `stadium_max_vm_count()` live VMs (`capsule_birth.c:731`), the same capacity as the switch-signal table. Every birth registers (Stage E), stillborn VMs never go live, and `KILL`/reap unregister, so registration can't fail and no live non-participant can exist. (3) **Runtime:** a probe line in that branch (temporary, removed) printed **nothing** through a boot, the Stage G interleave, a full 8-worker cfg-4 trial (`fail=0`, 8/8 dead) and the WIREBIND relay (`logs/20260924-051657/amd64/`). |
| **`SWITCH-MARK-WORK`** (the word, `mama_word_switch_mark_work`, and `sk_vm_switch_signal_mark_work()`) | (1) Its only caller, `MSG-SEND` in `capsules/common/messaging.4th`, was deleted in `FABRIC-3.6.md` Phase 4. (2) No capsule source, no baked capsule (`capsule_generated.c`: 0), no experiment, tool or committed log invokes it; only the design docs mention it. (3) Since C-b, eligibility **is** the queue, so the word had nothing left to mark. |
| **The global interpret depth** (`g_vm_interpret_depth`, `sk_vm_at_outermost_interpret()`) | No caller since Stage A replaced it with the per-VM ownership gate. Only comments referred to it; they're updated. |
| **`VM.native_switch_back_to`** (`vm.h`) | Written by `sk_vm_context_switch()`, read by nothing since C-b's trampoline stopped yielding to "whoever switched in" (the Stage B/FR probes, which read it, are long reverted). |
**Kept, deliberately:**
- **Hera's own drain in the idle pump.** She is the one VM never switched to for her mail,
since she's the one running there. It still runs at the `SK_IDLE_BEAT_INTERVAL`
(timer-paced) cadence, and at her own word checkpoints. **This is the last
timer-paced delivery left, and it applies only to Hera's own queue.** Moving it to
`sk_vm_idle_point()` would need care with the readline `n > 0` mid-edit gate. Noted for
Captain Bob.
- **The three `*_readiness` DoE CSV columns** (always 0 since C-b). Dropping them changes
the CSV layout the extractor and analysis read. That's a DoE-schema decision for the
campaign relaunch, not a dead-code strip.
**Acceptance** (on every ISA: the Stage G interleave, a cfg-0 DoE trial, then the relay):
`logs/20260924-054146/amd64/`, `-055249/aarch64/`, `-061024/riscv64/`.
- The G interleave is byte-identical to Stage H on all three (A = 40, B = 40, 48 runs).
- `MU-TRIAL … cfg=0 … nw=2 … fail=0`, with 2/2 `KILL … dead` and 0 refused.
- All reach `[zuse@Hera] ok>` with zero `UNKNOWN WORD`, failures and faults.
- Mint → WIREBIND → `USE` → `1 2 + .` → `3`.
- Idle log growth: 0 bytes.
- Clean build on all three plus hosted (`vm.h` is shared), no new warnings.
- **The `dict_hash` set changes, as expected, because `SWITCH-MARK-WORK` is gone, and is
identical across ISAs.** `word_count` drops by 2 because the word was registered twice
in Hera's dictionary.
| | New | Stages G/H |
|---|---|---|
| `word_count` | 531 | 533 |
| M7.1a | `0x572daac83b797332` | `0x330b28ce0f4e1c75` |
| Hera | `0xda9742ce9c3376a2` | |
| Hestia | `0x413e7d086f342d8b` | |
| Artemis | `0xdfd68316d5f5ba85` | |
**FABRIC-3.8's staged plan (A–I) is complete.** What's next is the per-ISA DoE relaunch
(seed 12345, 3 reps) on the rebuilt driver, then the merge to master.