reader: one-char literals for non-symbol chars (\{ \( \, \%)

read-char read the char name with symbol-char?, so a literal whose char isn't a
symbol char (\{, \(, \), \,, \%, …) came back as an empty name and errored
'Unsupported character'. Now a single non-symbol char after \ is taken as a
one-character literal of that char. Surfaced by funcool/cuerdas (uses \{), which
now loads. Spec cases added.
This commit is contained in:
Yogthos 2026-06-06 00:10:17 -04:00
parent b3a145f124
commit d724aa7069
3 changed files with 18 additions and 5 deletions

View file

@ -86,8 +86,9 @@ env read would be frozen at build).
libs and reports load/run status (network-gated behind `JOLT_CONFORMANCE=1`, so
CI stays offline). First run:
- `medley` — loads and runs.
- `cuerdas` — fails to load: the reader rejects a char/literal it uses
(`Unsupported character: \`). A genuine reader gap to chase.
- `cuerdas` — now loads (it used `\{`, a one-char literal the reader rejected;
fixed). A function (`kebab`) still hits a separate runtime gap — a smaller,
per-function issue rather than a whole-namespace failure.
- `stuartsierra/dependency``Long/MAX_VALUE`: JVM interop, so out of scope
(it isn't actually pure-`cljc`).