diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index 03a5792b..c6fb5cd9 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -708,8 +708,9 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto Note: rb-fiber-yield from letrec-bound lambdas fails (JIT VM can't invoke callcc continuations as escapes); workaround: use top-level helper fns for recursive yields. -- [ ] Tcl: string ports for Tcl channel abstraction; string-buffer for `append`; coroutines +- [x] Tcl: string ports for Tcl channel abstraction; string-buffer for `append`; coroutines for Tcl coroutines; regexp for Tcl `regexp`; format for Tcl `format`. + lib/tcl/runtime.sx (37 forms) + tests/runtime.sx (56/56 pass). COMMIT. - [ ] Forth: bitwise ops (core); string-buffer for word-definition accumulation; bytevectors for Forth's raw memory model. @@ -730,6 +731,7 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 2026-05-01: Phase 22 Tcl done — runtime.sx (37 forms): string-buffer (append accumulator), channel (read/write ports with gets/read/puts), regexp (make-regexp wrappers), format (%s/%d/%f/%x/%o/%% manual char scan), coroutine (call/cc, top-level helper pattern). 56/56 tests. 3e07727d. - 2026-05-01: Phase 22 Ruby done — runtime.sx (61 forms): Hash (list-of-pairs dict-backed), Set (make-set, (set item) order), Regexp (make-regexp wrappers), StringIO (write buf + rewind/char read), Bytevectors (thin wrappers), Fiber (call/cc; letrec JIT workaround: use top-level helpers). 76/76 tests. 182e6f63. - 2026-05-01: Phase 22 APL done — runtime.sx (60 forms): iota/rho/at, rank-polymorphic dyadic/monadic helpers, arithmetic/comparison/boolean/bitwise element-wise, reduce/scan, take/drop/rotate/compress/index, set ops (member/nub/union/intersect/without), format. 73/73 tests. COMMIT.