diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index 680c5099..7bcf32f4 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -672,9 +672,10 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto Added `## SX primitive baseline` section to plans/common-lisp-on-sx.md, plans/apl-on-sx.md, plans/ruby-on-sx.md, plans/tcl-on-sx.md. f43659ce. -- [ ] Common Lisp: char type (`#\a`); string ports + `read`/`write` for reader/printer; +- [x] Common Lisp: char type (`#\a`); string ports + `read`/`write` for reader/printer; gensym for macros; rational numbers for CL ratios; multiple values; sets for CL set ops; `modulo`/`remainder`/`quotient`; radix formatting; `format` for `cl:format`. + lib/common-lisp/runtime.sx (103 forms) + test.sh (68/68 pass). 1ad8e74a. - [ ] Lua: vectors for arrays; hash tables for Lua tables; `delay`/`force` for lazy iterators; regexp for Lua pattern matching; trig from math completeness; bytevectors for binary I/O. @@ -720,6 +721,7 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 2026-05-01: Phase 22 CL done — runtime.sx (103 forms): type preds, arithmetic, chars, format, gensym, values, sets, radix, list utils. cl-empty? guards nil/() split. 68/68 tests. 1ad8e74a. - 2026-05-01: Phase 22 step 1 — SX primitive baseline added to CL/APL/Ruby/Tcl plans. f43659ce. - 2026-05-01: Phase 21 complete — format (~a ~s ~d ~x ~o ~b ~f ~% ~& ~~ ~t) as pure SX in spec/stdlib.sx. Fixed lib/r7rs.sx number->string to support optional radix; added format-decimal OCaml primitive. 28/28 tests on both JS and OCaml. 4d7b3e29. - 2026-04-26: Phase 7 complete — bitwise-and/or/xor/not + arithmetic-shift + bit-count + integer-length. OCaml: land/lor/lxor/lnot/lsl/asr + Kernighan popcount + lsr loop for integer-length. JS: bitwise ops + Hamming weight + Math.clz32. 26 tests, 158 assertions, all pass. a8a79dc9.