What's Changed
Full Changelog: v2.2.0...v2.3.0
Performance
- Line-aligned chunk splitting for
-cmode: worker threads now split files on newline boundaries when counting matching lines, ensuring each line belongs to exactly one worker. This eliminates inaccurate counts at chunk boundaries and avoids rescanning overlap bytes. - Faster short-pattern line counting: in
-c(count lines) mode with short literal patterns, the scalarmemchr-based search is now preferred over the SIMD path for lower setup overhead per matching line. - New helper
advance_to_next_line_boundary()for efficient newline-aligned offset advancing.
Build
- Removed
-ffast-mathfrom defaultCFLAGSfor improved floating-point standards compliance.
CI
- Added toolchain info step (
cc --version,make --version) to CI builds. - Added benchmark smoke test on
ubuntu-latest: downloads a sample subtitle corpus and runsbenchmark_krep_vs_rg.shwithRUNS=1. - Installs
ripgrepon Ubuntu runners when not already present.
Tests
- New
test_multithread_only_matching_consistencytest: verifies that single-threaded and multi-threaded-o(only-matching) output produce identical match counts on a large generated file.
Docs
- Generalized UI/version wording in README.