jolt/host/chez/java
Yogthos 0b07b376bb Resolve .method calls through a priority arm registry
record-method-dispatch was rebound with (set! record-method-dispatch ...) in six
files, each wrapping the previous binding, so precedence was whatever the rt.ss
load order happened to be — the true outermost arm was inst-time's Date arm, not
the one you'd guess. A type-gated wrapper that only whitelists its own methods
then errored on everything else, stealing universal Object methods from the arms
beneath it: (.getClass (java.util.Date.)) threw "No method getClass on Date",
same for File, while (class ...) and (.getClass "s") worked.

Replace the wrapper stack with an ordered list of arms (register-method-arm!,
ascending priority), each returning 'pass to defer. getClass is now one arm at
the top reached by every value, so it can't be shadowed; the three duplicate
getClass checks (dot-forms, host-static, base) collapse into it. Each former
wrapper is an arm at an explicit priority instead of an implicit load-order slot.
A library can register its own arm rather than set!-wrapping the dispatcher.

Runtime only, no re-mint. make test green (0 new/stale divergences), +1 corpus
row for getClass on Date/File.
2026-07-01 15:52:24 -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 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
class-hierarchy.ss Derive class identity from one hierarchy graph 2026-07-01 15:38:04 -04:00
concurrency.ss Don't abort startup on Windows resolving POSIX signal fns 2026-07-01 14:23:19 -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 Resolve .method calls through a priority arm registry 2026-07-01 15:52:24 -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 Resolve .method calls through a priority arm registry 2026-07-01 15:52:24 -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 spec.alpha: reify ILookup get, NPE/CCE, quoted #inst/#uuid, anon-fn class, kwargs map 2026-06-27 21:56:04 -04:00