jolt/stdlib/clojure
Yogthos 8ffc2f68c5 Fix general divergences surfaced by clojure-test-suite
Five fixes shaken out by running jank-lang/clojure-test-suite:

- = short-circuits on identity like Util.equiv's k1 == k2, so (= s s) on an
  infinite lazy seq answers true instead of walking forever. Numbers keep the
  exactness-aware arm ((= ##NaN ##NaN) stays false like the JVM's).
- Calling a non-fn names the operator's CLASS in the ClassCastException, like
  the JVM — never the value, whose printed form may be unbounded: ((range))
  must throw, not hang rendering an infinite seq.
- realized? on a seq cell answers by its forced flag (the rest of a realized
  lazy chain is a cseq under jolt's seq model), and the overlay's unsupported-
  type error names the class, not the (possibly infinite) value.
- clojure.test/is dispatches a REGISTERED assert-expr method before its by-name
  inline paths, like clojure.test where the built-ins are just pre-registered
  methods — so an alias-qualified p/thrown? (the suite's portability helper)
  isn't captured by the built-in thrown? path, which read its body as a class.
- clojure.test tracks tests and fixtures per namespace: deftest records its
  defining ns, use-fixtures registers under the calling ns (no more cross-ns
  clobbering), (run-tests 'ns ...) runs only those namespaces like clojure.test,
  and each run-tests call prints/returns its own summary (global counters stay
  cumulative for the n-pass/n-fail harness API).

Re-mint (20-coll.clj is seed; prelude only). +2 JVM-certified corpus rows;
the clojure-test fixture pins the alias-qualified assert-expr, per-call
summaries, and ns filtering.
2026-07-02 03:46:57 -04:00
..
core core.async: higher-level API over native channels + two general fixes 2026-06-27 13:05:19 -04:00
sci Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
data.clj Clean up codebase: rename stdlib layer, strip porting residue, fix tooling 2026-06-22 22:18:00 -04:00
edn.clj edn: read raw forms so a #tag goes through :readers/:default 2026-06-27 01:15:33 -04:00
pprint.clj Port real clojure.pprint (pretty-printer + cl-format) 2026-06-24 16:09:09 -04:00
set.clj deftype/record: clojure.lang collection interfaces + protocol identity 2026-06-25 00:14:19 -04:00
string.clj Dead-code removal, perf fixes, deterministic seed emission 2026-06-23 01:05:45 -04:00
template.clj Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
test.clj Fix general divergences surfaced by clojure-test-suite 2026-07-02 03:46:57 -04:00
walk.clj Fix six JVM divergences surfaced by rewrite-clj 2026-07-01 12:25:05 -04:00
zip.clj data.zip: add clojure.zip/xml-zip; clojure.xml lives in jolt-lang/xml 2026-06-27 14:49:49 -04:00