From c3d2b9d87d2ae3a0600fb0bf2664864117537241 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 1 May 2026 10:01:49 +0000 Subject: [PATCH] =?UTF-8?q?plan:=20tick=20Phase=2011=20OCaml=20=E2=80=94?= =?UTF-8?q?=20HO=20dispatch=20+=20sequence-*=20primitives=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- plans/agent-briefings/primitives-loop.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plans/agent-briefings/primitives-loop.md b/plans/agent-briefings/primitives-loop.md index ab54de62..7a41c435 100644 --- a/plans/agent-briefings/primitives-loop.md +++ b/plans/agent-briefings/primitives-loop.md @@ -331,8 +331,11 @@ on type (list → existing path, vector → index loop, string → char iteratio Steps: - [x] Spec: extend `map`/`filter`/`reduce`/`for-each`/`some`/`every?` in `spec/evaluator.sx` to type-dispatch; add `in-range` lazy sequence type + helpers. -- [ ] OCaml: update HO form dispatch; add `SxRange` or use lazy list; implement `sequence-*` +- [x] OCaml: update HO form dispatch; add `SxRange` or use lazy list; implement `sequence-*` primitives. + seq_to_list helper before let-rec block; ho_setup_dispatch wraps all 7 coll bindings; + seq-to-list/sequence-to-list/vector/length/ref/append/in-range in sx_primitives.ml. + 4385/1080 (all failures pre-existing hs-*/regex; 0 regressions). - [ ] JS bootstrapper: update. - [ ] Tests: 30+ tests in `spec/tests/test-sequences.sx` — map over vector, filter over range, for-each over string chars, sequence-append, sequence->list/vector coercions. @@ -732,4 +735,5 @@ _Newest first._ - 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. +- 2026-05-01: Phase 11 OCaml step done — seq_to_list helper added before let-rec; ho_setup_dispatch wraps all 7 coll bindings with seq_to_list; seq-to-list/sequence-to-list/to-vector/length/ref/append + in-range primitives in sx_primitives.ml. 4385/4385 baseline unchanged, 0 regressions. Committed 7286629c. - 2026-05-01: Phase 11 Spec step done — seq-to-list coercion helper; ho-setup-dispatch extended with seqToList on all collection args; sequence-to-list/vector/length/ref/append + in-range added to evaluator.sx. Restored 3 accidentally-deleted make-cek-state/value/suspended definitions. Fixed 8 shorthand define forms + added vector->list/list->vector transpiler renames. JS: 2137 passing (+28 vs HEAD baseline of 2109).