Skip to content

ugrep v5.0.0

Compare
Choose a tag to compare
@genivia-inc genivia-inc released this 16 Feb 21:49
· 91 commits to master since this release

What's new?

  • new and updated regex engine to speed up searching patterns described in #288 using a new heuristic DFA cut algorithm
  • new option --exclude-fs default to exclude file systems that aren't specified as search targets #349
  • new option --all (-@) to #342 to search all files except hidden: cancel previous file and directory search restrictions
  • TUI regex syntax highlighting improved for --fixed-strings (-F) when used with option --bool (-% and -%%)
  • fix #350 Linux procfs handling not as expected
  • fix #355 "context before lines" sometimes incorrectly displayed (due to a misfiring optimization in a recent release)

Notes

  • updated benchmarks with four additional cases covered by #288. Many more regex patterns were tested and evaluated on our end, some of which are far more complex than the four cases added to the benchmarks
  • further tweaking and tuning of the regex engine to increase performance is possible, but we did not want to hold up releasing 5.0 much longer. Future updates to the regex engine to speed up ugrep further will be considered
  • the regex engine updates are machine independent; the machine-dependent parts that use AVX2/AArch64 are located at a lower level in the engine and benefit from the new DFA cut algorithm
  • the new DFA cut algorithm does not apply to the fuzzy search regex engine (option -Z) or the PCRE2 library (option -P), which are unchanged
  • the new DFA cut algorithm does not apply to index-based search regex patterns with option --index, because it may increase the false positive rate for "normal" patterns. "Leading wildcard patterns" should still be avoided with option --index, such as \w+lookingfor and instead use lookingfor to avoid index-based search false positives (lower performance)