jolt/docs
Yogthos 9e9fd19450 core: enforce fn arity in both modes (jolt-6xn); canonical seq-to-map-for-destructuring
Fixed arities now throw Clojure's ArityException shape — 'Wrong number of
args (N) passed to: name' — on any count mismatch; variadic arities on fewer
than their fixed params. The compiled path already enforced fixed arities via
janet's native fn check and multi-arity dispatch; this adds the check to the
interpreter's single-arity closures (the oracle was silently dropping extra
args and giving a raw tuple-index error for missing ones) and guards the
compiled single-variadic wrapper's minimum. Messages carry the fn name when
there is one. 16 spec rows; the update.cljc suite row flipped green (4703 ->
4704).

Enforcement exposed that seq-to-map-for-destructuring had drifted: the spec
row called the 1-arity fn with two args, and the body silently dropped a
trailing unpaired element. Replaced with the canonical Clojure 1.11 version
(even pairs build the map, a single trailing element passes through — so
(f {:b 2}) kwargs calls work — and an unpaired key throws).

Also: transients RFC notes tuple support from the seed-shrink rounds.
2026-06-11 16:20:14 -04:00
..
rfc core: enforce fn arity in both modes (jolt-6xn); canonical seq-to-map-for-destructuring 2026-06-11 16:20:14 -04:00
spec core: one alias store (jolt-ark); '.' classified as the special form it is 2026-06-10 18:37:19 -04:00
building-and-deps.md deps: global gitlibs-style clone cache + :tasks runner 2026-06-10 23:22:36 -04:00
grammar.ebnf docs: consolidate doc/ into docs/ 2026-06-10 12:10:28 -04:00
self-hosting-architecture.md docs: consolidate doc/ into docs/ 2026-06-10 12:10:28 -04:00
self-hosting-compiler.md docs: consolidate doc/ into docs/ 2026-06-10 12:10:28 -04:00
tools-deps.md deps: global gitlibs-style clone cache + :tasks runner 2026-06-10 23:22:36 -04:00