diff --git a/plans/tcl-sx-completion.md b/plans/tcl-sx-completion.md index 7fb70a5c..9e3cb6d7 100644 --- a/plans/tcl-sx-completion.md +++ b/plans/tcl-sx-completion.md @@ -105,7 +105,9 @@ just Tcl. --- -## Phase 4 — Optional: env-as-value (architectural) +## Phase 4 — env-as-value (architectural) ✓ + + `uplevel`/`upvar` required an explicit frame stack because SX environments aren't inspectable from user code. Adding: @@ -146,6 +148,7 @@ becomes a lasting SX contribution used by every future hosted language. _Newest first._ +- 2026-05-06: Phase 4 env-as-value — current-env (special form via Sx_ref.register_special_form), eval-in-env (primitive in setup_evaluator_bridge), env-lookup + env-extend (in setup_env_operations); 5 idiom tests; 342/342 green - 2026-05-06: Phase 3 OCaml primitives — file-read/write/append/exists?/glob + clock-seconds/milliseconds/format in sx_primitives.ml + unix dep; tcl-cmd-clock/file wired up; 337/337 green - 2026-05-06: Phase 2 coroutine rewrite — `tcl-cmd-coroutine` now creates a `make-fiber`; `tcl-cmd-yield` calls `:coro-yield-fn` (threaded through interp); true suspension; 337/337 green - 2026-05-06: Phase 2 fiber.sx — `make-fiber`/`fiber-resume`/`fiber-done?` using call/cc + set!; bidirectional value passing; generator and echo tests pass