ocaml: phase 1+2 records {x=1;y=2} + with-update (+6 tests, 289 total)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 51s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 51s
Parser: { f = e; f = e; ... } -> (:record (F E)...). { base with f = e;
... } -> (:record-update BASE (F E)...). Eval builds a dict from field
bindings; record-update merges the new fields over the base dict — the
same dict representation already used for modules.
{ also added to at-app-start? so records are valid arg atoms. Field
access via the existing :field postfix unifies record/module access.
Record patterns deferred to a later iteration.
This commit is contained in:
@@ -355,6 +355,12 @@ the "mother tongue" closure: OCaml → SX → OCaml. This means:
|
||||
|
||||
_Newest first._
|
||||
|
||||
- 2026-05-08 Phase 1+2 — record literals `{ x = 1; y = 2 }` and
|
||||
functional update `{ r with x = 99 }`. Parser produces `(:record (F E)
|
||||
...)` and `(:record-update BASE-EXPR (F E) ...)`. Eval builds a dict
|
||||
from field bindings; record-update merges over the base dict (the same
|
||||
dict-based representation we already use for modules). Field access
|
||||
via existing `:field` postfix. Record patterns deferred. 289/289 (+6).
|
||||
- 2026-05-08 Phase 5.1 — `lib/ocaml/conformance.sh` + `scoreboard.json`
|
||||
+ `scoreboard.md`. Classifies tests into 14 suites by description
|
||||
prefix and emits structured pass/fail counts. Current: 284 pass / 0
|
||||
|
||||
Reference in New Issue
Block a user