diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index a568dacf..03a5792b 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -702,8 +702,11 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto sequence protocol for rank-polymorphic operations; format for APL output formatting. lib/apl/runtime.sx (60 forms) + tests/runtime.sx (73/73 pass). COMMIT. -- [ ] Ruby: coroutines for fibers; hash tables for `Hash`; sets for `Set`; regexp for +- [x] Ruby: coroutines for fibers; hash tables for `Hash`; sets for `Set`; regexp for Ruby regex; string ports for `StringIO`; bytevectors for `String` binary encoding. + lib/ruby/runtime.sx (61 forms) + tests/runtime.sx (76/76 pass). COMMIT. + 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 for Tcl coroutines; regexp for Tcl `regexp`; format for Tcl `format`. @@ -727,6 +730,8 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 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. - 2026-05-01: Phase 22 Smalltalk done — runtime.sx (72 forms): numeric helpers, Character (1-indexed Array backed by dict), Dictionary (list-of-pairs any-key map), Set (make-set), WriteStream/ReadStream/printString. set-member? (set item) order. 86/86 tests. COMMIT. - 2026-05-01: Phase 22 JS done — stdlib.sx (36 forms): bitwise (truncate not js-num-to-int; set-member? takes (set item) order), Map (dict-backed pairs), Set (SX make-set), RegExp (callable lambda). 25/25 new tests pass; total 492/585. COMMIT.