casei: make the audited result publish-ready - #9
Merged
Conversation
The ceiling benchmarks no longer use these folding helpers, and no test calls them. Removing the dead copies keeps the independent reference implementation focused and makes the package clean under staticcheck.
The module promises Go 1.22 support and identical results on its scalar and non-amd64 paths. Test the minimum Go release, disable x86 vector dispatch explicitly, and execute the portable implementation on a native arm64 runner. Also keep race detection in the regular candidate gate.
The full experimental Go SIMD migration is a measured negative result: it preserved correctness but regressed a required field row. Record the alternating measurements and the generated-code mechanism, and align the novelty decisions with the repository's result-based contribution bar so known techniques remain available as ingredients.
The full table contains a 1.07x lead even though the narrowest long streaming row is 1.10x. State the overall range from the complete 33-row result, and describe the linked Perfloop measurements as public rather than sealed.
The public documentation should prove the usage it advertises. Add external-package examples for Unicode IndexFold, ContainsFold, and a compiled multi-pattern Matcher so pkg.go.dev displays them and CI checks their output.
Owner
Author
Owner
Author
|
Exact-tree publication proof for
Each host cloned the PR branch, detached the exact commit above, and ran the unmodified Hosted CI is also green across the candidate, minimum-Go, portable-arm64, and native-field arena jobs. This closes the exact-tree evidence mismatch recorded in the earlier closing comment. |
tsenart
marked this pull request as ready for review
August 21, 2026 17:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Result
caseiwins all 33 on Ice Lake and Sapphire Rapids with AVX-512F/BW/VBMI. The median lead over the fastest correct alternative is 1.9x and 1.6x.caseiwins two and loses three on both hosts. The worst loss is 9.86x on Ice Lake and 9.18x on Sapphire Rapids.What this changes
Benchmark coverage correction
Five single-needle count scenarios existed during the original engine build, but
BenchmarkBarmistakenly timed only their first match. Commitc4392e7corrected that wiring before the publication runs, andcaseistill won all five. The arena still has no multi-pattern enumeration row and none of Rebar's real count/count-spans workloads. The README and Rebar audit now state this process gap near the top.Acceptance evidence
x_vs_best=1, with five to seven entrants per row;caseireport 512-bit dispatch, with Vectorscan VBMI active;Release gate
v0.1.0is retracted because its AVX-512 pair-tail route could miss a match. After this PR merges, the corrected tree needs a new patch tag before the publicgo get github.com/tsenart/caseiinstruction is safe.