jolt/src/jolt
Yogthos 0406b315a9 Dedup the two .method dot-dispatch arms into one dispatch-member (jolt-eos3)
eval-dot copy-pasted its entire dispatch chain across the (. obj method args...)
and (. obj member) forms — string/number/object/tagged-shim lookup duplicated,
hand-synced on every interop change. Extract one dispatch-member that takes the
evaluated args plus a has-args flag. The shared head (string/number/object/
tagged) is single-sourced; the genuinely divergent tails (call form: record →
native field → coll-interop(args); bare form: zero-arg coll-interop → field /
zero-arg method) stay branched on has-args. The guards that differed between the
arms (object-methods checks table? only; tagged dispatch checks table-or-struct;
bare-form tagged dispatch requires the member present) are preserved verbatim,
keyed off has-args, so behavior is identical.

Adds a "dot dispatch arms" spec locking the divergent cases: zero-arg vs
with-arg coll-interop, record/deftype zero-arg vs with-args methods, -field
access. Full gate green.
2026-06-15 04:35:52 -04:00
..
clojure Stdlib/reader fixes to run markdown-clj (#104) 2026-06-15 01:48:15 +00:00
jolt host: ring-core enablement part 2 — class tokens, vendored spork/http, reader-draining slurp 2026-06-11 19:50:52 -04:00
aot.janet core: Stage 3 — retire the bootstrap compiler (compiler.janet deleted) 2026-06-10 13:32:14 -04:00
api.janet Refactor phase 4: lift run-mode into config.janet + fix the cache-key footgun 2026-06-15 03:15:24 -04:00
async.janet feat: core.async Phase 3 — channel transducers + dropping/sliding buffers 2026-06-05 15:40:24 -04:00
backend.janet Refactor phase 2c: split passes.clj into fold/inline/types behind a façade 2026-06-15 01:41:28 -04:00
config.janet Refactor phase 4: lift run-mode into config.janet + fix the cache-key footgun 2026-06-15 03:15:24 -04:00
core.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_coll.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_extra.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_io.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_print.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_refs.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
core_types.janet Refactor phase 2b: split core.janet into cluster modules behind a re-export aggregator 2026-06-15 02:04:17 -04:00
deps.janet deps: :jpm/module coordinates; the janet.* bridge autoloads jpm modules 2026-06-11 20:58:43 -04:00
deps_cli.janet deps: jolt-deps finds the jolt binary next to itself 2026-06-11 21:10:10 -04:00
eval_base.janet Refactor phase 2a: split evaluator.janet + explode eval-list into named handlers 2026-06-15 02:29:23 -04:00
eval_resolve.janet Refactor phase 2a: split evaluator.janet + explode eval-list into named handlers 2026-06-15 02:29:23 -04:00
eval_runtime.janet Refactor phase 2a: split evaluator.janet + explode eval-list into named handlers 2026-06-15 02:29:23 -04:00
eval_special.janet Dedup the two .method dot-dispatch arms into one dispatch-member (jolt-eos3) 2026-06-15 04:35:52 -04:00
evaluator.janet Refactor phase 2a: split evaluator.janet + explode eval-list into named handlers 2026-06-15 02:29:23 -04:00
host_iface.janet Record type hints resolve across namespace boundaries (fields and params) 2026-06-14 12:40:14 -04:00
host_interop.janet Refactor: extract LazySeq from phm.janet into lazyseq.janet (#108) 2026-06-15 04:41:39 +00:00
lazyseq.janet Refactor: extract LazySeq from phm.janet into lazyseq.janet (#108) 2026-06-15 04:41:39 +00:00
loader.janet feat: success checker on by default in direct-link builds, free (jolt audit) 2026-06-13 13:46:16 -04:00
main.janet Refactor phase 4: lift run-mode into config.janet + fix the cache-key footgun 2026-06-15 03:15:24 -04:00
phm.janet Refactor phase 3c: dedup the collection readers and phm bucket scans 2026-06-15 02:58:16 -04:00
phs.janet Refactor: extract PersistentHashSet from phm.janet into phs.janet 2026-06-15 00:54:05 -04:00
plist.janet Architecture refactor: plan + phase 0 (dead code + bugs) (#106) 2026-06-15 03:01:55 +00:00
pv.janet feat: structural-sharing persistent vectors (immutable build) + mutable toggle 2026-06-04 18:56:55 -04:00
reader.janet Refactor phase 3c: dedup the collection readers and phm bucket scans 2026-06-15 02:58:16 -04:00
regex.janet Stdlib/reader fixes to run markdown-clj (#104) 2026-06-15 01:48:15 +00:00
stdlib_embed.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
types.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00
types_ctx.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00
types_ns.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00
types_protocols.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00
types_symbols.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00
types_var.janet Refactor phase 5a: split types.janet into value-layer cluster modules 2026-06-15 02:42:42 -04:00