|
|
9f539ab392
|
ocaml: phase 3 polymorphic variants (+4 tests, 382 total)
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
Tokenizer recognises backtick followed by an upper ident, emitting a
ctor token identical to a nominal ctor. Parser and evaluator treat
polyvariants as ctors — same tagged-list runtime. So:
`Red -> ("Red")
`Some 42 -> ("Some" 42)
match `Red with | `Red -> 1 | `Green -> 2 | `Blue -> 3
-> 1
`Pair (1,2) -> ("Pair" 1 2) (with tuple-arg flatten)
Proper row types in HM deferred.
|
2026-05-08 14:03:09 +00:00 |
|
|
|
ee002f2e02
|
ocaml: phase 1/5/6 float arithmetic +./-./*./. (+5 tests, 372 total)
Test, Build, and Deploy / test-build-deploy (push) Failing after 27s
Tokenizer: +. -. *. /. (with -. avoiding clash with negative float
literals). Parser table places dotted ops at int-precedence levels.
Eval routes to host SX +/-/*//. HM types them Float->Float->Float;
literal floats now infer as Float (was Int).
OCaml-style 1.5 +. 2.5 : Float works end-to-end through tokenize +
parse + eval + infer.
|
2026-05-08 13:55:04 +00:00 |
|
|
|
85b7fed4fc
|
ocaml: phase 1 tokenizer (+58 tests) — consumes lib/guest/lex.sx
Test, Build, and Deploy / test-build-deploy (push) Failing after 52s
Idents, ctors, 51 keywords, numbers (int/float/hex/exp/underscored),
strings + chars with escapes, type variables, 26 op/punct tokens, and
nested (* ... *) block comments. Tests via epoch protocol against
sx_server.exe.
|
2026-05-07 23:04:40 +00:00 |
|