Releases
v2.2.0
Compare
Sorry, something went wrong.
No results found
Immutable
release. Only release title and notes can be modified.
2.2.0 (2026-10-15)
Features
api: build a DFA alongside a single regex with RegexBuilder::dfa (#367 ) (3a463c7 )
bench: add source-backed regex comparison corpus (8351c44 )
bench: compare regexr and source-backed tokenizer workloads (508a30a )
bench: publish verified Blacksmith regex results (28e54a0 )
Bug Fixes
bench: distinguish standard and error-aware Ferroni APIs (3f6ce91 )
ci: reuse registered Blacksmith workflow for comparison (e27adf6 )
deps: update actions/download-artifact action to v8 (#376 ) (4340b2b )
deps: update dependency jdx/mise to v2026.10.10 (#374 ) (2a692ca )
deps: update dependency lucide-react to v1.55.0 (94f7fb9 )
deps: update docs site (#375 ) (bd30ea6 )
deps: update github actions (88b27c1 )
regcomp: compile possessive one-character repeats as C's PUSH/POP loop (4304395 )
regexec: return the longest match only for a compiled FIND_LONGEST (18dbc76 )
regexec: step the character map search over malformed UTF-8 as C does (a84b15e )
scanner: key the pre-filter's last recorded state by cache clear (#365 ) (f2dee22 )
Performance Improvements
api: answer "match" from an exact seek without a retry bound (#378 ) (7794755 )
api: answer is_match from an under-approximating accept seek (#387 ) (80ff3b4 )
api: reject capture searches with the seek and attempt only the anchored start (#379 ) (e77e68f )
api: track captures in the first attempt and skip repeated searches after empty matches (#381 ) (01230d3 )
compile: cut the cost of Regex::new passes (#363 ) (78fd11c )
dfa: keep seeks exact across compiler-made possessive groups (#383 ) (fbba07c )
regcomp: possessify greedy repeats across optional groups, alternations and end anchors (#385 ) (da2642f )
regcomp: run \X as one instruction and narrow multibyte lead bytes after look-behinds (#384 ) (f1fdcdc )
regcomp: run bounded single-class repeats as counted loops (#386 ) (f8f0611 )
regex: batch failed forward guards in the interpreter (#362 ) (42bb9c9 )
regex: batch short ASCII look-behinds in CSS scanning (#357 ) (d791bf1 )
regex: cut fixed per-search costs and decide long guard chains with skip gates (#366 ) (3b38e91 )
regexec: fuse word look-behinds and honor the stack limit in fused paths (#368 ) (3ec52ea )
regexec: skip lazy-loop positions to the required literal and inline one-byte look-behinds (#380 ) (dfaef12 )
scanner: cheaper DFA pre-filter scans and builds, plus a cold replay lane (#364 ) (5e93328 )
seek captured lazy dot loops (bfe4ccb )
unicode: decide grapheme breaks with a property table and an ASCII fast path (#377 ) (b6e4b12 )
You can’t perform that action at this time.