jolt/test
Yogthos 023fe637ce core: move for to the syntax tier (and fix multi-group :when)
Port of core-for: desugar a comprehension to nested map/mapcat over the binding
colls, :let -> let*, :while -> take-while on the coll. Lives in 00-syntax because
doseq (already there) expands to it; the macro body uses only kernel/seed fns so it
runs at analyzer-build time. doseq no longer depends on a Janet macro.

Fixed a latent bug the Janet macro had: :when wrapped the inner form in (list ...)
unconditionally, but for an outer binding group the inner form is already a seq, so
mapcat produced a seq-of-seqs instead of flattening. e.g.
  (for [x [0 1] :when (odd? x) y [:a :b]] [x y])
gave ((... ...)) instead of ([1 :a] [1 :b]). Now the (list ...) wrap is only applied
to the last group's scalar body; outer groups contribute their seq directly. Added
:let+:when, multi-group :when, and destructuring regression cases.

conformance 228x3, fixpoint, clojure-test-suite 3930, full suite green, bench flat.
2026-06-07 16:55:21 -04:00
..
bench core migration: phase 0 audit + perf baseline (jolt-1j0) 2026-06-06 22:54:07 -04:00
clojure-stdlib/clojure stdlib: port clojure.data, rewrite clojure.zip; fix with-meta nil; add battery 2026-06-06 19:02:26 -04:00
integration test: regression coverage for the core migration + the two bug fixes 2026-06-06 23:51:13 -04:00
spec core: move for to the syntax tier (and fix multi-group :when) 2026-06-07 16:55:21 -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