jolt/test
Yogthos d35783bf1b Reject a malformed catch clause with a clean error in both modes
jolt's catch is (catch class binding body*); the binding (3rd element) must be
a symbol. Neither the analyzer nor the interpreter validated it, so a non-symbol
binding crashed with an internal Janet error (expected integer key for array...)
and, in the interpreter, a malformed clause whose body never threw was silently
swallowed (returned the try value). Clojure rejects a non-class/non-symbol catch
clause; match that with an up-front error in analyze-try and eval-try.

Surfaced building the Chez try/throw emit. Regression rows in exceptions-spec
(runs x3 modes) plus a unit test asserting the clean message in interpret and
compile. jolt-kg6p.
2026-06-17 17:25:14 -04:00
..
bench Parallelize the test gate; cache cold-init tests, drop the benchmark from it (#139) 2026-06-16 14:23:02 +00:00
chez Chez Phase 1 (increment 3e): throw/try/catch/finally + ex-info 2026-06-17 17:10:38 -04:00
clojure-stdlib/clojure Compiler research (#10) 2026-06-09 07:30:25 +08:00
fixtures/cgen-build cgen: single-binary native build via jolt cgen-build (jolt-a7ds) (#150) 2026-06-16 20:34:10 +00:00
integration jolt.png: host PNG encoder + overlay, render mandelbrot/raytracer demos (#152) 2026-06-16 21:07:10 +00:00
spec Reject a malformed catch clause with a clean error in both modes 2026-06-17 17:25:14 -04:00
support core: AOT context image — init-cached recovers the bootstrap cost across processes 2026-06-10 13:57:37 -04:00
unit Reject a malformed catch clause with a clean error in both modes 2026-06-17 17:25:14 -04:00