audit: prose-loop-binders milestone CLOSE — clean / carry-on
Architect drift review clean (zero drift/debt, diff-verified: single Term::Loop write_term hunk, no non-render site / Term::Recur / doc / lockstep touched). Bench: compile_check 0/24 + cross_lang 0/25 exit 0; check.py's latency-tail firings proven single-sample jitter by an identical confirmatory re-run (p99.9 +37%→+10% ok, max +114%→+22% ok); the sole persistent firing is the pre-tracked P2 *.bump_s environmental staleness, causally impossible to attribute to a projection-only ailang-prose change. All items carry-on — no fix, no baseline ratify. Fieldtest not applicable (no authoring-surface change). Roadmap P0 flipped to closed; WhatsNew user-facing entry appended (user present → notification suppressed per policy).
This commit is contained in:
+17
-12
@@ -35,19 +35,24 @@ work progresses.
|
||||
|
||||
## P0 — In flight
|
||||
|
||||
- [~] **\[milestone\]** Prose `loop` binders — projection redesign.
|
||||
Form-B prose currently renders loop binders as `name = init;`
|
||||
statements *inside* the `loop { … }` body, which misreads as
|
||||
C/Rust re-init-every-iteration semantics. Move them to a
|
||||
parenthesised init-list on the keyword — `loop(acc = 0, i = 1)
|
||||
{ … }` — positionally isomorphic to `recur(...)`. Projection-only:
|
||||
one `ailang-prose` `write_term` `Term::Loop` arm + 2 snapshot
|
||||
fixtures/tests; loop/recur AST, Form A, JSON-AST, typecheck,
|
||||
codegen, and the Form-A↔JSON round-trip invariant all unchanged.
|
||||
Spec'd + approved 2026-05-18; Step-7.5 grounding-check PASS. Plan
|
||||
next.
|
||||
- [x] **\[milestone\]** Prose `loop` binders — projection redesign —
|
||||
CLOSED 2026-05-18. Form-B prose now renders loop binders as a
|
||||
parenthesised init-list on the keyword (`loop(acc = 0, i = 1)
|
||||
{ … }`, positionally isomorphic to `recur(...)`) instead of bare
|
||||
`name = init;` statements inside the body block (which misread as
|
||||
C/Rust re-init-every-iteration). Single-iteration, projection-only:
|
||||
one `ailang-prose` `write_term` `Term::Loop` arm + 2 committed
|
||||
byte-equality `.prose.txt` snapshots/tests; loop/recur AST, Form A,
|
||||
JSON-AST, typecheck, codegen, and the Form-A↔JSON round-trip
|
||||
invariant all byte-unchanged. brainstorm→plan→implement
|
||||
(`c657e74`/`6533134`/`c9355d7`); milestone-close `audit` clean
|
||||
(architect zero drift; bench carry-on — sole firing is the tracked
|
||||
P2 `*.bump_s` environmental staleness, latency-tail proven sampling
|
||||
noise by re-run); no fieldtest (projection-only, no authoring-
|
||||
surface change). Stays here briefly for context; remove once stale.
|
||||
- context: `docs/specs/2026-05-18-prose-loop-binders.md`;
|
||||
surfaced from the loop/recur prose review (2026-05-18 chat).
|
||||
`docs/journals/2026-05-18-audit-prose-loop-binders.md`; surfaced
|
||||
from the loop/recur prose review (2026-05-18 chat).
|
||||
|
||||
- [x] **\[milestone\]** Standalone `loop` / `recur` — CLOSED 2026-05-18.
|
||||
Strictly-additive strict-iteration surface, `recur` tail-position-only,
|
||||
|
||||
Reference in New Issue
Block a user