All notable changes to meme-clj will be documented in this file.
The format is based on Keep a Changelog.
register! API for guest languages with custom preludes, rewrite rules, and parsers (meme.alpha.platform.registry)?x/??x pattern variables, cycle detection, and fixed-point iteration (meme.alpha.rewrite)meme.alpha.rewrite.tree)meme.alpha.pipeline.contract)step-expand-syntax-quotes before eval, matching the user-code path. Previously, syntax-quote in prelude files caused runtime errors.maybe-call now rejects nil, true, false as call heads (matching the existing guard in parse-call-chain). Previously, reader conditionals resolving to these values could silently produce invalid forms.build-tree now validates expected delimiters after #? and #:ns prefixes (matching the main parser). Previously, malformed tokens caused silent off-by-one parsing.doc/development.md (now points to CLAUDE.md).MemeRaw, MemeSyntaxQuote, and other AST node defrecords satisfy (map? x), causing silent mishandling in expand-sq, normalize-bare-percent, find-percent-params, pp, and max-percent-n. All dispatch sites now guard with forms/raw?, forms/syntax-quote?, etc. before the (map? form) branch.#?@(:clj [2 3]) inside a collection now correctly splices elements ([1 #?@(:clj [2 3]) 4] produces [1 2 3 4], not [1 [2 3] 4]). Non-sequential splice values produce a clear error.+42N and +3/4 now parse correctly. BigInteger constructor rejects leading +; sign is now stripped before construction (matching hex/octal/radix branches).nil(x), true(x), false(x) now rejected at parse time with a clear error instead of silently producing unprintable forms.x `` now correctly produces double-quoting (code that generates the inner expansion), matching Clojure's behavior. Previously the inner expansion was returned directly, losing one nesting level.expand-sq, expand-syntax-quotes, expand-forms) moved from meme.alpha.parse.reader to new meme.alpha.parse.expander namespace.strip-internal-meta) and percent-param-type extracted to meme.alpha.forms to prevent drift between reader and printer.test-cljs to deploy job dependencies).Initial public alpha release.
:meme/sugar metadata preservationMemeSyntaxQuote), expanded before evalMemeRaw) for numbers/chars/strings with alternate notation:read-cond :preserve option for lossless reader conditional roundtrips:incomplete continuation protocol.memeCan you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |