audit + close: boehm-retirement CLEAN milestone close (no drift, bench 0/0/0, no tidy)
Single-iter milestone closing Gitea #4. Architect (drift review) and the three bench-regression scripts all green. Architect: CLEAN. The architect walked design/INDEX.md and the relevant contracts (memory-model, language-constraints, embedding-abi, honesty-rule, frozen-value-layout, str-abi), read git log 7a42989..HEAD --format=full for the three milestone commits, and inspected the full diff. Specific scrutiny items reported clean: - All four by-design Boehm-grep exceptions are doing distinct load-bearing work, none is residual drift hiding behind a justification: (a) `crates/ailang-core/tests/docs_honesty_pin.rs` lines 73-80 — the four absence-pins name the Boehm-zombie strings as scan targets; the pin cannot exist without naming what it forbids; (b) `crates/ail/tests/boehm_retirement_pin.rs` — the milestone-pin must literally invoke `--alloc=gc` to assert its CLI rejection; (c) `crates/ail/tests/embed_staticlib_alloc_guard.rs:3-5` — file-level doc-comment historical anchor explaining why the test's gc-arm went away (the rejection moved upstream to CLI parsing); (d) `design/contracts/embedding-abi.md:44-45` — contract historical clause naming the Boehm-retirement iter, which is the honesty-rule-compliant form for "this used to be a staticlib-guard rejection, see the milestone". - The 1.3× reframe in `design/models/rc-uniqueness.md` (the sentence in `## Memory model` plus the closure-chain ±15% block) is internally consistent: the regression gate is a *quantitative band*, scoped to the linear/tree/poly-ADT corpus with closure-chain on its own ±15% band. The RC-as-canonical commitment in `design/contracts/memory-model.md` is unchanged; no contract surface was softened. - No `ratifying-test` link in `design/INDEX.md` was orphaned by the test churn. All 21 referenced files exist; `e2e.rs` still exercises the Str-path, Eq/Ord, and the staticlib-bump-rejection substring pin that the `embedding-abi` and `str-abi` rows depend on. - Architect sweeps 1-5 all exit 0; the four-string absence-pin (`transitional Boehm`, `parity oracle`, `GC_malloc`, `libgc`) is the durable invariant that catches any future Boehm-narrative regrowth in the ledger. Architect recommendation: carry on as planned. Bench: 0/0/0. - bench/check.py exit 0 — 36 metrics, 0 regressed (throughput + latency). RC-over-bump ratios stable: bench_list_sum 2.74, bench_tree_walk 2.52, bench_closure_chain 4.23 (within the ±15% closure-chain band), bench_hof_pipeline 2.74, bench_compute_collatz 1.00, bench_list_sum_explicit 2.96. Latency: explicit @ rc median 217 µs / p99 245 µs; implicit @ rc median 306 µs / p99 477 µs. - bench/compile_check.py exit 0 — 24 metrics, 0 regressed. All `check_ms.*` (~2 ms) and `build_O0_ms.*` (~100 ms) workloads within tolerance vs. the baseline frozen by the prior milestone close. - bench/cross_lang.py exit 0 — 25 metrics, 0 regressed. RC-over-C ratios: bench_list_sum 1.48×, bench_tree_walk 2.62×, bench_compute_collatz 0.98×, bench_list_sum_explicit 1.30× — all within tolerance against the C reference corpus. No baseline updates needed; no `--update-baseline` invoked. The baseline regenerated *during* the iter (via the post-retirement bench/run.sh column-shape change) was the source-of-truth here, and the freshly-captured run matches it within self-comparison range. The closing-audit bench is the steady-state confirmation. Pipeline this milestone followed: brainstorm (one-question-at-a-time Q&A, three design forks resolved: bump survives, differential tests deleted, 1.3× reframed; grounding-check PASS over the spec's seven load-bearing assumptions) -> planner (recon DONE_WITH_CONCERNS; nine open questions absorbed inline; self-review caught a bench/check.py header-sentinel + col-count planner-defect that was paired into Task 5) -> implement (DONE 10/10; orchestrator end-report flagged five concerns all absorbed into iter commit body: clap-allowlist corollary, iter17a witness update, baseline write_new_baseline gc-fallback, spec §6 grep wording-vs-reality drift, bench per-run variance ±1-5%) -> audit (CLEAN, no tidy, no [low]-priority forward-fix) Closing Gitea #4. The `closes #4` trailer lives on the iter commit `14a91f0` and fires on push. Spec: docs/specs/2026-05-20-boehm-retirement.md Plan: docs/plans/boehm-retirement.1.md
This commit is contained in: