jolt/host/chez/java
Yogthos d4acd69a73 Derive class identity from one hierarchy graph
instance?, extend-protocol dispatch, isa?/supers/ancestors, and the exception
hierarchy each read their own hand-kept table, and those tables had drifted:
(instance? clojure.lang.Associative [1 2]) was true but a protocol extended to
Associative wouldn't dispatch to a vector; keyword/IFn and seq/Seqable had the
same split; (isa? ExceptionInfo RuntimeException) was false and
(supers NumberFormatException) was empty.

Add one FQN -> direct-supers graph (class-hierarchy.ss) and derive the views
from it. value-host-tags builds on the graph closure so a vector reports
Associative/Indexed/ILookup/Counted/Seqable, a keyword reports IFn, a seq
reports Seqable/List/Counted, etc. instance? now tests membership in that same
list, so it can't disagree with dispatch. canonical-host-tag recognizes any
modeled class (was a separate literal set missing Seqable/ILookup/...).
class-direct-supers unions the graph edges and class-supers returns the
transitive closure, so the exception hierarchy answers isa?/supers/ancestors.

The graph is open: jolt.host/register-class-supers! lets a library graft its
own classes on and get every view for free.

Runtime only, no re-mint. make test green (0 new/stale divergences), +3
JVM-certified corpus rows.
2026-07-01 15:38:04 -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 spec.alpha: (symbol var), Compiler/demunge, MultiFn .dispatchFn/.getMethod, fn .applyTo 2026-06-27 20:46:33 -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 Derive class identity from one hierarchy graph 2026-07-01 15:38:04 -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 Fix seven more JVM divergences (rewrite-clj full suite) 2026-07-01 14:17:03 -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 six JVM divergences surfaced by rewrite-clj 2026-07-01 12:25:05 -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