f0a4dfbea8
lua: if/else/elseif body scoping via (let () …); else-branch leak fixed +3 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:26:20 +00:00
54d7fcf436
lua: do-block proper lexical scoping (wrap in (let () …)) +2 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:19:01 +00:00
35ce18eb97
forth: CHAR/[CHAR]/KEY/ACCEPT (+7; Hayes 174/590)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:12:31 +00:00
d361d83402
lua: scoreboard iter — trim whitespace in lua-to-number (math.lua past arith-type)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:11:31 +00:00
bf0d72fd2f
haskell: module header + imports (+16 tests, 189/189)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:08:30 +00:00
0b0d704f1e
lua: scoreboard iter — table.getn/foreach/foreachi + string.reverse (sort.lua unblocked past getn)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 20:04:45 +00:00
5ea81fe4e0
lua: scoreboard iter — return; trailing-semi, collectgarbage/setfenv/getfenv/T stubs; all runnable tests reach execution
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:57:24 +00:00
266693a2f6
erlang: spawn/1 + self/0 + is_pid (+13 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:50:09 +00:00
781bd36eeb
lua: scoreboard iter — trailing-dot numbers, stdlib preload, arg/debug stubs (8x assertion-depth)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:49:32 +00:00
1c975f229d
forth: Phase 4 strings — S"/C"/."/TYPE/COUNT/CMOVE/FILL/BLANK (+16; Hayes 168/590)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:45:40 +00:00
743e0bae87
lua: vararg ... transpile (spreads in call+table last pos); 6x transpile-unsup fixed +6 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:38:22 +00:00
defbe0a612
haskell: guards + where clauses (+11 tests, 173/173)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:37:52 +00:00
cf4d19fb94
lua: scoreboard iteration — rawget/rawset/raweq/rawlen + loadstring/load + select/assert + _G/_VERSION
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:29:08 +00:00
24fde8aa2f
lua: require/package via package.preload +5 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:19:36 +00:00
bc1a69925e
erlang: scheduler + process record foundation (+39 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:16:01 +00:00
582894121d
lua: os stub (time/clock/date/difftime/getenv/...) +8 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:14:00 +00:00
0e509af0a2
forth: Hayes conformance runner + baseline scoreboard (165/590, 28%)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:13:45 +00:00
c6b7e19892
lua: io stub (buffered) + print/tostring/tonumber +12 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:07:31 +00:00
869b0b552d
haskell: top-level decls (fn-clause, type-sig, data, type, newtype, fixity) + type parser (+24 tests, 162/162)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:06:38 +00:00
40439cf0e1
lua: table library (insert/remove/concat/sort/unpack) +13 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 19:00:18 +00:00
6dfef34a4b
lua: math library (abs/trig/log/pow/min/max/fmod/modf/random/...) +17 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:53:28 +00:00
8c25527205
lua: string library (len/upper/lower/rep/sub/byte/char/find/match/gmatch/gsub/format) +19 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:45:03 +00:00
1dc96c814e
erlang: core BIFs + funs, Phase 2 complete (+35 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:43:25 +00:00
a5947e1295
lua: coroutines (create/resume/yield/status/wrap) via call/cc +8 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:36:41 +00:00
58dbbc5d8b
haskell: full patterns — as/lazy/negative/infix + lambda & let pat LHS (+18 tests, 138/138)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:34:47 +00:00
a47b3e5420
forth: vendor Gerry Jackson's forth2012-test-suite (Hayes Core + Ext)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:25:39 +00:00
0934c4bd28
lua: generic for-in; ipairs/pairs/next; arity-tolerant fns +9 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:23:50 +00:00
7f4fb9c3ed
erlang: guard BIFs + call dispatch (+20 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:08:48 +00:00
e224fb2db0
lua: pcall/xpcall/error via guard+raise; arity-dispatch lua-apply +9 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:05:35 +00:00
36234f0132
haskell: case/do + minimal patterns (+19 tests, 119/119)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 18:00:58 +00:00
e066e14267
forth: DO/LOOP/+LOOP/I/J/LEAVE + return stack words (+16)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:58:37 +00:00
43c13c4eb1
lua: metatable dispatch (__index/__newindex/arith/cmp/__call/__len) +23 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:57:27 +00:00
4815db461b
lua: scoreboard baseline — 0/16 runnable (14 parse, 1 print, 1 vararg)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:43:33 +00:00
3ab8474e78
lua: conformance.sh + Python runner (writes scoreboard.{json,md})
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:37:09 +00:00
4965be71ca
erlang: pattern matching + case (+21 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:36:44 +00:00
bb16477fd4
forth: BEGIN/UNTIL/WHILE/REPEAT/AGAIN (+9)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:33:25 +00:00
6ccef45ce4
haskell: expression parser + precedence climbing (+42 tests, 100/100)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:31:38 +00:00
d925be4768
lua: vendor PUC-Rio 5.1 test suite (22 .lua files)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:29:01 +00:00
418a0dc120
lua: raw table access — mutating set!, len via has-key?, +19 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:23:39 +00:00
fe0fafe8e9
lua: table constructors (array/hash/computed/mixed/nested) +20 tests
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:17:35 +00:00
2b448d99bc
lua: multi-return + unpack at call sites (+10 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:10:52 +00:00
c07ff90f6b
haskell: layout rule per §10.3 (+15 tests, 58/58)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:05:35 +00:00
b2939c1922
forth: IF/ELSE/THEN + PC-driven body runner (+18)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:03:41 +00:00
efbab24cb2
erlang: sequential eval (+54 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 17:03:00 +00:00
8bfeff8623
lua: phase 3 — functions + closures (+18 tests)
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
2026-04-24 16:57:57 +00:00
99753580b4
Recover agent-loop progress: lua/prolog/forth/erlang/haskell phases 1-2
...
Salvaged from worktree-agent-* branches killed during sx-tree MCP outage:
- lua: tokenizer + parser + phase-2 transpile (~157 tests)
- prolog: tokenizer + parser + unification (72 tests, plan update lost to WIP)
- forth: phase-1 reader/interpreter + phase-2 colon/VARIABLE (134 tests)
- erlang: tokenizer + parser (114 tests)
- haskell: tokenizer + parse tests (43 tests)
Cherry-picked file contents only, not branch history, to avoid pulling in
unrelated ocaml-vm merge commits that were in those branches' bases.
2026-04-24 16:03:00 +00:00
b45a69b7a4
sx: format_number helper — defuse int_of_float overflow on huge floats
...
Shared formatter in sx_types.ml. Small integer-valued floats still print
as plain ints; floats outside safe-int range (|n| >= 1e16) now print as
%.17g (full precision) instead of silently wrapping to negative or 0.
Non-integer values keep %g 6-digit behavior — no existing SX tests regress.
Unblocks Number.MAX_VALUE / Math.pow(2,N) style tests in js-on-sx where
iterative float loops were collapsing to 0 at ~2^63.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 15:09:11 +00:00
8f202e03c2
js-on-sx: .constructor backlink on Number/String/Array/Object protos (+1)
...
Number.prototype.constructor === Number etc. Four dict-set! lines add
the backlink after each constructor dict is defined.
new String().constructor === String now returns true. Array literals
don't yet link to Array.prototype so [].constructor === Array is still
false — that would need a boxing refactor.
Unit 521/522, slice 148/148 unchanged.
Number 76/100 → 77/100 (+1). String variance-heavy under CPU load.
2026-04-24 14:18:18 +00:00
6c1da9212a
HS: ask/answer + prompt/confirm mock (+4 tests)
...
Wire up the `ask` and `answer` commands end-to-end:
- tokenizer.sx: register `ask` and `answer` as hs-keywords.
- parser.sx: cmd-kw? gains both; parse-cmd dispatches to new
parse-ask-cmd (emits `(ask MSG)`) and parse-answer-cmd, which
reads `answer MSG [with YES or NO]`. The with/or pair reads
yes/no via parse-atom — parse-expr would collapse
`"Yes" or "No"` into `(or "Yes" "No")` before match-kw "or"
could fire. The no-`with` form emits `(answer-alert MSG)`.
- compiler.sx: three new cond branches (ask, answer, answer-alert)
compile to a let that binds __hs-a, sets `the-result` and `it`,
and returns the value — so `then put it into ...` works.
- runtime.sx: hs-ask / hs-answer / hs-answer-alert call
window.prompt / confirm / alert via host-call + host-global.
- tests/hs-run-filtered.js: test-name-keyed globalThis.{alert,
confirm,prompt}; __currentHsTestName is updated before each
test. Host-set! for innerHTML/textContent now coerces JS
null → "null" (browser behaviour) so `prompt → null` →
`put it into #out` renders literal text "null", which the
fourth test depends on.
Suite hs-upstream-askAnswer: 1/5 -> 5/5.
Smoke 0-195: 166/195 -> 170/195.
2026-04-24 14:08:25 +00:00
d7a88d85ae
HS: parenthesized commands and features (+1 test)
...
Three parser additions so scripts like `(on click (log me) (trigger foo))`
parse into a single feature with both commands in its body:
1. parse-feat: new cond branch for `paren-open` — advance, recurse
parse-feat, consume `paren-close`. Allows a feature like `(on click
...)` to be grouped in parens.
2. parse-cmd: two new cond branches — on `paren-close` return nil (so
cl-collect terminates at an outer group close), and on `paren-open`
advance / recurse / close. Allows single parenthesized commands like
`(log me)`.
3. cl-collect: previously only recursed when the next token was a
recognised command keyword (`cmd-kw?`), so after `(log me)` the
sibling `(trigger foo)` would end the feature body and re-surface as
a top-level feature. Extended the recursion predicate to also fire
when the next token is `paren-open`.
Suite hs-upstream-core/parser: 9/14 -> 10/14.
Smoke 0-195: 165/195 -> 166/195.
2026-04-24 13:53:36 +00:00