ocaml: phase 1/5/6 float arithmetic +./-./*./. (+5 tests, 372 total)
Some checks failed
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.
This commit is contained in:
2026-05-08 13:55:04 +00:00
parent 16df48ff74
commit ee002f2e02
6 changed files with 53 additions and 1 deletions

View File

@@ -373,6 +373,12 @@ the "mother tongue" closure: OCaml → SX → OCaml. This means:
_Newest first._
- 2026-05-08 Phase 1+5+6 — Float arithmetic (`+.` `-.` `*.` `/.`)
(+5 tests, 372 total). Tokenizer recognises the dotted operators.
Parser table places them at int's level (7 / 8). Eval routes them
to host SX `+`/`-`/`*`/`/` (which works for both ints and floats).
HM types them `Float -> Float -> Float`; `1.5 +. 2.5 : Float`.
Float type added to formatter as a plain `Float` ctor.
- 2026-05-08 Phase 6 — List.combine/split/iter2/fold_left2/map2 (+4
tests, 367 total). Mechanical pair-walk OCaml implementations,
failwith on length-mismatch matching Stdlib semantics. List module