jolt/host/chez
Yogthos 0c9c7931fe Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez
Emit every non-macro clojure.core form through the live analyzer -> Chez emit
pipeline as a def-var! prelude (prelude mode, tier dependency order), load it
before a user expression, and you get an -e-capable jolt-chez: analysis on Janet,
execution on Chez. driver/emit-core-prelude assembles it (each form behind a
silent load guard so the Phase-2 multimethod forms don't break the rest);
bin/jolt-chez is the -e CLI, caching the prelude on disk keyed by source hash.

run-corpus-prelude.janet is the full parity gate this opens, the prelude-backed
sibling of run-corpus-chez. First baseline: 1220/2497 evaluated cases pass, 0 new
divergences (10 allowlisted: dynamic vars, class names, eval-order — deferred
Phase 2). The rest is the punch-list: ~360 emit-fail (real host interop, out of
the analyzer subset) and ~900 runtime crashes, mostly core fns calling
host-coupled seed natives with no Chez shim yet (str/format/vec, transients).
Follow-ups jolt-t6cr/kl2l/q3w8/9ls5.

Two shims landed to get the prelude to load and run. atoms.ss: atom/deref/swap!/
reset! (+ the compare/vals kernel) — needed at load time for
global-hierarchy = (atom (make-hierarchy)). predicates.ss: the type predicates +
name/namespace/boolean the overlay assumes are seed natives, matching the seed's
strict semantics. post-prelude.ss re-asserts char?/atom? after the prelude: the
overlay implements those by reading :jolt/type, which is false for Chez-native
chars/atoms, so its def-var! would clobber the correct native versions.

Per-case Scheme files are PID-unique so a foreground -e never reads a half-written
file while the gate runs.
2026-06-17 20:50:42 -04:00
..
atoms.ss Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
collections.ss Chez Phase 1 (increment 3b): seq tier + dynamic IFn dispatch on the Chez RT 2026-06-17 15:19:18 -04:00
driver.janet Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
emit.janet Chez Phase 1 (increment 3i): regex via vendored irregex 2026-06-17 19:44:18 -04:00
jolt-chez.janet Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
post-prelude.ss Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
predicates.ss Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
regex.ss Chez Phase 1 (increment 3i): regex via vendored irregex 2026-06-17 19:44:18 -04:00
rt.ss Chez Phase 1 (increment 3j): assemble the clojure.core prelude, -e-capable jolt-chez 2026-06-17 20:50:42 -04:00
seq.ss Chez Phase 1 (increment 3f): quoted literals 2026-06-17 17:43:34 -04:00
values.ss Chez Phase 1 (increment 3b): seq tier + dynamic IFn dispatch on the Chez RT 2026-06-17 15:19:18 -04:00