11.0.0
ripgrep 11 is a new major version release of ripgrep that contains many bug
fixes, some performance improvements and a few feature enhancements. Notably,
ripgrep's user experience for binary file filtering has been improved. See the
guide's new section on binary data for more details.
In case you haven't heard of it before, ripgrep is a line-oriented search
tool that recursively searches your current directory for a regex pattern. By
default, ripgrep will respect your .gitignore and automatically skip hidden
files/directories and binary files.
This release also marks a change in ripgrep's versioning. Where as the previous
version was 0.10.0, this version is 11.0.0. Moving forward, ripgrep's
major version will be increased a few times per year. ripgrep will continue to
be conservative with respect to backwards compatibility, but may occasionally
introduce breaking changes, which will always be documented in this CHANGELOG.
See issue 1172 for a bit
more detail on why this versioning change was made.
This release increases the minimum supported Rust version from 1.28.0 to
1.34.0.
BREAKING CHANGES:
- ripgrep has tweaked its exit status codes to be more like GNU grep's. Namely,
if a non-fatal error occurs during a search, then ripgrep will now always
emit a2exit status code, regardless of whether a match is found or not.
Previously, ripgrep would only emit a2exit status code for a catastrophic
error (e.g., regex syntax error). One exception to this is if ripgrep is run
with-q/--quiet. In that case, if an error occurs and a match is found,
then ripgrep will exit with a0exit status code. - Supplying the
-u/--unrestrictedflag three times is now equivalent to
supplying--no-ignore --hidden --binary. Previously,-uuuwas equivalent
to--no-ignore --hidden --text. The difference is that--binarydisables
binary file filtering without potentially dumping binary data into your
terminal. That is,rg -uuu fooshould now be equivalent togrep -r foo. - The
avx-accelfeature of ripgrep has been removed since it is no longer
necessary. All uses of AVX in ripgrep are now enabled automatically via
runtime CPU feature detection. Thesimd-accelfeature does remain available
(only for enabling SIMD for transcoding), however, it does increase
compilation times substantially at the moment.
Performance improvements:
Feature enhancements:
- Added or improved file type filtering for Apache Thrift, ASP, Bazel, Brotli,
BuildStream, bzip2, C, C++, Cython, gzip, Java, Make, Postscript, QML, Tex,
XML, xz, zig and zstd. - FEATURE #855:
Add--binaryflag for disabling binary file filtering. - FEATURE #1078:
Add--max-columns-previewflag for showing a preview of long lines. - FEATURE #1099:
Add support for Brotli and Zstd to the-z/--search-zipflag. - FEATURE #1138:
Add--no-ignore-dotflag for ignoring.ignorefiles. - FEATURE #1155:
Add--auto-hybrid-regexflag for automatically falling back to PCRE2. - FEATURE #1159:
ripgrep's exit status logic should now match GNU grep. See updated man page. - FEATURE #1164:
Add--ignore-file-case-insensitivefor case insensitive ignore globs. - FEATURE #1185:
Add-Iflag as a short option for the--no-filenameflag. - FEATURE #1207:
Addnonevalue to-E/--encodingto forcefully disable all transcoding. - FEATURE da9d7204:
Add--pcre2-versionfor querying showing PCRE2 version information.
Bug fixes:
- BUG #306,
BUG #855:
Improve the user experience for ripgrep's binary file filtering. - BUG #373,
BUG #1098:
**is now accepted as valid syntax anywhere in a glob. - BUG #916:
ripgrep no longer hangs when searching/procwith a zombie process present. - BUG #1052:
Fix bug where ripgrep could panic when transcoding UTF-16 files. - BUG #1055:
Suggest-U/--multilinewhen a pattern contains a\n. - BUG #1063:
Always strip a BOM if it's present, even for UTF-8. - BUG #1064:
Fix inner literal detection that could lead to incorrect matches. - BUG #1079:
Fixes a bug where the order of globs could result in missing a match. - BUG #1089:
Fix another bug where ripgrep could panic when transcoding UTF-16 files. - BUG #1091:
Add note about inverted flags to the man page. - BUG #1093:
Fix handling of literal slashes in gitignore patterns. - BUG #1095:
Fix corner cases involving the--crlfflag. - BUG #1101:
Fix AsciiDoc escaping for man page output. - BUG #1103:
Clarify what--encoding autodoes. - BUG #1106:
--files-with-matchesand--files-without-matchwork with one file. - BUG #1121:
Fix bug that was triggering Windows antimalware when using the--files
flag. - BUG #1125,
BUG #1159:
ripgrep shouldn't panic forrg -h | rgand should emit correct exit status. - BUG #1144:
Fixes a bug where line numbers could be wrong on big-endian machines. - BUG #1154:
Windows files with "hidden" attribute are now treated as hidden. - BUG #1173:
Fix handling of**patterns in gitignore files. - BUG #1174:
Fix handling of repeated**patterns in gitignore files. - BUG #1176:
Fix bug where-F/-xweren't applied to patterns given via-f. - BUG #1189:
Document cases where ripgrep may use a lot of memory. - BUG #1203:
Fix a matching bug related to the suffix literal optimization. - BUG 8f14cb18:
Increase the default stack size for PCRE2's JIT.