Skip to content

Releases: Genivia/ugrep

ugrep v3.12.5

04 Aug 17:21
Compare
Choose a tag to compare

New --iglob and --glob-ignore-case options, as requested by ugrep users.

ugrep v3.12.4

17 Jul 16:49
Compare
Choose a tag to compare

Even faster search for common search patterns, such as sets of words, using additional SIMD AVX and neon/AArch64 intrinsics.

Benchmarking on a MacBook M1 Pro 16GB LPDDR5

Searching for sets of words in an 100MB benchmark file. Elapsed time is the average of 100 searches with random word sets of increasing size per data point in the log-log graph (i.e. each point in the graph is the average of 100 trials). Ugrep easily beats ripgrep and GNU grep up to 256 words searched. For larger sets of words, ugrep and ripgrep are more close, with a slight advantage for ripgrep. Ripgrep uses letter frequency search heuristics, which work very well to search English text corpora, such as this large benchmark file (but otherwise may perform not as efficient):
performance_M1

All benchmark scripts are available upon request.

Benchmarking on a MacBook Pro 2.9 GHz Intel Core i7 16 GB 2133 MHz LPDDR3

Searching for sets of words in an 100MB benchmark file. Elapsed time is the average of 100 searches with random word sets of increasing size per data point in the log-log graph (i.e. each point in the graph is the average of 100 trials). Ugrep and ripgrep performance is similar. Ripgrep has a bug when searching 32 words and produces the wrong results which we discovered weeks ago due to ripgrep's use of letter frequency search heuristics, which work very well for English corpora, such as this large benchmark file, but can be buggy. These buggy data points were removed from this graph to be fair:
performance_x64

All benchmark scripts are available upon request.

What's next?

Stay tuned for more additions (and even faster searching) coming soon!

ugrep v3.12.3

15 Jul 02:27
Compare
Choose a tag to compare

Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty by default (that is, if a .ugrep configuration file does not override it with no-pretty). Fixed a potential pattern match issue in the new v3.12.2 optimizations. Working on additional SIMD optimizations with SSE/AVX and neon/AArch64 to make ugrep even faster. Correctness is most important, so optimizations are incrementally released and extensively tested.

ugrep v3.12.2

09 Jul 20:44
Compare
Choose a tag to compare

Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty by default (that is, if a .ugrep configuration file does not override it with no-pretty).

ugrep v3.12.1

04 Jun 18:18
Compare
Choose a tag to compare

New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed, includes a runtime check for tool availability; improved --filter option; speed improvements.

Ugrep runs faster than grep and ripgrep on Apple Silicon M1 and x64 machines for most common searches, such as searching for a few words to tens and hundreds of words in large files. It depends on the available hardware and the complexity of the search patterns.

Experiments on a MacBook PRO M1. The average elapsed time of 100 test runs of ugrep, ripgrep and GNU grep with increasing number of randomly picked words from the enwik8 100MB benchmark file:
image
Results are for ugrep -on -f words enwik8 to search with line numbers and option -o to reduce output overhead. The performance of ugrep is better than ripgrep and better than GNU grep for smaller sets of strings to search. However, ugrep and ripgrep are more or less comparable when searching more strings and when searching more complex regex patterns. It depends.

ugrep v3.12.0

03 Jun 17:30
Compare
Choose a tag to compare

New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed; improved --filter option; speed improvements.

Ugrep runs faster than grep and ripgrep on Apple Silicon M1 and x64 machines for most common searches, such as searching for a few words to tens and hundreds of words in large files. It depends on the available hardware and the complexity of the search patterns.

ugrep v3.11.2

07 Apr 21:05
Compare
Choose a tag to compare

This update includes usability improvements. We improved option --hyperlink to optionally take parameters PREFIX and +. The PREFIX parameter replaces file:// in the link with a custom PREFIX://. The + included the line number in the link, and when ugrep option -k is used, also includes the column number in the link.

ugrep v3.11.1

02 Apr 14:01
Compare
Choose a tag to compare

Smarter interactive navigation in the TUI when option --tree is used with option -l or -c, enabling the navigation keys CTRL-S (jump forward), CTRL-W jump backward), TAB (chdir into directory and save query state), SHIFT-TAB (chdir .. and restore query state), CTRL-Y (view file).

ugrep v3.11.0

19 Mar 01:11
Compare
Choose a tag to compare

Updated --format output when used with option -o by also enabling option -u to show all matches automatically; improved --json, --xml, --csv output when used with option -o; updated option -o output with headings (when applicable) for every match like GNU grep; updated options --format and --replace field %m to output the number of matches sequentially; new --format and --replace field %M outputs number of matching lines.

ugrep v3.10.1

17 Mar 23:43
Compare
Choose a tag to compare

Fixed a performance issue with specific regex patterns when used with case-insensitive pattern matching.