From 4ce1f2d1f6284c334323afc7deb15571132ec246 Mon Sep 17 00:00:00 2001 From: Brummel Date: Sat, 16 May 2026 01:44:35 +0200 Subject: [PATCH] =?UTF-8?q?WhatsNew:=20iteration-discipline-revert=20close?= =?UTF-8?q?d=20=E2=80=94=20done-state=20entry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mirrors the done-state notify text verbatim (user-facing changelog, no internals). The iteration-discipline-revert milestone is fully closed (brainstorm → planner → implement → audit, clean); next move surfaced is the effect-handler-infrastructure milestone. --- docs/WhatsNew.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/WhatsNew.md b/docs/WhatsNew.md index 2e62a56..d4e0ebe 100644 --- a/docs/WhatsNew.md +++ b/docs/WhatsNew.md @@ -176,3 +176,7 @@ This is the first step on a longer arc. The motivation is real-world streaming c A safety guard added at the same time: a lambda whose body refers to a mutable cell from an enclosing block is rejected by the type checker with a clear diagnostic, since cells are tied to their block's lifetime and cannot be lifted into a heap-stored closure without further design work. All tests green. Benchmark scripts all pass at the (updated for this milestone) baselines. + +## 2026-05-16 — Experimental iteration redesign fully reverted + +The experimental iteration redesign is fully reverted. It had added named loops, compiler-checked-terminating recursion, and a non-termination effect — all removed; the language's iteration story is back exactly to plain recursion, nothing new to learn. It was pulled because it had grown from a small documentation gap into a sweeping language-identity change, then hit a wall where it would have made a very natural kind of function impossible to write, and the only escape weakened a core correctness guarantee you co-designed. Backed out cleanly: program behaviour verified byte-identical to the pre-change state, full test suite green, benchmarks clean (one metric flagged as pre-existing machine drift, not caused by this — filed separately). The honest one-paragraph documentation note the original gap actually needed is now in place; the genuine total-recursion ambition is preserved on the roadmap, sequenced behind the type-system work it really needs. Your streaming example was never part of this and is untouched. Its next step is the effect-handler foundation — the heaviest building block, with open design questions I'd rather shape with you than decide solo while you're away. That's the natural place to pick up.