Skip to content

Releases: Genivia/ugrep

ugrep v6.0

06 May 20:56
Compare
Choose a tag to compare

What's new?

  • quicker! 🚀 much faster search speeds on ARM CPUs and also faster overall on other CPUs using essentially the same SIMD algorithms but better optimized #385 see latest ugrep benchmarks for results
  • more good stuff! 🎉 includes ugrep-indexer, which is installed together with ugrep, see ugrep-indexer release notes v1.0.0

Please note

  • Distribution maintainers please check if ugrep-indexer and its manual page is indeed also included in your ugrep distribution package and will be installed on user systems. Thank you! 🙏❤️

ugrep v5.1.4

10 Apr 13:37
Compare
Choose a tag to compare

What's new?

  • fix glitch #383 option -A may omit an after context line for regex patterns that start with a wildcard "zero or more" repetition such as .*

ugrep v5.1.3

04 Apr 20:24
Compare
Choose a tag to compare

What's new?

  • revert some of the third-party suggested configure scrip changes, this should make Homebrew ugrep include compression libraries again #380

ugrep v5.1.2

03 Apr 15:36
Compare
Choose a tag to compare

What's new?

  • updated configure and makefiles to improve SIMD (SSE2/AVX2/AVX512BW/NEON/AArch64) detection and cross-compilation
  • removed unused m4/ax_check scripts, adding corresponding PKG_CHECK_MODULES to configure.ac instead
  • update some of the ctype function calls to avoid potential signedness pitfalls
  • AIX build #374
  • use statfs() with options --include-fs and --exclude-fs when the preferred statvfs() is not available
  • suppress --filter utility stderr messages when ugrep options -s (--no-messages) and -q (--quiet) are used #377
  • fix Cygwin --filter utility hanging after fork when worker threads are active, by forcing single-threaded search (a bit crude, but Cygwin fork isn't identical to Unix fork)
  • support the NO_COLOR environment variable to suppress color output
  • fix TUI scroll glitch (cursor down to scroll screen content up) in non-split screen (glitch appeared when adding the split screen feature)
  • TUI line selection mode top row number indicator added, for consistency
  • TUI quit & output after line selection mode now behaves the same as non-TUI search output, for consistency
  • faster -q (--quiet) search

ugrep v5.1.1

11 Mar 17:52
Compare
Choose a tag to compare

What's new?

A minor update to fix a problem with POSIX lazy quantifier matching when combined with anchors, causing longer pattern matches than expected #369

ugrep v5.1.0

07 Mar 18:53
Compare
Choose a tag to compare

What's new?

  • a minor improvement of the regex syntax to allow escaped spaces #360
  • updated POSIX regex lazy quantifier matching in linear time using an advanced DFA transformation algorithm #174

Notes

Lazy quantifier POSIX regex matching with efficient DFAs is/was claimed to be impossible in the past, when in fact I wrote a new algorithm for the high-performance RE/flex regex matcher in 2015/2016. This latest installment of the DFA construction algorithm makes the syntax and behavior of POSIX regex lazy quantifier matching align with Perl regex lazy quantifier matching. Lazy quantifiers are of the form ?? (lazy optional) and *? and +? (lazy repetitions) to match no more than necessary, typically by backtracking until matching (Perl). Note that ugrep and RE/flex pattern matching is efficiently performed with a DFA in linear time, i.e. matching is backtrack-free. Pattern searching also uses match predictions to avoid backtracking.

ugrep v5.0.0

16 Feb 21:49
Compare
Choose a tag to compare

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)

ugrep v4.5.2

10 Jan 13:56
Compare
Choose a tag to compare
  • include PR #343 and PR #344 to update ./build.sh --disable-7zip configure, compilation and linkage
  • fix 7zip search failing on 32 bit systems when option -M is used (or -t when setting -M)

ugrep v4.5.1

06 Jan 14:14
Compare
Choose a tag to compare

fix bzip3/7zip configure interference causing libbzip3 detection and linkage to fail when building ugrep with optional bzip3 support ./build.sh --with-bzip3

ugrep v4.5.0

05 Jan 16:39
Compare
Choose a tag to compare

What's new?

  • 7zip archive search with option -z #185
  • apply Unicode normalization to canonicalize literal combining characters in regex patterns #298
  • improved TUI TAB directory navigation when searching from the FS root
  • updated ugrep.exe option -P to use PCRE2 latest stable version 10.42

Future plans (work in progress)

  • implement a new DFA-based regex search optimization for patterns described in #288
  • speed improvements for Linux with io_uring (could be 2x faster)
  • update ugrep benchmarks when some or all speed improvements are included (no update yet, because v4.5.0 is as fast as the current benchmarks show)