jolt/host/chez
Yogthos d21ab77e7e Run core.memoize's test suite on jolt
Shaking out clojure.core.memoize (207 assertions, 0 fail) cleared several
general gaps:

- deref/@ on a deftype or reify implementing clojure.lang.IDeref dispatches to
  its deref method (RetryingDelay / make-derefable).
- deftype mutable fields (^:unsynchronized-mutable / ^:volatile-mutable) are
  read live: a set! within a method is observed by a later read in the same
  invocation, not the entry-time capture. Needed for double-checked locking.
  Immutable fields stay let-bound. Field reads rewrite to (.-field inst) with
  lexical-shadow tracking.
- def metadata values are evaluated, like Clojure: ^{:k (f)} stores (f)'s
  result and ^{:af some-fn} the fn. :tag stays a literal hint.
- try dispatches catch clauses by class in order via the exception supertype
  hierarchy; a non-matching value re-throws, an untyped host condition is caught
  by a RuntimeException/Exception/Throwable clause. Previously the last clause
  won and the class was ignored.
- locking takes a real per-object monitor (recursive Chez mutex) now that
  futures/agents/threads share one heap; it was a no-op.
- supers/ancestors reflect a small modeled JVM interface hierarchy, so
  (ancestors (class f)) yields Runnable/Callable (core.memoize's arg check).
- AssertionError / Error constructors.

JOLT_FEATURES is gone from the docs: it isn't read anywhere on Chez, and the
reader already includes :clj in its default feature set. RFC 0002's
{:jolt :default} design was reverted in the reader; docs now match the code.

Raises the SCI floor 205 -> 210.
2026-06-25 13:23:05 -04:00
..
seed Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
async.ss JVM-semantics fixes and small cleanups 2026-06-23 01:36:51 -04:00
atoms.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
bigdec.ss refactor: registry pattern for jolt-pr-str/pr-readable + remaining arms (jolt-lmot) 2026-06-23 23:22:25 -04:00
bootstrap.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
build-smoke.sh defmethod on a referred multifn resolves to its home ns 2026-06-24 09:13:28 -04:00
build.ss defmethod on a referred multifn resolves to its home ns 2026-06-24 09:13:28 -04:00
cli.ss jolt build: compile an app to a standalone binary (Phase 4 stages 1-2) 2026-06-22 23:01:36 -04:00
collections.ss deftype/record: clojure.lang collection interfaces + protocol identity 2026-06-25 00:14:19 -04:00
compile-eval.ss read-string constructs sets; format %x lowercase; extend/extends? on nil 2026-06-24 14:03:47 -04:00
concurrency.ss Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
converters.ss Replace str-render/instance-check set! chains with registries 2026-06-23 09:05:36 -04:00
dce.ss refactor: extract host/chez/dce.ss; tag the runtime manifest (tier 1) 2026-06-23 22:20:48 -04:00
dot-forms.ss deftype/record: clojure.lang collection interfaces + protocol identity 2026-06-25 00:14:19 -04:00
dyn-binding.ss refactor: registry pattern for jolt-pr-str/pr-readable + remaining arms (jolt-lmot) 2026-06-23 23:22:25 -04:00
dynamic-var-defaults.ss Define *print-meta* as a bindable dynamic var 2026-06-24 10:22:10 -04:00
emit-image.ss Auto-resolve ::keywords; honor clojure.edn reader opts 2026-06-24 09:13:14 -04:00
ffi.ss jolt build: bundle native libs + resources into standalone binaries 2026-06-23 13:19:33 -04:00
host-class.ss (class x) returns a JVM-faithful Class value 2026-06-24 16:46:09 -04:00
host-contract.ss core.match: regex + array patterns (full support); library-conformance directive 2026-06-25 00:46:10 -04:00
host-static-classes.ss Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
host-static-methods.ss Soft/WeakReference: real GC eviction via Chez weak pairs + guardians 2026-06-25 11:32:32 -04:00
host-static.ss Make clojure.spec.alpha load and run 2026-06-24 19:46:22 -04:00
host-table.ss refactor: registry pattern for jolt-pr-str/pr-readable + remaining arms (jolt-lmot) 2026-06-23 23:22:25 -04:00
inst-time.ss deftype/record: clojure.lang collection interfaces + protocol identity 2026-06-25 00:14:19 -04:00
io-streams.ss io/copy: drain a byte-input-stream shim source 2026-06-25 09:01:02 -04:00
io.ss host interop + deps fixes for running ring-defaults on jolt 2026-06-25 04:42:35 -04:00
java-time.ss java.time DST + data readers: make tick pass fully 2026-06-24 21:30:05 -04:00
lazy-bridge.ss refactor: registry pattern for jolt-pr-str/pr-readable + remaining arms (jolt-lmot) 2026-06-23 23:22:25 -04:00
loader.ss java.time DST + data readers: make tick pass fully 2026-06-24 21:30:05 -04:00
math.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
multimethods.ss defmethod on a referred multifn resolves to its home ns 2026-06-24 09:13:28 -04:00
natives-array.ss Replace str-render/instance-check set! chains with registries 2026-06-23 09:05:36 -04:00
natives-coll.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
natives-format.ss read-string constructs sets; format %x lowercase; extend/extends? on nil 2026-06-24 14:03:47 -04:00
natives-meta.ss Make clojure.spec.alpha load and run 2026-06-24 19:46:22 -04:00
natives-misc.ss Tagged literals are value-equal 2026-06-24 11:03:33 -04:00
natives-num.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
natives-queue.ss delay exception memoization, deftype cross-protocol method merge, more map-like dispatch 2026-06-25 10:57:31 -04:00
natives-reader.ss refactor: consolidate transducers, dissolve natives-parity.ss (jolt-jcs7) 2026-06-23 23:50:42 -04:00
natives-seq.ss refactor: consolidate transducers, dissolve natives-parity.ss (jolt-jcs7) 2026-06-23 23:50:42 -04:00
natives-str.ss host interop + deps fixes for running ring-defaults on jolt 2026-06-25 04:42:35 -04:00
natives-transduce.ss refactor: consolidate transducers, dissolve natives-parity.ss (jolt-jcs7) 2026-06-23 23:50:42 -04:00
ns.ss refactor: registry pattern for jolt-pr-str/pr-readable + remaining arms (jolt-lmot) 2026-06-23 23:22:25 -04:00
png.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
post-prelude.ss Auto-resolve ::keywords; honor clojure.edn reader opts 2026-06-24 09:13:14 -04:00
predicates.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
printing.ss Port real clojure.pprint (pretty-printer + cl-format) 2026-06-24 16:09:09 -04:00
reader.ss core.match: regex + array patterns (full support); library-conformance directive 2026-06-25 00:46:10 -04:00
records-interop.ss Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
records.ss delay exception memoization, deftype cross-protocol method merge, more map-like dispatch 2026-06-25 10:57:31 -04:00
regex.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
remint.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
rt.ss java.io: full File API + byte/char streams over Chez ports 2026-06-24 22:12:46 -04:00
run-corpus.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
run-infer.ss infer gate: cover the run-inference / take-diags! checker path 2026-06-23 09:38:13 -04:00
run-sci.ss Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
run-unit.ss Real Thread/yield + Thread/interrupted (jolt-l2gc) 2026-06-23 00:06:04 -04:00
selfcheck.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
seq.ss java.time DST + data readers: make tick pass fully 2026-06-24 21:30:05 -04:00
smoke.sh Pure-Chez test gates (no Janet) 2026-06-21 11:22:32 -04:00
syntax-quote.ss Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
transients.ss Collection ops carry the receiver's metadata 2026-06-24 13:46:58 -04:00
tree-shake-smoke.sh Tree-shake: count #'x references; multi-app soundness smoke 2026-06-23 20:27:21 -04:00
values.ss refactor: registry pattern for jolt-get + jolt=2 (jolt-lmot) 2026-06-23 23:12:08 -04:00
vars.ss refactor: consolidate transducers, dissolve natives-parity.ss (jolt-jcs7) 2026-06-23 23:50:42 -04:00