You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #30 removes temporary allocations from SemVer, RubyGems, and NuGet comparison. The same scanner and stack-buffer approach should help the remaining scheme-specific comparators.
Measured at b8f1741 with Go 1.26.5 on darwin/arm64 using representative version pairs:
PyPI: replace PEP 440 regexp captures and release/local splits, currently about 1.16 µs, 803 B, and 6 allocs/op
Maven: scan separators and digit/letter transitions without builders and temporary slices, currently about 757 ns, 1,392 B, and 20 allocs/op
ALPM: scan typed segments into stack-backed storage, currently about 487 ns, 768 B, and 10 allocs/op
Conan: replace recursive split-based parsing with views or stack-backed items, currently about 702 ns, 824 B, and 19 allocs/op
Gentoo and APK: scan underscore suffixes and dot-separated base components directly, currently about 180 ns, 160 B, and 4 allocs/op
OpenSSL: replace SplitN core parsing with direct indexes, currently about 102 ns, 96 B, and 2 allocs/op
IntDot: compare dot-separated numeric components without temporary slices, currently about 105 ns, 112 B, and 2 allocs/op
Each change should keep exported APIs and scheme ordering unchanged, add differential or parity coverage against current behavior, and include before/after -benchmem results. PyPI and Maven should use separate focused PRs because their ordering rules are more involved.
PR #30 removes temporary allocations from SemVer, RubyGems, and NuGet comparison. The same scanner and stack-buffer approach should help the remaining scheme-specific comparators.
Measured at
b8f1741with Go 1.26.5 on darwin/arm64 using representative version pairs:SplitNcore parsing with direct indexes, currently about 102 ns, 96 B, and 2 allocs/opEach change should keep exported APIs and scheme ordering unchanged, add differential or parity coverage against current behavior, and include before/after
-benchmemresults. PyPI and Maven should use separate focused PRs because their ordering rules are more involved.