jolt/host/chez/java
Yogthos f80f9aab4b One IRef seam: watches/validators/meta over atom, var, and agent
add-watch/remove-watch/set-validator!/get-validator were atom-only; the
atom ctor ignored :meta and :validator; watching a var crashed. Now the
ARef contract is one seam: atoms keep their record slots (hot path
unchanged), every other reference type registers a predicate and stores
watches/validators in identity-keyed side tables, and notifies at its
mutation points. Vars notify on root changes (def on a watched var,
var-set outside a thread binding, alter-var-root — thread-binding sets
don't notify, like the JVM); agents notify per action. The def-var! wrap
costs two weak-table probes per def and does IRef work only on a watched
var.

Ctor options follow ARef: the validator gates the initial value
(IllegalStateException 'Invalid reference state' — also the class for
rejected swap!/reset!), :meta must be a map (else ClassCastException),
nil allowed. meta reads any reference through the identity side-table
(the type-gated fall-through is gone); alter-meta!/reset-meta! work on
non-var references.

Runtime-only (no re-mint). 9 JVM-certified corpus rows; spec entry; cts
baseline 5781 -> 5805 pass, 73 baselined namespaces (the residual error
in the watch namespaces is their STM ref section — refs stay out of
scope).
2026-07-02 09:07:00 -04:00
..
async.ss core.async: higher-level API over native channels + two general fixes 2026-06-27 13:05:19 -04:00
bigdec.ss Numbers-style category dispatch for binary numeric ops 2026-07-02 06:41:45 -04:00
byte-buffer.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
class-hierarchy.ss Hierarchy fns follow the reference contracts; deftype classes join the class graph 2026-07-02 08:48:30 -04:00
concurrency.ss One IRef seam: watches/validators/meta over atom, var, and agent 2026-07-02 09:07:00 -04:00
dot-forms.ss Resolve .method calls through a priority arm registry 2026-07-01 15:52:24 -04:00
ffi.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-class.ss spec.alpha: reify ILookup get, NPE/CCE, quoted #inst/#uuid, anon-fn class, kwargs map 2026-06-27 21:56:04 -04:00
host-static-classes.ss Hierarchy fns follow the reference contracts; deftype classes join the class graph 2026-07-02 08:48:30 -04:00
host-static-methods.ss Fix six JVM divergences surfaced by rewrite-clj 2026-07-01 12:25:05 -04:00
host-static.ss Throw typed exceptions; one exception hierarchy 2026-07-01 16:06:00 -04:00
inst-time.ss Resolve .method calls through a priority arm registry 2026-07-01 15:52:24 -04:00
io-streams.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
io.ss Resolve .method calls through a priority arm registry 2026-07-01 15:52:24 -04:00
java-time.ss java.time: complete LocalTime/LocalDate/Year/YearMonth ChronoField coverage (#239) 2026-06-26 19:12:40 +00:00
math.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-array.ss Chunk range/map/filter to match JVM Clojure 2026-06-29 22:02:06 -04:00
natives-queue.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-str.ss General fixes shaken out by running core.logic's test suite 2026-06-27 09:20:11 -04:00
records-interop.ss Throw typed exceptions; one exception hierarchy 2026-07-01 16:06:00 -04:00