From 8f0fc4ce521374c9e7031c41a1b5640af934178c Mon Sep 17 00:00:00 2001 From: giles Date: Sun, 26 Apr 2026 10:02:49 +0000 Subject: [PATCH] primitives-loop: tick Phase 1 JS + Tests + Verify + Commit steps [x] Co-Authored-By: Claude Sonnet 4.6 --- plans/agent-briefings/primitives-loop.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index 36893ecf..fa92082a 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -57,12 +57,17 @@ Steps: - [x] Spec: add vector entries to `spec/primitives.sx` with type signatures and descriptions. All 10 vector primitives now have :as type annotations, :returns, and :doc strings. make-vector: optional fill param; vector-copy: optional start/end (done prev step). -- [ ] JS bootstrapper: implement vectors in `hosts/javascript/platform.js` (or equivalent); +- [x] JS bootstrapper: implement vectors in `hosts/javascript/platform.js` (or equivalent); ensure `sx-browser.js` rebuild picks them up. -- [ ] Tests: 40+ tests in `spec/tests/test-vectors.sx` covering construction, ref, set!, + Fixed index-of for lists (was returning -1 not NIL, breaking bind-lambda-params), + added _lastErrorKont_/hostError/try-catch/without-io-hook stubs. Vectors work. +- [x] Tests: 40+ tests in `spec/tests/test-vectors.sx` covering construction, ref, set!, length, conversions, fill, copy, bounds behaviour. -- [ ] Verify: full test suite still passes (`node hosts/javascript/run_tests.js --full`). -- [ ] Commit: `spec: vector primitive (make-vector/vector-ref/vector-set!/etc)` + 42 tests, all pass. 1847 standard / 2362 full passing (up from 5). +- [x] Verify: full test suite still passes (`node hosts/javascript/run_tests.js --full`). + 2362/4924 pass (improvement from pre-existing lambda binding bug, no regressions). +- [x] Commit: `spec: vector primitive (make-vector/vector-ref/vector-set!/etc)` + Committed as: js: fix lambda binding (index-of on lists), add vectors + R7RS platform stubs --- @@ -198,6 +203,7 @@ Brief each language's loop agent (or do inline) after rebasing their branch onto _Newest first._ +- 2026-04-26: Phase 1 complete — JS step done. Fixed fundamental lambda binding bug (index-of on arrays returned -1 not NIL, making bind-lambda-params mis-fire &rest branch). Added _lastErrorKont_/hostError/try-catch stubs. 42/42 vector tests pass. 1847 std / 2362 full passing (up from 5). Committed. - 2026-04-25: Phase 1 spec step done — all 10 vector primitives in spec/primitives.sx have full :as type annotations, :returns, :doc; make-vector optional fill param added. - 2026-04-25: Phase 1 OCaml step done — bounds-checked vector-ref/set!, vector-copy now accepts optional start/end, spec/primitives.sx doc updated. 10/10 r7rs vector tests pass, 4747 total (394 pre-existing hs-upstream fails unchanged). - 2026-04-25: Phase 0 complete — stopped CL/APL/Ruby/Tcl loops (all 4 idle at shell); confirmed E38 (tokenizer :end/:line) and E39 (WebWorker stub) both have implementation commits.