Releases: Genivia/ugrep
Releases Β· Genivia/ugrep
ugrep v7.4.2
What's new?
Minor improvements:
- speed up regex pattern search for some more extreme cases #485
- clean up code base to remove shadowed locals
- add safeguards for preventable pattern undermatch; practically impossible to happen with accurate match prediction, but should be guaranteed
ugrep v7.4.1
What's new?
- fix #486 v7.4 regression issue in the AVX2 SIMD acceleration logic for certain short regex patterns
ugrep v7.4
What's new?
Very pleased to release v7.4 with the following usability enhancements suggested by users:
- more responsive output when searching slow standard input pipes, such as
tail -f log | ug pattern#478; this update required several changes to the search engine's acceleration code to support non-blocking standard input, to avoid being too "greedy" for input - new option argument
-t seed7(or--file-type=seed7) searches seed7 files #480 - faster
-g"path/file"(or--glob="path/file".--iglob="path/file") search of the specified directorypathglob to searchfileglob by only recursing into the specified path names/globs; likewise--include-dir="path"is optimized for path globs; these options with paths (globs containing a /) also enable option-rwhen-d,-ror-Rare not specified #481 - clarify the usefulness of the default to not empty-match empty-matching patterns versus GNU grep that does (as with ugrep option
-Y) #482 - option
-z(or--decompress) now also auto-detects bzip2, XZ, and Zstandard compressed files (i.e. no specific filename extension is required, as is the case already for zlib (gzip), compress (Z), zip, and tar/pax/cpio formats) #483 - new option
--from=FILE: read additional pathnames of files to search fromFILE; this option is useful for example withfind ... -print | ugrep --from=- ...'to search specific files found with thefindcriteria without usingxargs#484 - drain the input pipe until EOF when reading non-seekable standard input such as from a pipe, for compatibility with GNU grep, this change re-enables
WITH_STDIN_DRAINin the source code
Updated ugrep v7.4 benchmarks look as good as before
Thank you all for your suggestions and comments!
ugrep v7.3
What's new?
- make options
-i(--ignore-case) and-j(--smart-case) respect Unicode letter case conventions #467 - usability improvements
ugrep v7.2.2
What's new?
- as per request, a minor update to improve search speed when the specified regex pattern is not found in the input when the specified regex starts with a wildcard such as
.*, which previously resulted in unnecessary regex match processing overhead
ugrep v7.2.1
What's new?
- includes fix #463 for v7.2 regression bug in non-SIMD ugrep builds
Notes on unit and regression testing methodology and benchmarking:
- to verify non-SIMD builds I ran 60,000 randomized test patterns each against 100MB text to search and compare to expected matches, this test fully covers the code of the scalar-optimized (non-SIMD) search algorithms (this test was not done for v7.2, which is my fault for thinking the latest change would not impact non-SIMD results, but it did)
- to verify SIMD-optimized builds (SSE2/AVX2/AVX512BW and Neon/AArch64) I ran again 40,000 randomized test patterns each against 100MB text to search and compare to expected matches, this test fully covers the code of the SIMD-optimized search algorithms
- in addition, the RE/flex high-performance regex project also includes many regex pattern test cases
- this release does not affect the search speeds of ugrep v7 i.e. the posted benchmarks for v7 are unchanged
ugrep v7.2
What's new?
- new options
--no-files-with-matchesand--no-count#452 - update options
-iand-jwhen used together:-iunconditional case-insensitive matching should override-jsmart-case conditional case-insensitive matching #453 - new
adoctype added to option-tor--file-type#456 - new full support for GNU/BSD grep option
-z(--null-data), such that-zis reassigned from--decompressto--null-datawhen ugrep is specifically copied or symlinked with the target namegrep,egrep,fgrep,zgrep,zegrep, orzfgrepexecutable file binaries to run as replacements of GNU/BSD grep #457 - fix older MacOS build from source compile-time error
QOS_CLASS_USER_INITIATEDnot declared #458 - fix a bug in ugrep v7 when matching certain case-insensitive patterns at the very end of a file at EOF when an EOL before EOF is missing (this is not a problem in versions prior to v7) #461
ugrep v7.1.3
What's new?
- fix a problem with option
-i(--ignore-case) that in rare and specific circumstances may not match all of the specified alternate sub-patterns #451.
ugrep v7.1.2
What's new?
- feature request: support the latest bzip3 library upgrades #446 *)
- feature request: permit su search of "unreadable" files #447
- feature request: do not exit with code 2 when some files can't be decompressed #448
*) please note that./build.sh --with-bzip3 or ./configure --with-bzip3 && make enables bzip3 in ugrep, when libbzip3 is present and found, otherwise ugrep and the indexer skip bz3 files; for help with configuration, run ./build.sh --help
Thank you for your feedback to help improve ugrep for everyone!
ugrep v7.1.1
What's new?
- fix negative character classes when option
-ior--ignore-caseis used and make ugrep closely emulate GNU grep's character class behavior when options-iand-Pare used #445 - appease
-Woverload-virtualand-Wshadowwarnings when building the RE/flex library, the TUI, and indexer (some warnings remain in ugrep.cpp) #444

