Release v2.0.3
Release Date: 2026-09-13
🐞 Fix
- [797e711] sanitize regexp sentinals (#559) (#437)
- [5806547] handle -0 correctly (#560)
- [a4e063e] add recovery for poison-pill input (#437) (#557)
- [0eccfae] race condition in pruner (#554)
- [eb390fa] Use JSON Unicode escapes in regexp test
- [2f00640] Test supplementary regexp matching
- [277481f] Refine supplementary character class test
- [96b5441] Accept supplementary Unicode in regexp character classes (#564)
- [ab73819] teach Printer about MatcherBuildMode (#544)
👩🎨 Improve
- [034a018] get rid of CodeQL
- [8a67541] miscellaneous polish
- [edc66b7] add research mainline which generates CSV data
- [d89e1e4] add research mainline which generates CSV data
📖 Pattern Language
📚 Documentation
- [21e00ae] fix typos in README "Compiling for specific architectures"
- [05ed0a4] fix typos and grammar across docs, comments, and tests
- [fcce28d] remove superpowers plan/spec design docs
- [8c8446a] record self-only sentinel benchmark results
- [48844f5] implementation plan for self-only closure sentinel
- [00251fc] spec for self-only epsilon-closure sentinel
- [18547f6] record epsilon/step immutability verification for closure prune
- [534327a] implementation plan for incremental epsilon closure
- [5fe237b] spec for incremental epsilon closure via walk pruning
🤖 API
- [9d4f2d2] Add Get/Set MatcherBuildMode
- [420c524] lose memory budget, add GetMatcherStats()
- [e8f5df9] lose memory budget, add GetMatcherStats()
- [21fecea] lose memory budget, add GetMatcherStats()
- [5a50971] Add Get/Set Memory Budget
⚠️ BREAKING
📖 Commits
- [797e711] fix: sanitize regexp sentinals (#559) (#437)
- [5806547] fix: handle -0 correctly (#560)
- [a4e063e] fix: add recovery for poison-pill input (#437) (#557)
- [034a018] kaizen: get rid of CodeQL
- [0eccfae] fix: race condition in pruner (#554)
- [f6298d0] Merge branch 'main' into dependabot/github_actions/actions/setup-go-7.0.0
- [e0a6826] build(deps): bump actions/setup-go from 6.5.0 to 7.0.0
- [5a7f2ab] Merge branch 'main' into dependabot/github_actions/actions/checkout-7.0.1
- [4eb413b] build(deps): bump actions/checkout from 7.0.0 to 7.0.1
- [e16d12a] Merge branch 'main' into dependabot/github_actions/github/codeql-action/init-4.37.9
- [2d36a6d] build(deps): bump github/codeql-action/init from 4.36.2 to 4.37.9
- [612dbe8] Merge branch 'main' into dependabot/github_actions/github/codeql-action/analyze-4.36.3
- [e75c0f6] Merge branch 'main' into dependabot/github_actions/github/codeql-action/analyze-4.36.3
- [58cf29b] Merge branch 'main' into dependabot/github_actions/github/codeql-action/autobuild-4.36.3
- [cc74353] Merge branch 'main' into dependabot/github_actions/golangci/golangci-lint-action-9.3.0
- [b9f3b86] Merge branch 'main' into dependabot/github_actions/actions/setup-go-6.5.0
- [eb390fa] fix: Use JSON Unicode escapes in regexp test
- [2f00640] fix: Test supplementary regexp matching
- [277481f] fix: Refine supplementary character class test
- [96b5441] fix: Accept supplementary Unicode in regexp character classes (#564)
- [e6c83ac] build(deps): bump github/codeql-action/analyze from 4.36.2 to 4.36.3
- [ecc4e54] build(deps): bump github/codeql-action/autobuild from 4.36.2 to 4.36.3
- [9fab519] build(deps): bump golangci/golangci-lint-action from 9.2.1 to 9.3.0
- [ffa77c1] Merge branch 'main' into dependabot/github_actions/actions/setup-go-6.5.0
- [dac2117] pat: treat {0,} quantifier as * to avoid nil-pointer panic (#558)
- [1453271] build(deps): bump actions/setup-go from 6.4.0 to 6.5.0
- [de47632] beef up testing
- [ab73819] fix: teach Printer about MatcherBuildMode (#544)
- [58cedd6] build(deps): bump actions/checkout from 6.0.3 to 7.0.0
- [3631b45] Simplify closureForState in epsilon closure
- [8a67541] kaizen: miscellaneous polish
- [7d8f991] Merge branch 'main' into fix-more-typos
- [21e00ae] docs: fix typos in README "Compiling for specific architectures"
- [05ed0a4] docs: fix typos and grammar across docs, comments, and tests
- [3f319f0] Merge branch 'main' into comfort-and-speed
- [75ff97c] Merge branch 'main' into dependabot/github_actions/codecov/codecov-action-7.0.0
- [8251cbe] build(deps): bump codecov/codecov-action from 6.0.1 to 7.0.0
- [d6333aa] Merge branch 'main' into dependabot/github_actions/github/codeql-action-4.36.2
- [8945f1c] Merge branch 'main' into dependabot/github_actions/actions/checkout-6.0.3
- [9d4f2d2] api: Add Get/Set MatcherBuildMode
- [11ff439] Update README with performance testing details
- [091ec0b] Fix formatting and spelling in README.md
- [e2ab69b] Update README with test machine specifications
- [0fb502d] Update README with AMD Threadripper testing info
- [8b50c0a] Add compiling for specific architectures section
- [36486fd] epsi_closure: drop sync.Pool for a matcher-owned closureBuffers cleared per AddPattern
- [76b2051] nfa: fix stale nfa2Dfa start-closure comment
- [f234c4a] nfa: pass faStates to the value-matcher start merges
- [3b6e169] test: rewrite TestEpsilonClosureRequired with interior-spinner a*z
- [fcce28d] docs: remove superpowers plan/spec design docs
- [a43a651] epsi_closure: note the post-dedup self-only branch is an uncovered optimization
- [f088b2b] nfa: fix traverseNFA start-closure comment rationale
- [2d472e8] epsi_closure: add high-level overview of closure construction
- [a63957e] value_matcher: rename vmFields.startState to start
- [83492f8] epsi_closure: clarify why the buffer pool uses sync.Pool
- [03c455e] memory_cost: drop impossible nil guard on epsilons walk
- [28f1ff7] dedup_key: drop redundant stepsLen from tableShareKey
- [0049695] epsi_closure: document closureGen/closureRep tableMark fields
- [90062c4] gofmt: fix struct field alignment in faState
- [e6ef837] build(deps): bump github/codeql-action from 4.36.0 to 4.36.2
- [c2b6bbf] Resolve CPU profile merge conflict.
- [d855451] Merge branch 'main' into embed-smalltable
- [d867968] build(deps): bump actions/checkout from 6.0.2 to 6.0.3
- [8c8446a] docs: record self-only sentinel benchmark results
- [ebd46bd] epsi_closure: document closure sentinel encoding; fix stale test guards
- [033aacb] epsi_closure: store {self} closures as a zero-alloc sentinel
- [e5b1370] nfa: add len==0 self-only discriminator to closure consumers
- [48844f5] docs: implementation plan for self-only closure sentinel
- [00251fc] docs: spec for self-only epsilon-closure sentinel
- [f96e39a] epsi_closure: address review — reset walk counter, clarify comments
- [5976a4f] epsi_closure: prune closure walk at already-closed states
- [20c980d] research: add -cpuprofile flag for profiling the harness
- [a6c44a9] test: order-independence guard for incremental epsilon closure
- [18547f6] docs: record epsilon/step immutability verification for closure prune
- [534327a] docs: implementation plan for incremental epsilon closure
- [5fe237b] docs: spec for incremental epsilon closure via walk pruning
- [edc66b7] kaizen: add research mainline which generates CSV data
- [885141d] Merge remote-tracking branch 'origin/main' into embed-smalltable
- [d89e1e4] kaizen: add research mainline which generates CSV data
- [3242841] state_lists: dedup intern() via sort+compact, drop the seen map
- [69415ce] epsi_closure: pool buffers, restore two-counter dedup
- [408dc57] state_lists: gofmt comment alignment
- [44069ae] state_lists, nfa: use map[K]bool for sets, matching quamina convention
- [f5b75ba] memory_cost: use cap(singleton) not len(singleton)
- [9e71c62] nfa: document map[K]struct{} set idiom in simplifyCollect
- [0cc7434] epsi_closure: restore field-level comments on closureBuffers
- [5225540] memory_cost_test: clarify singleton-optimization comment
- [b8d2149] tests: recalibrate size assertions after embedding smallTable
- [2559315] nfa: embed smallTable into faState by value
- [c6d4ef1] epsi_closure: dedup via tableShareKey instead of *smallTable
- [ee7c58f] dedup_key: add tableShareKey for post-embed smallTable identity
- [6bddf82] memory_cost: fix nil-deref in GetMatcherStats for singleton valueMatchers
- [2326bc0] tests: recalibrate size assertions after gen-state side-tables move
- [32dc2a9] nfa: move build-time gen state off smallTable/faState to side tables
- [acc18e4] Merge branch 'main' into regex-nfa-dfa-benchmarks
- [b95f272] Merge branch 'main' into pool-nfa-buffers
- [e5e8c0f] Merge branch 'main' into dependabot/github_actions/golangci/golangci-lint-action-9.2.1
- [420c524] api: lose memory budget, add GetMatcherStats()
- [e8f5df9] api: lose memory budget, add GetMatcherStats()
- [21fecea] api: lose memory budget, add GetMatcherStats()
- [72f0ddd] build(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1
- [3a405af] build(deps): bump codecov/codecov-action from 6.0.0 to 6.0.1
- [eebe090] Merge branch 'main' into dependabot/github_actions/github/codeql-action-4.35.5
- [448ae78] build(deps): bump github/codeql-action from 4.35.2 to 4.36.0
- [456a2b3] Merge branch 'main' into dependabot/github_actions/actions/dependency-review-action-5.0.0
- [b1125ba] workload_bench_test: add 10 workload characterization benchmarks
- [9be77af] regex_nfa_dfa_bench: fix ZWJEmoji bench to guarantee match per iteration
- [de515ee] Fix comment.
- [8dba44d] Fix comment.
- [9a468fd] Add a benchmark targeting NFA DFA tradeoffs.
- [dc31f50] build(deps): bump actions/dependency-review-action from 4.9.0 to 5.0.0
- [0ad0660] build(deps): bump benchmark-action/github-action-benchmark
- [6c41e75] Merge branch 'main' into pool-nfa-buffers
- [6908cb3] Merge branch 'main' into pool-nfa-buffers
- [b96ef09] memory_cost_test: widen TestStringFA budget margin
- [1d0fdbd] Merge branch 'main' into nfa-step-simplify
- [50cdd72] Merge branch 'main' into nfa-step-simplify
- [f327b57] Merge branch 'main' into dependabot/github_actions/github/codeql-action-4.35.2
- [db53f13] Merge branch 'main' into dependabot/github_actions/andstor/file-existence-action-3.1.0
- [48955e9] more golangci-lint
- [a419407] sync up golangci-lint
- [565b42f] clean-up
- [69978f9] core_matcher: pool nfaBuffers and flattener in the test helper path
- [e33139f] nfa: simplify smallTable.step, eliminate per-traverse stepOut alloc
- [e70dccb] build(deps): bump github/codeql-action from 4.35.1 to 4.35.2
- [5a50971] api: Add Get/Set Memory Budget
- [827452c] build(deps): bump andstor/file-existence-action from 3.0.0 to 3.1.0
- [8154948] build(deps): bump benchmark-action/github-action-benchmark
- [424b189] Merge branch 'main' into dependabot/github_actions/actions/setup-go-6.4.0
- [0e3154c] build(deps): bump actions/setup-go from 6.3.0 to 6.4.0
- [d48db0d] Merge branch 'main' into dependabot/github_actions/github/codeql-action-4.35.1
- [17b2cbf] build(deps): bump github/codeql-action from 4.34.1 to 4.35.1
- [9d36c2e] build(deps): bump codecov/codecov-action from 5.5.3 to 6.0.0
- [29edcb3] build(deps): bump github/codeql-action from 4.33.0 to 4.34.1
- [0109809] build(deps): bump codecov/codecov-action from 5.5.2 to 5.5.3
- [3b1a87a] build(deps): bump github/codeql-action from 4.32.6 to 4.33.0