jolt/host/chez
Yogthos 424ce75cf6 mutable deftype fields: (set! field val) in a method
deftype fields tagged ^:unsynchronized-mutable / ^:volatile-mutable can now be
reassigned in place from a method, as on the JVM. A jrec stores fields as cons
cells, so a new jolt-set-field! mutates the pair with set-cdr!. The deftype macro
rewrites (set! mutable-field v) in a method body to (set! (.-field inst) v), and
the analyzer compiles a (set! (.-field obj) v) target to jolt-set-field! — so
both the rewritten symbol form and an explicit interop (set! (.-root this) v) go
through one path. Field reads remain a snapshot at method entry, which is correct
for the universal read-then-set pattern (a repeated set! of the same field in one
call would read the entry value).

Closes the set!-of-local SCI failures: SCI load 202 -> 205/218.
2026-06-22 01:19:03 -04:00
..
seed mutable deftype fields: (set! field val) in a method 2026-06-22 01:19:03 -04:00
async.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
atoms.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
bigdec.ss real BigDecimal type (bigdec, M literals) 2026-06-22 00:01:01 -04:00
bootstrap.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
cli.ss Chez Phase 3 inc9b: pure-Chez runtime CLI (bin/joltc, no Janet) 2026-06-20 06:53:05 -04:00
collections.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
compile-eval.ss macroexpand-first analyzer order; one macro path; defmacro/letfn fixes 2026-06-22 00:54:16 -04:00
concurrency.ss Chez parity: delay / force / realized? (jolt-cf1q.7) 2026-06-20 17:02:42 -04:00
converters.ss Bind clojure.core/float (= double on Chez) 2026-06-21 15:39:21 -04:00
dot-forms.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
dyn-binding.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
dynamic-vars.ss compile (set! *var* val) 2026-06-22 00:40:46 -04:00
emit-image.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
host-class.ss resolve ^Type hint to canonical class name in var :tag 2026-06-21 23:52:47 -04:00
host-contract.ss real BigDecimal type (bigdec, M literals) 2026-06-22 00:01:01 -04:00
host-static.ss Typed-array identity + JVM flonum printing (Inc 3) 2026-06-21 22:36:14 -04:00
host-table.ss sorted-map entries are real map-entries (jolt-jk23) 2026-06-21 16:43:05 -04:00
inst-time.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
io.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
lazy-bridge.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
math.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
multimethods.ss defmethod auto-create copies clojure.core dispatch (fix SCI regression) 2026-06-21 20:04:13 -04:00
natives-array.ss real chunked seqs for vector seqs 2026-06-22 00:21:05 -04:00
natives-coll.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
natives-meta.ss (type record) returns its class-name string, not a symbol 2026-06-22 00:05:08 -04:00
natives-misc.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
natives-num.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
natives-parity.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
natives-seq.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
natives-str.ss import: bring a cross-ns deftype/record ctor into the current ns (jolt-c2l1) 2026-06-21 17:11:15 -04:00
natives-xform.ss Chez Phase 2 (inc H): volatiles + sequence/transduce 2026-06-18 14:47:03 -04:00
ns.ss definterface returns the name (not a var); ns-imports returns java.lang defaults 2026-06-21 22:47:23 -04:00
post-prelude.ss real chunked seqs for vector seqs 2026-06-22 00:21:05 -04:00
predicates.ss Host interop fixes: ==/time/subvec/defonce + corpus cleanup 2026-06-21 15:36:41 -04:00
printing.ss JVM parity: unchecked-char -> char, pr of infinities -> ##Inf 2026-06-21 17:55:05 -04:00
reader.ss real BigDecimal type (bigdec, M literals) 2026-06-22 00:01:01 -04:00
records.ss mutable deftype fields: (set! field val) in a method 2026-06-22 01:19:03 -04:00
regex.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
remint.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
rt.ss real BigDecimal type (bigdec, M literals) 2026-06-22 00:01:01 -04:00
run-corpus.ss real chunked seqs for vector seqs 2026-06-22 00:21:05 -04:00
run-sci.ss mutable deftype fields: (set! field val) in a method 2026-06-22 01:19:03 -04:00
run-unit.ss Cross-ns def/require/use/defmethod through the spine (jolt-c2l1) 2026-06-21 16:56:46 -04:00
selfcheck.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
seq.ss real chunked seqs for vector seqs 2026-06-22 00:21:05 -04:00
smoke.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
syntax-quote.ss Scrub dangling Janet references; drop dead Janet-coupled files 2026-06-21 12:01:04 -04:00
transients.ss assoc! fills nil for a trailing lone key (JVM parity) 2026-06-21 17:03:10 -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
vars.ss Chez Phase 2 (inc I+J): first-class vars + scalar natives 2026-06-18 15:44:10 -04:00