iter 22-tidy.2: spec — components table reflects 22b.4a/b split + 22c shipped

This commit is contained in:
2026-05-09 22:51:49 +02:00
parent e6fe2dfd81
commit cc3f28c053
+5 -4
View File
@@ -50,10 +50,11 @@ correction is to iter-slicing, not to axis content.
| Iter | Status | Scope | Closes when |
|---|---|---|---|
| 22b.1 | shipped 2026-05-09 | Schema floor (`ClassDef`, `InstanceDef`, `FnDef.type` extension), workspace registry with three coherence checks (orphan/duplicate/missing-method), hash-stability proof, fixture filter for round-trip gate. | JOURNAL entry committed (done) |
| 22b.2 | queued | Typecheck arms: `FnDef.type.constraints` field activation; class-schema validation (`kind-mismatch`, `invalid-superclass-param`, `constraint-references-unbound-type-var`); per-call-site `missing-constraint` and `no-instance`; `overriding-non-existent-method`, `method-name-collision`, `missing-superclass-instance`. | All new diagnostics fire on dedicated fixtures; bench gates green |
| 22b.3 | queued | Monomorphisation pass — synthesised `FnDef`s from `(method, type-hash)` pairs, call rewriting, cache by key. **Synthetic class+instance fixture** in the test suite for end-to-end validation of the mono pass before the Prelude lands. | Synthetic fixture compiles, runs, correct stdout; bench gates green |
| 22b.4 | queued | Prelude module (Show/Eq/Ord on Int/Float/Bool/String), `print` rewiring through `Show.show`, Form-B parser/printer arms for ClassDef/InstanceDef, `test_22b1_*` round-trip filter retired. | Prelude fixture compiles, runs; round-trip green for all `examples/`; bench gates green |
| 22c | **promoted** (was deferred) | Single end-to-end fixture: user defines `class Foo a`, user defines `data Bar`, user writes `instance Foo Bar`, calls `foo b`. Bench gate. JOURNAL entry = milestone close. | Fixture compiles, runs, correct stdout; full audit suite green |
| 22b.2 | shipped 2026-05-09 | Typecheck arms: `FnDef.type.constraints` field activation; class-schema validation (`kind-mismatch`, `invalid-superclass-param`, `constraint-references-unbound-type-var`); per-call-site `missing-constraint` and `no-instance`; `overriding-non-existent-method`, `method-name-collision`, `missing-superclass-instance`. | All new diagnostics fire on dedicated fixtures; bench gates green |
| 22b.3 | shipped 2026-05-09 | Monomorphisation pass — synthesised `FnDef`s from `(method, type-hash)` pairs, call rewriting, cache by key. Synthetic class+instance fixture for e2e validation. `__` separator chosen over `#` for LLVM IR identifier legality. | Synthetic fixture compiles, runs, correct stdout; bench gates green |
| 22b.4a | shipped 2026-05-09 | Form-A parser+printer arms for ClassDef / InstanceDef; `Type::Forall.constraints` round-trip gap fix; round-trip skip-list retired (70 → 106 fixtures green). | Round-trip green for every `examples/*.ail.json`; bench gates green |
| 22b.4b | dropped (post-22) | Originally: Prelude module Show#Int + `int_to_str` C-runtime primitive. Removed from milestone-22 scope per Amendments §"22b.4b dropped" — substantively separable runtime work; LLM-utility for primitive Show is weak. | (deferred) |
| 22c | shipped 2026-05-09 | Single end-to-end fixture: `class Foo a` + `data IntBox` + `instance Foo IntBox` + `main` printing 42. Surfaced and fixed a mono-pass user-ADT bug as part of close. | Fixture compiles, runs, correct stdout; bench gates green |
22c was deferred in 22a's queue. This brainstorm flagged it as a
shipping gap: the milestone is "typeclasses" but the Prelude path