jolt/jolt-core/jolt
Yogthos b4d9eaa527 Read an unknown #tag as a tagged-literal value
An unknown reader tag produced the reader's internal form
{:jolt/type :jolt/tagged :tag :#foo :form bar}, which tagged-literal? didn't
recognize and which leaked as a raw map when printed:

  (tagged-literal? (read-string "#foo bar"))  => false   ; want true
  (pr-str (quote [#foo bar]))                 => "[{:jolt/type :jolt/tagged ...}]"

Both the data path (rdr-construct-tag) and the compile path (emit-quoted) now
build a real tagged-literal for a tag with no registered reader, like Clojure's
*default-data-reader-fn*, so tagged-literal? / :tag / :form / printing all work.
clojure.edn reads raw forms through a separate __read-form-raw path and applies
:readers/:default itself, so it is unaffected.

Re-mint (backend + reader are seed sources); prelude byte-identical, image only.
make test green (selfhost holds, 0 new/stale), +2 unit rows.
2026-07-01 16:17:52 -04:00
..
passes Nilable record types + flow-sensitive nil narrowing (#235) 2026-06-26 17:16:16 +00:00
analyzer.clj Fix seven more JVM divergences (rewrite-clj full suite) 2026-07-01 14:17:03 -04:00
backend_scheme.clj Read an unknown #tag as a tagged-literal value 2026-07-01 16:17:52 -04:00
deps.clj host interop + deps fixes for running ring-defaults on jolt 2026-06-25 04:42:35 -04:00
ir.clj Run core.memoize's test suite on jolt 2026-06-25 13:23:05 -04:00
main.clj Static-link :jolt/native C libraries into built binaries by default 2026-07-01 09:52:00 -04:00
nrepl.clj Fix nREPL server ^C shutdown crash 2026-06-30 19:08:13 -04:00
passes.clj Hintless whole-program double inference (#230) 2026-06-26 14:18:10 +00:00