diff --git a/docs/roadmap.md b/docs/roadmap.md index 4d60d4e..fce9936 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -154,9 +154,37 @@ work progresses. block, or extract JSON-schema blocks into a machine-readable file the test consumes. - context: JOURNAL 2026-05-10 ("Audit close"). +- [ ] **\[todo\]** `check_in_workspace` per-module overlay narrowing — + `crates/ailang-check/src/lib.rs:1234` still clears+rebuilds + `env.ctor_index` per-module; ct.3.2 narrowed the analogous mono + overlay to types-only. The typecheck-side overlay's `env.ctor_index` + half serves the duplicate-detection diagnostic at workspace-build + time, not the runtime ctor lookup (which is type-driven post-ct.2.2). + Narrowing is mechanical but needs a careful read to confirm no + other consumer survives. + - context: JOURNAL 2026-05-11 ("Iteration ct.4") — milestone close + follow-up. ## P3 — Ideas +- [ ] **\[todo\]** Codegen `lookup_ctor_in_pattern` type-anchoring — + `crates/ailang-codegen/src/lib.rs:1790` still walks every module's + ctor_index by bare ctor name. Plumbing the scrutinee's + qualified `Type::Con` through pattern lowering would type-anchor + it symmetric to the ct.2.2 typecheck-side fix. Not load-bearing + (uniqueness is enforced at typecheck), but cleaner. + - context: JOURNAL 2026-05-11 ("Iteration ct.3" + ct.4 close). +- [ ] **\[todo\]** `compare_primitives_smoke` IR-shape assertion — + observe `compare__Int` / `compare__Bool` / `compare__Str` symbols + in the emitted IR. Blocked on `emit-ir` CLI not running mono; + resolution paths include extending the CLI to run mono, using + library APIs directly in e2e.rs, or adding `--dump-ir` to `ail + build`. The E2E stdout assertion already covers correctness; the + IR-shape test would catch refactor regressions that rename + mono symbols. + - context: JOURNAL 2026-05-11 ("Iteration ct.4") — dropped from + ct.4.4 when the BLOCKED condition surfaced. + - [ ] **\[idea\]** Latency methodology rework — switch from per-run timing to a histogram-based approach so tail-latency regressions are visible without re-running. Queued from 21'g.