Skip to content

Commit 0925261

Browse files
docs(history): mark STDLIB-AOT-TRIAGE closed — #128/#131-138 delivered (#195)
The punch list was stale (2026-05-17 r2, ~10/19, #135/#136/#137/#138 framed as open). Adds a dated CLOSED banner + rewrites the Closure section to the final state; historical sweep/slices preserved verbatim as record. Human-doc counterpart to the now-closed issues and the CI-enforced machine gate test/test_stdlib_aot.ml. Doc-only. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b97b78f commit 0925261

1 file changed

Lines changed: 36 additions & 7 deletions

File tree

docs/history/STDLIB-AOT-TRIAGE.md

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33

44
# Stdlib AOT triage — #135 punch list
55

6+
> **CLOSED 2026-05-18.** This punch list is complete. All 19 `stdlib/*.affine`
7+
> files now compile through `resolve → typecheck → codegen`; epic #128 and
8+
> sub-issues **#131#138 are all merged and closed**. The "Current sweep" and
9+
> "Remaining slices" sections below are preserved **as historical record** of
10+
> the in-flight state on 2026-05-17 r2 — they no longer describe the tree.
11+
> Live status is now machine-enforced by the CI gate `test/test_stdlib_aot.ml`
12+
> (STAGE-A AOT smoke, 19/19 + the #137 multi-module integration test), so the
13+
> AOT path cannot silently rot again. See the **Closure** section for the
14+
> final state. Verified locally 2026-05-18: `dune runtest` = 253 tests green.
15+
616
**Refreshed 2026-05-17 (r2)** after merging #135 slices 1,2,3,5,6,6b,7,8.
717

818
## Done (merged to main)
@@ -64,10 +74,29 @@ unblocked the entire typecheck wall).
6474

6575
## Closure
6676

67-
#135 closes when all files compile resolve→typecheck→codegen, then
68-
#138/#136/#137. Slices 4/9/10/11/12 + 8-tail each remain their own
69-
rigorous, focused unit (per the "rigorous over partial-hack"
70-
discipline — no unattended changes to the block grammar, borrow
71-
checker, kind checker, or resolver two-pass). The two highest-impact
72-
remaining are **slice 11** (resolver forward-ref — likely unblocks
73-
several files at once) and **slice 4** (3 files).
77+
**Reached 2026-05-18 — epic #128 fully delivered.**
78+
79+
The criterion above was met: all 19 `stdlib/*.affine` files compile
80+
`resolve → typecheck → codegen`. Final disposition of the slices:
81+
82+
- **slice 4** (block/statement LR ambiguity — testing/math/traits),
83+
**slice 9** (`&mut T` reference params), **slice 10** (generic-extern
84+
kind-check), **slice 11** (resolver two-pass / forward-ref), **slice
85+
8-tail** (`io``string` cross-module), **slice 12** (`result`
86+
deeper typecheck) — all resolved under #135 (#172#192).
87+
- **#135** — every `stdlib/*.affine` compiles end-to-end. Closed.
88+
- **#138**`b895374` Some/None/Ok/Err seed band-aid removed;
89+
resolution now goes through `use prelude::{…}` (PR #193). Closed.
90+
- **#136** — stdlib-wide AOT compile-smoke gate added as
91+
`test/test_stdlib_aot.ml`, run under `dune runtest` / CI (PR #194).
92+
Closed.
93+
- **#137** — multi-module integration test (`prelude` + `string` +
94+
`option` + `collections` together) in the same file (PR #194).
95+
Closed.
96+
97+
Sub-issues **#131#138 are all closed**; epic **#128**'s only remaining
98+
scope is the consumer-side echidna trackers (#61–64), which close with
99+
that migration, not this epic. The rigorous-over-partial-hack discipline
100+
held throughout — no unattended changes to the block grammar, borrow
101+
checker, kind checker, or resolver two-pass. This document is now a
102+
historical record; the live invariant is the CI gate.

0 commit comments

Comments
 (0)