audit: iteration-discipline-revert milestone close — clean
Architect: revert byte-pristine vs1ff7e81(18 src + 5 test files byte-identical; zero residual it.1/it.2 production surface; DESIGN.md + roadmap + spec hygiene correct). One [medium] drift — a dangling loop/recur cross-reference into the reverted milestone inside the LIVE Stateful-islands roadmap scope bullet — fixed inline: reworded to keep the real, still-true scope guard (no while/for; this milestone introduces none; repetition stays recursion as the language has it; a mut block is a sealed expression, never a loop) and drop the reverted-milestone reference. Bench: compile_check.py / cross_lang.py exit 0; check.py exit 1 on a single metric (bench_list_sum.bump_s +12.71%). Bencher localisation: the HEAD and1ff7e81bump binaries are cmp-identical, an interleaved 3x60-run measurement shows head-oracle delta ~0 (±1.5% stdev) with both ~+11% over the 2026-05-09 baseline — environmental/hardware drift, NOT a revert regression (third independent proof codegen ==1ff7e81, alongside the architect byte-diff and the Task-11 behavioural-equivalence sweep). Resolution: carry-on; baseline NOT ratified (Iron Law — nothing intentionally moved the metric; byte-identical codegen must not move the baseline; the spec's PRISTINE mandate is satisfied: pristine = no regression introduced, proven). The pre-existing *.bump_s baseline-vs-hardware staleness is filed forward as a separate P2 [todo] (bench-harness recalibration, no language change), not mis-attributed to the revert. Fieldtest skipped (Boss judgement; non-mandatory): a revert restores the already-field-tested pre-9973546 surface; the Task-11 164-fixture byte-equivalence is the stronger correctness proof. Milestone iteration-discipline-revert closed clean.
This commit is contained in:
+21
-4
@@ -270,6 +270,22 @@ clean. Pick the next milestone from P2.)_
|
||||
- context: fieldtest 2026-05-11 — fieldtest fixtures could not be
|
||||
placed under `examples/fieldtest/` because of this; predates the
|
||||
canonical-type-names milestone but surfaces every time.
|
||||
- [ ] **\[todo\]** `*.bump_s` throughput baseline is stale vs current
|
||||
hardware — `bench/check.py`'s `throughput.*.bump_s` family (the
|
||||
fastest, most jitter-prone metrics) reads ~+5–13% over
|
||||
`bench/baseline.json` on the current machine. Localised at the
|
||||
iteration-discipline-revert audit (2026-05-16): an interleaved
|
||||
3×60-run measurement of `bench_list_sum` bump_s built from the
|
||||
byte-oracle commit `1ff7e81` shows the *same* ~+11% elevation as
|
||||
HEAD, and the two bump binaries are `cmp`-identical — so this is
|
||||
environmental drift relative to the 2026-05-09 baseline-capture
|
||||
machine state, **not** a codegen regression. Re-capture the full
|
||||
`*.bump_s` set on current hardware from a known-clean commit and
|
||||
recalibrate the `bump_s` baseline+tolerance pair (or widen the
|
||||
tolerance) so the noise floor stops tripping `check.py` exit 1.
|
||||
Pure bench-harness recalibration; no language change.
|
||||
- context: `docs/journals/2026-05-16-audit-iteration-discipline-revert.md`
|
||||
(the bencher localisation evidence).
|
||||
- [x] **\[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
|
||||
@@ -345,10 +361,11 @@ clean. Pick the next milestone from P2.)_
|
||||
the effect-handler infrastructure forward.
|
||||
- `mut` block as the syntactic boundary in Form A — outside,
|
||||
AILang's pure self; inside, `var` / `assign` / mutable arrays
|
||||
legal. (Iteration is *not* part of this boundary: the "Iteration
|
||||
discipline" P1 milestone supersedes the earlier "while-loops
|
||||
legal" scope here — repetition is structural recursion or named
|
||||
`loop`/`recur`, never a `while` over mutable state.)
|
||||
legal. (Iteration is *not* part of this boundary: AILang has no
|
||||
`while`/`for` and this milestone does not introduce one —
|
||||
repetition stays recursion, exactly as the language has it today
|
||||
(structural / tail recursion); a `mut` block is a sealed
|
||||
expression, never a loop over mutable state.)
|
||||
- `var x = expr` + `assign x expr` AST nodes, legal only inside
|
||||
`mut`.
|
||||
- Mutable array primitive (`MutArray a`, O(1) index/update under
|
||||
|
||||
Reference in New Issue
Block a user