jolt/host/chez/java
Yogthos 3d80bdc10b Fix general gaps the hiccup suite shook out
Six correctness fixes, each a general gap (not hiccup-specific):

- deftype is not a map. jolt treated every deftype instance as a map
  (map?/record?/seqable over its fields); in Clojure only a defrecord is
  map-like, a bare deftype is an opaque object. defrecord now marks its type;
  map?/record?/coll?/seq/empty? gate on it, while a deftype implementing a
  collection interface still dispatches through its methods.

- cross-ns extend-protocol on an imported deftype. register-method built the
  type tag from the *calling* ns + bare name, so (extend-protocol P Raw …) in
  one ns missed a Raw value defined in another. A simple-name index resolves
  the bare name to the type's real tag (local ns still wins).

- str vs print. str of a collection is its readable form (nested strings
  quoted: (str ["x"]) => ["x"]); print leaves them raw. jolt defined print
  as str, conflating the two. Split via a __print1 seam.

- clojure.test thrown? now honors the exception hierarchy (instance?), so
  (thrown? IllegalArgumentException …) matches an ArityException subclass.

- java.net.URI is value-equal (= and hash by string form).

- clojure.walk/macroexpand-all was missing; an unresolved qualified var made
  the analyzer report "Unknown class walk".

deftype/defrecord + print are seed sources, re-minted. hiccup 365->381 of its
own suite; the rest are charset-encoding / var-meta niches.
2026-06-26 20:15:39 -04:00
..
async.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
bigdec.ss Add bigdec min/max (review follow-up) 2026-06-25 20:22:26 -04:00
byte-buffer.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
concurrency.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
dot-forms.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
ffi.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
host-class.ss Map raw Chez runtime errors to their JVM exception classes 2026-06-26 17:55:30 -04:00
host-static-classes.ss Class/forName honesty + class/isa? conformance for builtins (#243) 2026-06-26 21:02:44 +00:00
host-static-methods.ss Class/forName honesty + class/isa? conformance for builtins (#243) 2026-06-26 21:02:44 +00:00
host-static.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
inst-time.ss type returns the JVM class (Clojure semantics) (#244) 2026-06-26 21:14:06 +00:00
io-streams.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
io.ss Fix general gaps the hiccup suite shook out 2026-06-26 20:15:39 -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 type returns the JVM class (Clojure semantics) (#244) 2026-06-26 21:14:06 +00:00
natives-queue.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
natives-str.ss Group the JVM interop shims under host/chez/java/ 2026-06-25 18:35:44 -04:00
records-interop.ss Map raw Chez runtime errors to their JVM exception classes 2026-06-26 17:55:30 -04:00