Skip to content

v9.4.1

@johnnyt johnnyt tagged this 13 Sep 16:35
Patch release over 9.4.0, carrying the string-literal non-ASCII fix and
the canonical-spelling flag that had been sitting unreleased.

- `@version` in mix.exs moves 9.4.0 -> 9.4.1.
- The changelog.d/px-353.md and px-0gc.md fragments are assembled into a
  dated `## [9.4.1]` section in CHANGELOG.md, grouped Added / Fixed, and
  both fragments are deleted.
- The README install pin stays `{:predicator, "~> 9.4"}`. A patch release
  leaves it alone, per .claude/wurk/release.md - the two carriers agree on
  major and minor and say nothing about patch.

Patch and not minor: nothing public moved. `:canonical` is a new key on an
existing `Predicator.Vocabulary.operators/0` entry rather than a new
function, and the other entry is a lexer bug fix - a string literal keeps
its non-ASCII codepoints instead of truncating each to one byte, and a
`\u` escape is refused by name rather than silently decoding.

Also trims the `\uXXXX` refusal comment in lib/predicator/lexer.ex: the
rationale no longer appeals to other implementations having to match a
grammar addition (ADR-0003 has the Elixir implementation leading the ISA),
only to a bug fix having no mandate to add grammar.

Refs: px-3cd
Assets 2
Loading