ripgrep v0.9.0 Release Notes

Release Date: 2018-08-03 // over 5 years ago
  • ๐Ÿš€ This is a new minor version release of ripgrep that contains some minor new ๐Ÿ”‹ features and a panoply of bug fixes.

    ๐Ÿš€ Releases provided on Github for x86_64 will now work on all target CPUs, and will also automatically take advantage of features found on modern CPUs (such as AVX2) for additional optimizations.

    ๐Ÿ‘ This release increases the minimum supported Rust version from 1.20.0 to 1.23.0.

    ๐Ÿš€ It is anticipated that the next release of ripgrep (0.10.0) will provide ๐Ÿ‘ multi-line search support and a JSON output format.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • When --count and --only-matching are provided simultaneously, the behavior of ripgrep is as if the --count-matches flag was given. That is, the total number of matches is reported, where there may be multiple matches per line. Previously, the behavior of ripgrep was to report the total number of matching lines. (Note that this behavior diverges from the behavior of GNU grep.)
    • ๐Ÿ‘ Octal syntax is no longer supported. ripgrep previously accepted expressions like \1 as syntax for matching U+0001, but ripgrep will now report an error instead.
    • ๐Ÿšš The --line-number-width flag has been removed. Its functionality was not carefully considered with all ripgrep output formats. See #795 for more details.

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for Android, Bazel, Fuchsia, Haskell, Java and Puppet.
    • FEATURE #411: Add a --stats flag, which emits aggregate statistics after search results.
    • FEATURE #646: Add a --no-ignore-messages flag, which suppresses parse errors from reading .ignore and .gitignore files.
    • FEATURE #702: Support \u{..} Unicode escape sequences.
    • FEATURE #812: Add -b/--byte-offset flag that shows the byte offset of each matching line.
    • FEATURE #814: Add --count-matches flag, which is like --count, but for each match.
    • FEATURE #880: Add a --no-column flag, which disables column numbers in the output.
    • FEATURE #898: Add support for lz4 when using the -z/--search-zip flag.
    • FEATURE #924: termcolor has moved to its own repository: https://github.com/BurntSushi/termcolor
    • FEATURE #934: Add a new flag, --no-ignore-global, that permits disabling global gitignores.
    • FEATURE #967: Rename --maxdepth to --max-depth for consistency. Keep --maxdepth for backwards compatibility.
    • FEATURE #978: Add a --pre option to filter inputs with an arbitrary program.
    • FEATURE fca9709d: Improve zsh completion.

    ๐Ÿ› Bug fixes:

    • BUG #135: Release portable binaries that conditionally use SSSE3, AVX2, etc., at runtime.
    • BUG #268: Print descriptive error message when trying to use look-around or backreferences.
    • BUG #395: Show comprehensible error messages for regexes like \s*{.
    • BUG #526: Support backslash escapes in globs.
    • BUG #795: Fix problems with --line-number-width by removing it.
    • BUG #832: Clarify usage instructions for -f/--file flag.
    • BUG #835: Fix small performance regression while crawling very large directory trees.
    • BUG #851: Fix -S/--smart-case detection once and for all.
    • BUG #852: Be robust with respect to ENOMEM errors returned by mmap.
    • BUG #853: Upgrade grep crate to regex-syntax 0.6.0.
    • BUG #893: Improve support for git submodules.
    • BUG #900: When no patterns are given, ripgrep should never match anything.
    • BUG #907: ripgrep will now stop traversing after the first file when --quiet --files is used.
    • BUG #918: Don't skip tar archives when -z/--search-zip is used.
    • BUG #934: Don't respect gitignore files when searching outside git repositories.
    • BUG #948: Use exit code 2 to indicate error, and use exit code 1 to indicate no matches.
    • BUG #951: Add stdin example to ripgrep usage documentation.
    • BUG #955: Use buffered writing when not printing to a tty, which fixes a performance regression.
    • BUG #957: Improve the error message shown for --path separator / in some Windows shells.
    • BUG #964: Add a --no-fixed-strings flag to disable -F/--fixed-strings.
    • BUG #988: Fix a bug in the ignore crate that prevented the use of explicit ignore files after disabling all other ignore rules.
    • BUG #995: Respect $XDG_CONFIG_DIR/git/config for detecting core.excludesFile.