eval-toplevel now routes every compiled form through backend/compile-and-eval (analyzer -> IR -> Janet back end). The bootstrap compiler (compile-ast) stays only to bootstrap jolt.ir/jolt.analyzer in backend/compile-load. Dropped the :selfhost? flag and JOLT_SELFHOST env plumbing — self-host is the default. Three correctness fixes the full-suite-under-self-host sweep exposed: - analyzer/back end: recur into a variadic arity now compiles. The arity fn gets an ordinary positional rest param (the collected seq), with a dispatch wrapper, so (recur fixed... rest-seq) is a clean self-call like Clojure -- instead of punting to the interpreter, which hangs on this (jolt-4df). - host_iface: interop heads (.foo/.-field/Foo.) and ns-management forms (all-ns, create-ns, resolve, ...) now mark uncompilable so they fall back instead of compiling to a bad call. - back end: named-fn self-reference ((fn self [n] ... (self ...))) binds the fn name via a var. Full unit+integration suite green; clojure-test-suite battery holds 3913. |
||
|---|---|---|
| .. | ||
| integration | ||
| spec | ||
| support | ||
| unit | ||