jolt/stdlib/clojure
Yogthos 908ad63caa Compile data readers that return code forms
A registered #tag data reader whose fn returns a FORM (borkdude/html's #html
expands to (->Html (str …))) was rewritten to a runtime call (reader-fn 'inner),
so the returned code became a runtime list value instead of being compiled —
(str #html [:div]) rendered the code, not "<div>". Clojure applies a data reader
at read time and substitutes its result as code.

loader.ss now applies the reader at load time: a code form (a list) is spliced in
to be compiled, a value (time-literals #time/date -> a Date) keeps the runtime
call, which also keeps a non-serializable constant out of an AOT build. The build
emit path never applied data readers at all (a #tag literal failed a `jolt build`
with "unsupported form"); emit-image.ss gets an ei-emit-form-hook the build sets
to the same rewrite, left as a no-op elsewhere so the seed mint (which doesn't
load loader.ss) is unaffected and the self-host byte-fixpoint holds.

Also make clojure.test report the actual values of a failing (is (= a b)) — it
printed only the form. Restricted to the common pure predicates so a macro head
still takes the plain path.

Fixture test/chez/datareader-app + a smoke check (interpreted) and a build-smoke
check (AOT). make test green, no corpus change.
2026-07-01 10:57:55 -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 Compile data readers that return code forms 2026-07-01 10:57:55 -04:00
walk.clj Fix general gaps the hiccup suite shook out 2026-06-26 20:15:39 -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