Skip to content

Releases: Genivia/ugrep

ugrep v4.3.2

03 Nov 14:31
Compare
Choose a tag to compare
  • new official ugrep.com web site with the ugrep user guide and installation instructions, this site will always be safe and guaranteed to be ad free and cookie free; ugrep.org forwards to ugrep.com
  • double short option -%% enables both --files --bool (a single -% still enables only --bool) for convenience
  • updated thread pool scheduling and execution with thread affinity and priority settings, implements #305
  • improvements and fixes for minor (mostly cosmetic) issues
  • updated ugrep v4.3.2 benchmarks.

Please consider updating your links to point to ugrep.com instead of the ugrep GitHub project web site, when applicable. The web site is hosted with GitHub pages. If you have any concerns or questions about the link and web site, then please ask!

ugrep v4.3.1

18 Oct 16:39
Compare
Choose a tag to compare

Updated to Unicode 15.1 and new TUI features #300

  • TUI Tab directory navigation now also works when file and directory arguments are present on the command line
  • TUI ctrl-Y now also supports viewing standard input when piped to ugrep
  • TUI ctrl-Y now also supports viewing files stored in zip/tar/pax/cpio archives, including nested compressed files and archives
  • TUI regex syntax highlighting with user-definable colors; the highlighting is sensitive to the current regex syntax, i.e. ERE (default), BRE (-G), --bool, and -F (--fixed-strings).

The ctrl-Y file viewing supports any pager, where the following pagers and editors can also jump to the current line number: less, more, moar (v1.17 and greater), most, w3m, emacs, joe, vi, vim, vis, nano, pico, vile, zile. If I've neglected to include your favorite pager/editor that supports option +123 e.g. to jump to line 123 then let me know and I will include it later.

Our new ugrep.com web site with a helpful user manual is now available!

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 ❤️