jolt/test/spec
Yogthos d06b3fe636 spec: rows for every untested var (131 -> 0); the probes found five real bugs
test/spec/untested-vars-spec.janet adds 143 rows asserting jolt's documented
behavior for the whole implemented-untested category — primed arithmetic,
the array/aset/coercion stubs, unchecked-*, the chunk family, JVM-shape
stubs (class/bean/proxy/memfn as resolve-only or :throws), ns/REPL
machinery, and the misc seqs. tools/spec_coverage.py now checks each var as
a whole TOKEN in the test sources (call-position-only matching missed *1,
+', ., .., /, and bare transducer refs like cat).

Writing rows from probed truth surfaced five real bugs, all fixed:
- comp with a jolt-IFn stage silently returned nil ((comp seq :content)) —
  raw Janet keyword application is not jolt invoke. comp is the canonical
  overlay defn now (fixed-arity composed fn, so the hot 1-arg path is two
  direct calls); the seed keeps a private td-comp only for the transducer
  machinery. hof bench +9% vs native, the price of correct IFn dispatch.
- extend (the fn) was a nil-expanding stub MACRO shadowing any definition;
  it's a real fn over register-method now, and extends? (a constant-false
  stub) is real over extenders
- (.. x f g) hit the 'ClassName.' constructor branch (a name ending in a
  dot) and died; .. is the canonical threading macro now
- aclone errored on pvecs; ns-interns/ns-imports returned live host tables
  that count/seq reject (now structs)

Thread/sleep + Thread/yield land as Thread statics beside Math/: sleep parks
the WORKER's own event loop (each future thread has one), which makes timed
deref provably fire — futures-spec gains the timeout-fires, sleep-in-body,
and timed-out-future-still-completes rows. The futures impl itself already
ran on real OS threads (ev/spawn-thread + marshalled results); jolt-ejx was
stale.

Dashboard: implemented+tested 433 -> 564 of 694; implemented-untested and
missing-portable are both EMPTY. Gate: jpm exit 0, all tests passed.
2026-06-10 17:52:30 -04:00
..
control-flow-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
core-async-spec.janet feat: core.async Phase 3 — channel transducers + dropping/sliding buffers 2026-06-05 15:40:24 -04:00
destructuring-spec.janet Stage2 compile only (#12) 2026-06-09 14:20:38 -04:00
exceptions-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
forms-spec.janet Jank derived spec tests (#17) 2026-06-10 09:39:33 +08:00
functions-spec.janet core: Stage 3 — leaf batch 4: sort-by + the rand family + char tables to the overlay 2026-06-10 16:30:17 -04:00
futures-spec.janet spec: rows for every untested var (131 -> 0); the probes found five real bugs 2026-06-10 17:52:30 -04:00
hierarchy-spec.janet core: Stage 3 — the hierarchy system is pure Clojure (canonical port) 2026-06-10 13:19:05 -04:00
host-interop-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
inst-spec.janet core: #inst instant values + syntax-quote literal collapse (spec 2.3/2.4) 2026-06-10 12:19:23 -04:00
io-spec.janet core: Stage 3 — the *in* reader family is Clojure (50-io tier) 2026-06-10 14:52:40 -04:00
lazy-seqs-spec.janet test: fold phase ports into spec; promote compile-mode test 2026-06-05 01:07:09 -04:00
lists-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00
macros-spec.janet core: spec 35-var batch A — 1.11 parsers, map/partition variants, with-redefs, ns fns 2026-06-10 11:16:54 -04:00
maps-spec.janet core: staged recompile for early defns; keys/vals/empty? leave the seed (jolt-4j3) 2026-06-10 16:16:23 -04:00
metadata-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
missing-vars-spec.janet core: the last seven missing-portable vars — coverage gap closed (jolt-brh) 2026-06-10 17:22:28 -04:00
multimethods-spec.janet test: fold phase ports into spec; promote compile-mode test 2026-06-05 01:07:09 -04:00
namespaces-spec.janet core: spec 35-var batch A — 1.11 parsers, map/partition variants, with-redefs, ns fns 2026-06-10 11:16:54 -04:00
nrepl-spec.janet feat(nrepl): nREPL server + client in Clojure on a Janet interop bridge 2026-06-05 21:25:23 -04:00
ns-var-spec.janet core: *ns* — the current-namespace dynamic var 2026-06-10 13:05:15 -04:00
numbers-spec.janet core: spec 35-var batch A — 1.11 parsers, map/partition variants, with-redefs, ns fns 2026-06-10 11:16:54 -04:00
predicates-spec.janet core: Stage 3 turn 2a — close the implicit Janet root-env leak 2026-06-10 12:43:08 -04:00
protocols-spec.janet test: fold phase ports into spec; promote compile-mode test 2026-06-05 01:07:09 -04:00
reader-forms-spec.janet core: #inst instant values + syntax-quote literal collapse (spec 2.3/2.4) 2026-06-10 12:19:23 -04:00
reader-syntax-spec.janet reader: feature set #{:jolt :default}, clause-order matching (RFC 0002) 2026-06-10 11:40:06 -04:00
regex-spec.janet Comprehensive spec (#19) 2026-06-10 20:33:22 +08:00
sequences-spec.janet core: spec 35-var batch A — 1.11 parsers, map/partition variants, with-redefs, ns fns 2026-06-10 11:16:54 -04:00
sets-spec.janet core: Stage 3 — sorted collections are pure Clojure (canonical port) 2026-06-10 14:39:02 -04:00
sorted-spec.janet core: Stage 3 — sorted collections are pure Clojure (canonical port) 2026-06-10 14:39:02 -04:00
stage3-io-ns-spec.janet core: Stage 3 turn 2b — host IO, ns introspection, thread-binding family 2026-06-10 12:53:47 -04:00
state-spec.janet test: fold ported-clojure batteries into spec 2026-06-05 07:50:16 -04:00
strings-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00
transducers-spec.janet fix: transducers/reduce short-circuit over infinite seqs via reduced 2026-06-05 09:18:35 -04:00
transients-spec.janet feat(strictness): subs validates bounds; assoc! bounds-checks vector index 2026-06-05 14:07:14 -04:00
truthiness-spec.janet test: fold ported-clojure batteries into spec 2026-06-05 07:50:16 -04:00
untested-vars-spec.janet spec: rows for every untested var (131 -> 0); the probes found five real bugs 2026-06-10 17:52:30 -04:00
uuid-spec.janet core: proper uuid support — fix random-uuid, add parse-uuid, real uuid values 2026-06-10 10:27:24 -04:00
vectors-spec.janet Compiler research (#10) 2026-06-09 07:30:25 +08:00