jolt/test/spec
Yogthos 703a59d40b core: close the compile-path gaps that broke uberscripting Selmer + config
Loading these libs via require worked (load-ns-source interprets, macros
expand lazily) but the same code inlined by uberscript routes through
eval-toplevel and compiled, surfacing four gaps:

- a ^{:map} metadata def name reads as (def (with-meta name m) v); the
  analyzer died extracting the name (config.core's defonce env). It now
  throws uncompilable so the interpreter, which handles it, takes over.
- declare was a no-op, so a compiled forward reference to a declared
  name that collides with a janet root binding bound to the host fn
  (selmer.parser's (declare parse) compiled to janet's 1-arg parse).
  declare now expands to no-init defs, the interpreter interns them,
  and the analyzer routes no-init def to the interpreter.
- class? was missing (selmer.util's exception macro calls it at
  expansion time). Always false, like ratio? — no Class objects here.
- require of an unlocatable namespace silently left an empty ns behind,
  deferring the failure to an unresolved symbol far from the cause. It
  now throws like Clojure's FileNotFoundException. Namespaces entered
  in-session count as loaded (Clojure puts them in *loaded-libs*), and
  the SCI bootstrap opts out via :lenient-require? since its
  clj-targeted requires can't all exist on this host.
2026-06-11 01:31:50 -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 core: close the compile-path gaps that broke uberscripting Selmer + config 2026-06-11 01:31:50 -04:00
functions-spec.janet core: java shims for yogthos/config + three conformance fixes 2026-06-11 00:11:04 -04:00
futures-spec.janet core: lazy realization is shared across walks (once-only effects); pmap family 2026-06-10 19:14:49 -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 core: java shims for yogthos/config + three conformance fixes 2026-06-11 00:11:04 -04: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 core: lazy realization is shared across walks (once-only effects); pmap family 2026-06-10 19:14:49 -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 core: three bug fixes — ifn?, prefer-method dispatch, reader comments in map values 2026-06-10 21:03:14 -04:00
namespaces-spec.janet core: close the compile-path gaps that broke uberscripting Selmer + config 2026-06-11 01:31:50 -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: close the compile-path gaps that broke uberscripting Selmer + config 2026-06-11 01:31:50 -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 core: three bug fixes — ifn?, prefer-method dispatch, reader comments in map values 2026-06-10 21:03:14 -04:00
regex-spec.janet regex: \p{...} property classes; interop: the String method surface (cuerdas is green) 2026-06-10 21:29:22 -04:00
sequences-spec.janet core: seq walks over concrete collections are linear (bench TOTAL -18%) 2026-06-10 18:56:19 -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: edn :readers/:default opts; uncaught throws no longer leak the callee's ns 2026-06-10 18:16:06 -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 regex: \p{...} property classes; interop: the String method surface (cuerdas is green) 2026-06-10 21:29:22 -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