JOURNAL: Boehm stays — orchestrator's call

User's stance on the retirement question raised in 18f / 18g.2:
keep the dual-allocator setup. Boehm = default, RC = validated
alternative ready to flip. Re-opening trigger is operational
(maintenance cost), not performance.

Concrete consequences recorded: no default flip, -lgc stays, and
Decision 9's 'transitional' framing should be re-cast as 'dual
allocator' in a follow-up DESIGN.md edit (queued). Decision 10
holds as the canonical real-time path. The three RC-side debts
from the 18g tidy remain queued and don't block the dual stance.
This commit is contained in:
2026-05-08 15:15:31 +02:00
parent 3113258680
commit 05ec3515f4
+39
View File
@@ -8240,3 +8240,42 @@ entry the family is formally closed; the next iter is the
orchestrator's call between Boehm-retirement Path A and
Path B (see 18g.2 entry for the framing). Three known debts
travel forward as queue-items, not as 18-arc loose ends.
## 2026-05-08 — Decision: Boehm stays for now
Orchestrator's call on the retirement question raised in the
18f / 18g.2 entries: **Boehm is NOT retired.** Both paths
remain alive on paper, but the operational stance is "keep
the dual-allocator setup — `--alloc=gc` (Boehm) stays default,
`--alloc=rc` is the validated alternative". The trigger for
re-opening the question is operational: if maintaining the
Boehm path costs significant attention (libgc upgrade pain,
runtime divergence, build complexity), the case for retirement
becomes the active queue item. Until then the asymmetry
(Boehm = default, RC = ready-to-flip) is the right one.
Concrete consequences:
- **No default flip.** `bench/run.sh`, `crates/ail/src/main.rs`'s
`--alloc` default, README guidance — all unchanged.
- **`-lgc` stays as a build dependency** for the gc path. The
optional-link footwork that retirement would require stays
un-attempted.
- **Decision 9 (Boehm transitional) is no longer "transitional"
in the original sense.** The Decision was framed in 2026-05-07
as "transitional until RC is proven"; RC is now proven, but
the user's stance is to keep the Boehm path live. A
follow-up DESIGN.md edit should re-frame Decision 9 as "dual
allocator: Boehm GC for default workloads, RC for real-time-
sensitive workloads", removing the "transitional" framing
without touching the rest. Recorded as a tidy item; not
shipping in this entry.
- **Decision 10 (RC + uniqueness) holds as the canonical real-
time path.** The 18-arc's correctness invariants stand. Any
future RC iter is justified by the RC story itself, not by
retirement progress.
The three known debts from the 18g tidy (tag-conditional
partial-drop, let-alias-aware mode propagation, bench-number
stat-of-N) remain queued. They are RC-side improvements; none
of them block the dual-allocator stance.