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:
@@ -8240,3 +8240,42 @@ entry the family is formally closed; the next iter is the
|
|||||||
orchestrator's call between Boehm-retirement Path A and
|
orchestrator's call between Boehm-retirement Path A and
|
||||||
Path B (see 18g.2 entry for the framing). Three known debts
|
Path B (see 18g.2 entry for the framing). Three known debts
|
||||||
travel forward as queue-items, not as 18-arc loose ends.
|
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.
|
||||||
|
|||||||
Reference in New Issue
Block a user