jolt/test
Yogthos 279c8e176b perf: generation-guarded inline cache for host-value protocol dispatch
Host-value protocol dispatch (a protocol extended to Number/String/… called on a
host value) recomputed the candidate type-tag list and walked the registry — up
to ~15 map lookups plus an array alloc — on every call. It now caches
(most-specific-host-tag, protocol, method) -> fn, guarded by a registry
generation that bumps in register-protocol-method; re-extending a protocol
invalidates the cache. The single-lookup fast paths (deftype protocol dispatch,
direct multimethod dispatch) are untouched — they're already cheap, so no cache
overhead there. The multimethod hierarchy-fallback cache (narrower: only
derive-based dispatch) is deferred.

Test in test/integration/dispatch-cache-test.janet covers correctness under
re-extension in all three modes. Conformance 218/218; battery 3916.
2026-06-06 17:38:44 -04:00
..
integration perf: generation-guarded inline cache for host-value protocol dispatch 2026-06-06 17:38:44 -04:00
spec destructuring compliance, deps.edn comments, clojure.java.io shim 2026-06-06 01:01:04 -04:00
support feat: core.async Phase 3 — channel transducers + dropping/sliding buffers 2026-06-05 15:40:24 -04:00
unit vars: add per-var generation counter, bumped on root change 2026-06-06 16:47:44 -04:00