WhatsNew + roadmap: mut-local milestone closed; Stateful-islands marked in-progress
- docs/WhatsNew.md: append a user-facing entry describing the new local-mutable-state block — what it does, what it does not yet cover (heap-Str and user ADTs), the two example fixtures, and the broader streaming-workloads motivation. No internals. - docs/roadmap.md: the Stateful-islands milestone flips from [ ] to [~] (in progress). A Progress paragraph records sub-milestone 1 (mut-local) as closed with its commit references, and enumerates the remaining sub-milestones (effect-handler infrastructure, refs + !Mut, MutArray, Stateful + pipe) — each to be brainstormed separately so each one stays small and audit-friendly.
This commit is contained in:
+17
-1
@@ -265,7 +265,7 @@ clean. Pick the next milestone from P2.)_
|
||||
exercising the LLM-natural Show-body shape.
|
||||
- context: per-iter journal 2026-05-13-iter-str-concat.md.
|
||||
|
||||
- [ ] **\[milestone\]** Stateful islands — bounded mutation for
|
||||
- [~] **\[milestone\]** Stateful islands — bounded mutation for
|
||||
streaming workloads (`Stateful a b` + `!Mut` effect + `mut`
|
||||
syntactic block). Adds a sealed mutable-state layer on top of
|
||||
the pure core: a `Stateful a b` first-class type whose interior
|
||||
@@ -281,6 +281,22 @@ clean. Pick the next milestone from P2.)_
|
||||
zero-allocation pipe combinator, growing tuple-state types as
|
||||
pipelines lengthen).
|
||||
|
||||
**Progress.** Decomposed at brainstorm time (2026-05-15) into a
|
||||
sequence of shippable sub-milestones. Sub-milestone 1 closed
|
||||
2026-05-15: **mut-local** — sealed-by-construction `mut`/`var`/
|
||||
`assign` blocks for Int/Float/Bool/Unit scalars, alloca-resident,
|
||||
no escape, no `!Mut` effect leakage. Foundation in place;
|
||||
fn signatures stay pure while LLM authors can write imperative
|
||||
accumulators directly. Spec `docs/specs/2026-05-15-mut-local.md`;
|
||||
iters mut.1/mut.2/mut.3/mut.4-tidy (commits 7b92719, b24718a,
|
||||
03fb633, 20add51). Remaining sub-milestones (to be brainstormed
|
||||
separately, in order): (2) effect-handler infrastructure as a
|
||||
prerequisite for any non-IO/non-Diverge effect; (3) `!Mut` effect
|
||||
+ `ref a` first-class type that can escape mut blocks under
|
||||
uniqueness-tracking; (4) mutable-array primitive `MutArray a`;
|
||||
(5) `Stateful a b` sealed callable type + `pipe` combinator with
|
||||
zero-allocation composition + `runST`-equivalent escape discharge.
|
||||
|
||||
**Motivation.** AILang's signature-as-contract thesis is *better*
|
||||
served by an explicit `Stateful a b` + `!Mut` annotation than by
|
||||
the implicit-closure-mutation idiom of myc / Lua / JS factory
|
||||
|
||||
Reference in New Issue
Block a user