Skip to content

Releases: Genivia/ugrep

ugrep v4.3.0

07 Oct 16:19
Compare
Choose a tag to compare

Redesigned TUI with a new split screen window pane to preview matching files.

  • new TUI split screen, activated with CTRL-T, and new option --split to start the TUI with a split screen (add split to your .ugrep configuration file to enable) #254
  • improved TUI screen updating
  • refactored the search engine internals to keep the search engine alive until ugrep terminates to optimize the TUI matching file preview pane display speed
  • improved option -o (--only-matching) layout when context options -ABC are used
  • fixed --zmax=n for n>1 that had a low chance to hang as discovered recently (about once in a few thousand runs) when searching (deeply) nested zip or tar archives
  • fixed compressed file search of files that are exactly one byte long, instead of rejecting those files as being empty
  • updated performance benchmark results: ugrep is faster than other grep tools on x64 and arm64 machines in nearly every test of 564 benchmark test cases

ugrep v4.2.0

22 Sep 17:27
Compare
Choose a tag to compare

Ugrep 4.2 includes several usability improvements:

  • improved TUI to display search progress and final stats in a status line at the bottom
  • improved TUI ctrl-Y to jump to the corresponding line number in the pager #296
  • improved recursive search performance #297
  • improved compatibility with GNU grep #273
  • improved detection of special devices to avoid searching them

ugrep v4.1.0

17 Sep 19:26
Compare
Choose a tag to compare

Ugrep 4.1 includes usability fixes and adds several improvements:

  • fix -Z fuzzy matching when character deletions are solely specified with a minus sign, as in -Z-NUM e.g. with -Z-1 the pattern 'abcd' should still match 'acd' with a missing character 'b' in the input (-Z worked fine, but -Z-1 did not match)
  • fix --pager when a regex syntax error occurs #285
  • update --pager to use $PAGER #286
  • update --ignore-files for compliance with git and ag gitignore rules #118
  • update -Q TUI ctrl-S and ctrl-W to jump to context group separators when context options -ABC are specified
  • update -o for GNU grep compatibility with "empty-matching" patterns
  • update POSIX [[:space:]] and \s to exclude newline \n matching. No regex pattern matches newlines, except for \n, \R and \X, \P{C} (anything not in Unicode class C), \D (anything not a digit), \H (anything not blank), and \W (anything not a word character), for the latter patterns you can/should use the more conventional character classes [^\p{C}], [^\d] [^\h] and [^\w], respectively, to not match newlines
  • improve performance: faster -c and line matching #284
  • improve performance: faster "empty-matching" pattern search #287

Ugrep was extensively tested prior to release. Updated benchmark results: https://github.com/Genivia/ugrep-benchmarks

ugrep v4.0.5

27 Aug 20:07
Compare
Choose a tag to compare

One last minor update before the break. I want to make sure ugrep is and remains a high-quality search tool.

  • Fixed a recently-added optimization that may in some rare cases cause a problem with a match at the end of a file.

Additional features and the promised additional speed-ups (and more) will be ready for a new release after a 3~4 week break.

ugrep v4.0.4

25 Aug 22:32
Compare
Choose a tag to compare
  • new --delay=DELAY option to specify a default query TUI response delay time, which can be specified in a .ugrep config file with delay=DELAY (--save-config includes this setting also)
  • fix option -m compatibility issue wth GNU grep when showing context lines with -ABC after the last max match
  • updated --save-config as per user request
  • correct an issue with -o and context

Additional features and the promised additional speed-ups (and more) will be ready after a 3~4 week break.

ugrep v4.0.2

22 Aug 23:46
Compare
Choose a tag to compare
  • additional speed up with improved parameterization of the matching algorithm decision logic 🚀
  • updated performance benchmarks showing that ugrep is almost always faster than other grep tools (more benchmarks will be added over time)

Work in progress: speed up options -ABC and significantly speed up option -c and line matching (*). This work is delayed by 3~4 weeks.

(*) when matching lines, the idea is to skip to the next line when permitted instead of continuing matching (i.e. no multi-line matching pattern, no colors, no replace, no tag displayed). This is an optimization that is effectively performed by GNU grep. The principle is copied by other grep tools.

ugrep v4.0.1

20 Aug 17:13
Compare
Choose a tag to compare
  • this update resolves a legacy C++ compilation error with ptrdiff_t
  • speeds up option -l when searching compressed files with -z
  • enables an important search optimization that was no longer enabled
  • publish new ugrep performance benchmarks 🚀

ugrep v4.0

18 Aug 14:00
Compare
Choose a tag to compare

Ugrep 4.0 offers faster searching with improved internals:

  • faster async output, speeds up ugrep 3x when outputting many matching lines 🚀
  • removed "rest line" buffering, speeds up ugrep up to 2x, depending on the output-related options used 🚀
  • removed redundant "binary file" checking, speeds up ugrep 10%~20% 🚀
  • double size input buffer, speeds up searching 5%~20% when searching very large files (GB) with none/infrequent pattern matches 🚀
  • faster empty pattern matching, i.e. pattern '' matches all lines faster, as much as 10x faster 🚀
  • removed redundant color escape codes from the output 🖥
  • option -Q with an optional argument is now -Q=DELAY instead of -QDELAY, so -Q2 is -Q -2 (simple options should be composable/separable) which searches 2 directory levels deep with the query TUI 🖥
  • fully tested --index (still beta version) to search indexed file systems, see also WIP project ugrep-indexer 🚀

Thumbs up to all ugrep users and contributors to make this possible 👍

A comprehensive performance benchmarking comparison will be published. I hope this convinces you all how fast ugrep is compared to other grep tools. At least until/unless other grep start using (rip-off, ahem...) my work ❤️

ugrep v3.12.7

14 Aug 18:08
Compare
Choose a tag to compare

This update of ugrep includes a compatibility improvement with one of GNU grep's idiosyncrasies: unpaired ) in regex are matched literally. This behavior is automatically in effect when the grep and egrep aliases of ugrep are used or explicitly with option -Y.

ugrep v3.12.6

06 Aug 20:35
Compare
Choose a tag to compare

New option -S (--dereference-files) to follow symbolic links only to files, not to directories, when using option -r for recursive search. Updated default recursive search to strictly perform -r without following any symbolic links (use -S to search symlinked files). New option --index for fast index-based search with the new ugrep-indexer tool. The ugrep-indexer tool is released on GitHub as a separate open source project at https://github.com/Genivia/ugrep-indexer which will become part of ugrep later after more feedback is received for this new feature.