ocaml: phase 6 String/Char/Int/Float/Printf modules (+13 tests, 278 total)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 53s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 53s
Host primitives _string_length / _string_sub / _char_code / etc. exposed in the base env (underscore-prefixed to avoid user clash). lib/ocaml/ runtime.sx wraps them into OCaml-syntax modules: String (length, get, sub, concat, uppercase/lowercase_ascii, starts_with), Char (code, chr, lowercase/uppercase_ascii), Int (to_string, of_string, abs, max, min), Float.to_string, Printf stubs. Also added print_string / print_endline / print_int IO builtins.
This commit is contained in:
@@ -229,6 +229,16 @@ SX CEK evaluator (both JS and OCaml hosts)
|
||||
_(Pending: fold/join/iter/to_list/to_result.)_
|
||||
- [~] `Result`: `map`, `bind`, `is_ok`, `is_error`. _(Pending:
|
||||
fold/get_ok/get_error/map_error/to_option.)_
|
||||
- [~] `String`: `length`, `get`, `sub`, `concat`, `uppercase_ascii`,
|
||||
`lowercase_ascii`, `starts_with`. _(Pending: split_on_char, trim,
|
||||
contains, ends_with, index_opt, replace_all.)_
|
||||
- [~] `Char`: `code`, `chr`, `lowercase_ascii`, `uppercase_ascii`.
|
||||
_(Pending: escaped.)_
|
||||
- [~] `Int`: `to_string`, `of_string`, `abs`, `max`, `min`.
|
||||
_(Pending: arithmetic helpers, min_int/max_int.)_
|
||||
- [~] `Float`: `to_string`. _(Pending: of_string, arithmetic helpers.)_
|
||||
- [~] `Printf`: stub `sprintf`/`printf`. _(Real format-string
|
||||
interpretation pending.)_
|
||||
- [ ] `String`: `length`, `get`, `sub`, `concat`, `split_on_char`, `trim`,
|
||||
`uppercase_ascii`, `lowercase_ascii`, `contains`, `starts_with`, `ends_with`,
|
||||
`index_opt`, `replace_all` (non-stdlib but needed).
|
||||
@@ -333,6 +343,14 @@ the "mother tongue" closure: OCaml → SX → OCaml. This means:
|
||||
|
||||
_Newest first._
|
||||
|
||||
- 2026-05-08 Phase 6 — extended stdlib slice (+13 tests, 278 total).
|
||||
Host primitives exposed via `_string_*`, `_char_*`, `_int_*`,
|
||||
`_string_of_*` underscore-prefixed builtins so the OCaml-side
|
||||
`lib/ocaml/runtime.sx` modules can wrap them: String (length, get,
|
||||
sub, concat, uppercase_ascii, lowercase_ascii, starts_with), Char
|
||||
(code, chr, lowercase_ascii, uppercase_ascii), Int (to_string,
|
||||
of_string, abs, max, min), Float.to_string, Printf stubs. Also added
|
||||
`print_string`/`print_endline`/`print_int` builtins.
|
||||
- 2026-05-08 Phase 5 — Hindley-Milner type inference, paired-sequencing
|
||||
consumer of `lib/guest/hm.sx` (algebra) and `lib/guest/match.sx`
|
||||
(unify). `lib/ocaml/infer.sx` ships Algorithm W rules for OCaml AST:
|
||||
|
||||
Reference in New Issue
Block a user