d39ef786ba
GUEST-plan: claim step 0 — baseline snapshot
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-06 21:04:19 +00:00
16cf4d9316
plans: sx-improvements roadmap + loop briefing (14 steps)
...
Phases: bug fixes (JIT combinator, letrec+resume), E38 source info
completion, native ADTs (define-type/match), plugin system, performance.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 19:01:23 +00:00
8a009df4a3
haskell: merge loops/haskell — Phases 1–6 complete (775 tests)
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 54s
Parser, layout, desugar, lazy eval, ADTs, HM inference, typeclasses
(Eq/Ord/Show/Num/Functor/Monad), real IO monad, full Prelude. 775/775
green across 13 program suites.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 18:28:12 +00:00
859361d86a
plans: haskell-completeness phases 7-16 + updated loop briefing
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s
String=[Char] via pure-SX views, show, error, numeric tower,
Data.Map, Data.Set, records, IORef, exceptions. Briefing updated
to point at new plan; old phases 1-6 plan untouched.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 17:40:53 +00:00
bf190b8fc4
tcl: merge loops/tcl — complete Tcl 8.6 subset (329 tests)
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 52s
Phases 1-6: Dodekalogue tokenizer/parser, eval engine, expr mini-language,
string/list/dict commands, proc + uplevel/upvar (the headline showcase),
catch/try/throw, namespaces + ensembles, generator coroutines, idiom corpus.
Resolved add/add conflicts by taking loops/tcl (the complete tested impl)
over the architecture branch's earlier prototype.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 11:36:59 +00:00
74ce9e7c75
merge loops/prolog: complete Prolog-on-SX implementation
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 47s
590 tests passing across 29 suites. Brings in: parser, runtime,
query API, compiler, conformance harness, integration suite, and
hs-bridge (combined hook + factory styles).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-06 11:20:44 +00:00
72ccaf4565
briefing: push to origin/loops/tcl after each commit
Test, Build, and Deploy / test-build-deploy (push) Failing after 44s
2026-05-06 06:47:36 +00:00
5a402a02be
briefing: push to origin/loops/haskell after each commit
Test, Build, and Deploy / test-build-deploy (push) Failing after 41s
2026-05-05 20:15:35 +00:00
e4eab6a309
briefing: push after each commit, unblock hyperscript bridge
Test, Build, and Deploy / test-build-deploy (push) Failing after 45s
2026-05-05 20:15:33 +00:00
90bc1208d9
plan: tick Phase 22 Forth — all Phase 22 items complete
Test, Build, and Deploy / test-build-deploy (push) Failing after 34s
2026-05-01 23:31:08 +00:00
2edd426748
plan: tick Phase 22 Tcl — complete, Forth next
Test, Build, and Deploy / test-build-deploy (push) Failing after 21s
2026-05-01 23:25:14 +00:00
bcde5e126a
plan: tick Phase 22 Ruby — complete, Tcl next
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
2026-05-01 23:18:28 +00:00
912de5a274
phase-22 APL: runtime.sx vectors/bitwise/sets/reduce/format
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 34s
lib/apl/runtime.sx (60 forms):
- Core: apl-iota (1..N), apl-rho (shape), apl-at (1-indexed access).
- Rank-polymorphic apl-dyadic/apl-monadic helpers: scalar×scalar,
scalar×vector, vector×vector all supported uniformly.
- Arithmetic: add/sub/mul/div/mod/pow/max/min, neg/abs/floor/ceil/sqrt.
- Comparison: eq/neq/lt/le/gt/ge → 0/1 result vectors.
- Boolean: and/or/not on 0/1 values, element-wise.
- Bitwise: bitand/bitor/bitxor/bitnot/lshift/rshift — element-wise.
- Reduction: reduce-add/mul/max/min/and/or; scan-add/mul.
- Vector ops: reverse, cat (scalar/vector catenate), take (±N), drop (±N),
rotate, compress (boolean mask), index (multi-index).
- Set ops: member (∊, → 0/1), nub (∪, unique preserve-order),
union, intersect (∩), without (~). All use SX make-set internally.
- Format (⍕): vector → space-separated string, scalar → str.
lib/apl/tests/runtime.sx + lib/apl/test.sh: 73/73 pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 22:49:38 +00:00
077f4a5d38
phase-22 Smalltalk: runtime.sx numeric/char/Array/Dict/Set/Stream
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 36s
lib/smalltalk/runtime.sx (72 forms):
- Numeric helpers: abs/max/min/gcd/lcm/quo/rem/mod/even?/odd?/floor/ceil/truncate/round.
- Character: st-char-value/from-int/is-letter?/is-digit?/uppercase?/lowercase?/
separator?/as-uppercase/as-lowercase/digit-value. SX chars via char->integer.
- Array: 1-indexed mutable arrays backed by dict {__st_array__ size "1" v1 ...};
at/at-put!/do/->list/list->array/copy-from-to.
- Dictionary: any-key hash map via list-of-pairs + linear scan;
at/at-put!/includes-key?/at-default/remove-key!/keys/values/do/do-associations.
- Set: backed by SX make-set; set-member?/add!/includes?/remove! take (set item) order.
- WriteStream/ReadStream: dict-backed buffers; printString for nil/bool/number/
string/symbol/char/list/array.
lib/smalltalk/tests/runtime.sx + lib/smalltalk/test.sh: 86/86 pass.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 22:43:04 +00:00
36e6762539
phase-22 JS: stdlib.sx bitwise/Map/Set/RegExp + 25 tests
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 38s
lib/js/stdlib.sx (36 forms):
- Bitwise ops (js-bitand/bitor/bitxor/lshift/rshift/urshift/bitnot) use
truncate instead of js-num-to-int (which calls integer /0 and crashes).
- Map class: dict-backed list-of-pairs with linear-scan find, mutable via
dict-set!; js-map-new/get/set!/has/delete!/clear/keys/vals/entries/for-each.
- Set class: backed by SX make-set primitive; set-member?/set-add!/set-remove!
all take (set item) argument order — fixed from (item set) which threw.
- RegExp: callable lambda wrapping js-regex-new (not a dict, so directly callable).
- Wires Map/Set/RegExp into js-global.
lib/js/test.sh: epochs 6000-6032 (25 tests) — all pass.
Result: 492/585 tests pass (was 466/560 before this phase).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 22:33:27 +00:00
4022b60901
plan: tick Phase 22 Haskell — runtime.sx done, 148/148 tests
Test, Build, and Deploy / test-build-deploy (push) Failing after 32s
2026-05-01 21:41:38 +00:00
a7790418f8
plan: tick Phase 22 Erlang — runtime.sx complete, 55/55 pass
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 21:21:57 +00:00
a8613656e9
plan: tick Phase 22 Lua — stdlib complete, 185/185 pass
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 39s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 21:14:47 +00:00
10c278d073
plan: tick Phase 22 CL — runtime.sx complete, 68/68 pass
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 40s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 21:00:42 +00:00
f4193a2e8e
plan: tick Phase 22 step 1 — baseline sections added
Test, Build, and Deploy / test-build-deploy (push) Failing after 34s
2026-05-01 20:21:07 +00:00
d4964c166c
plan: tick Phase 21 format — complete, Phase 22 next
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
2026-05-01 19:59:23 +00:00
6a34ae3ae1
plan: tick Phase 20 bytevectors — complete, Phase 21 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 19:16:28 +00:00
24e1a862fb
plan: tick Phase 19 regexp — complete, Phase 20 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 18:58:11 +00:00
a40a970080
plan: tick Phase 18 sets — complete, Phase 19 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 40s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 18:46:01 +00:00
24d78464d8
plan: tick Phase 17 read/write/display — complete, Phase 18 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 36s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 18:33:02 +00:00
c8582c4d49
plan: tick Phase 16 rational numbers — complete, Phase 17 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 17:27:43 +00:00
e9d2003d6a
plan: tick Phase 15 complete — math completeness done, Phase 16 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 34s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 16:24:05 +00:00
ab3c3693c0
plan: tick Phase 14 OCaml — Phase 14 complete, Phase 15 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 40s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 12:50:38 +00:00
e9abc2cf61
plan: tick Phase 14 Spec+JS+Tests+Commit — OCaml step next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 34s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 12:38:31 +00:00
dfbcece644
plan: tick Phase 13 OCaml — Phase 13 complete, Phase 14 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 33s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 12:19:54 +00:00
60f88ab4fe
plan: tick Phase 13 Spec+JS+Tests+Commit — OCaml step next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 37s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 11:50:55 +00:00
46da676c29
plan: tick Phase 12 complete — gensym + symbol interning done
Test, Build, and Deploy / test-build-deploy (push) Failing after 33s
2026-05-01 10:57:13 +00:00
0862a6140b
spec: gensym + symbol interning (OCaml + tests)
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 32s
gensym_counter ref + gensym/string->symbol/symbol->string/intern/symbol-interned?
primitives in sx_primitives.ml. Fix ListRef case in seq_to_list on both
sx_ref.ml and sx_primitives.ml. 19 new tests in test-gensym.sx.
OCaml 4450/1080, JS 2205/2497, zero regressions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 10:56:30 +00:00
130d4d7c18
plan: tick Phase 11 Commit — sequence protocol fully landed
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 20s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 10:22:36 +00:00
ac79328418
plan: tick Phase 11 Tests — 45 sequence tests all passing
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 23s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 10:19:10 +00:00
06a3eee114
plan: tick Phase 11 JS bootstrapper — already done in Spec step
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 17s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 10:05:47 +00:00
c3d2b9d87d
plan: tick Phase 11 OCaml — HO dispatch + sequence-* primitives done
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 17s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 10:01:49 +00:00
da4b526abb
spec: sequence protocol Spec step — seq-to-list + ho polymorphic dispatch
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 15s
- seq-to-list: coerce list/vector/string/nil to list
- ho-setup-dispatch: apply seq-to-list to all collection args so map/filter/
reduce/for-each/some/every? work over vectors and strings natively
- sequence->list, sequence->vector, sequence-length, sequence-ref,
sequence-append: full polymorphic sequence helpers
- in-range: list-returning range generator (eager, works with all HO forms)
- Restore 3 accidentally-deleted make-cek-state/make-cek-value/make-cek-suspended
- Fix 8 shorthand define forms (transpiler requires long form)
- Add vector->list/list->vector to transpiler js-renames + platform aliases
- JS: 2137 passing (+28 vs HEAD baseline)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 09:31:28 +00:00
59a835efc3
plan: tick Phase 10 hash tables — complete, Phase 11 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 13s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 08:49:14 +00:00
2e4502878f
plan: tick Phase 9 complete — promises done
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 19s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 08:22:10 +00:00
835b5314ce
plan: tick Phase 8 complete — multiple values done
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 08:04:08 +00:00
24522902cc
plan: tick Phase 7 bitwise — complete, Phase 8 next
...
Test, Build, and Deploy / test-build-deploy (push) Failing after 16s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 19:06:30 +00:00
1ad9d63f1b
plan: tick Phase 6 JS+Tests+Commit — ADT complete, Phase 7 next
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 18:56:22 +00:00
f63b214726
plan: tick Phase 6 OCaml task — ADT bootstrap implementation done
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 18:52:40 +00:00
0dc7e1599c
spec: match special form — ADT constructor pattern matching (20 tests)
...
Extends match-pattern in spec/evaluator.sx with an ADT case: when the
pattern is (CtorName var...) and the value is an ADT dict (:_adt true),
check :_ctor matches, arity matches, then recursively bind field patterns.
Supports nested patterns, wildcard _, variable binding, and zero-arg ctors.
Changes step-sf-match to route no-clause errors through raise-eval-frame
instead of direct error, allowing guard to catch non-exhaustive matches.
40/40 ADT tests pass (20 define-type + 20 match). Zero regressions.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 18:16:16 +00:00
6c87210728
spec: define-type special form — constructors, predicates, accessors (20 tests)
...
Adds sf-define-type via register-special-form! in spec/evaluator.sx.
ADT values are dicts {:_adt true :_type "T" :_ctor "C" :_fields (list ...)}.
Each define-type call registers: ctor functions with arity checking, Name?
type predicate, Ctor? constructor predicates, Ctor-field positional accessors,
and populates *adt-registry* dict with type→[ctor-names] mapping.
20/20 JS tests pass in spec/tests/test-adt.sx.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 17:56:50 +00:00
3fb0212414
plan: Phase 6 ADT design doc — define-type/match syntax, CEK dispatch, exhaustiveness
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 17:17:14 +00:00
518ad37def
plan: tick Phase 5 Tests+Commit tasks — string-buffer complete
...
17 tests written inline with the implementation step. All 17 pass
on OCaml and JS. Phase 5 fully done as d98b5fa2 .
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 17:09:30 +00:00
d98b5fa223
spec: string-buffer primitive — make-string-buffer/append!/->string/length
...
OCaml: StringBuffer of Buffer.t in sx_types.ml; 5 primitives in
sx_primitives.ml (make-string-buffer, string-buffer?, string-buffer-append!,
string-buffer->string, string-buffer-length); inspect case added.
JS: SxStringBuffer with array+join backend; _string_buffer marker for
typeOf dispatch and dict? exclusion (also excludes _vector from dict?).
spec/primitives.sx: 5 define-primitive entries.
17/17 tests pass on both OCaml and JS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 17:05:05 +00:00
cc0af51921
plan: tick Phase 4 commit task — coroutine primitive complete
...
All Phase 4 work landed across 4 commits (21cb9cf5 , 9eb12c66 , b78e06a7 ,
0ffe208e ). Phase 5 (string buffer) is next.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-26 16:54:22 +00:00