Releases: Genivia/ugrep
Releases · Genivia/ugrep
ugrep v7.5
ugrep: a user-friendly, faster, more capable grep replacement -- search for anything in everything... fast!
What's new?
- smaller and faster executable with extended dual predict-match PM3+PM5 algorithms, see updated benchmarks compiled with Clang for speed and #485
- symlink support for ugrep.exe and ug.exe for Windows #493
- colorization improvement for ugrep.exe and ug.exe for old Windows 7 with ConEmu #491 #495
Thank you for your feedback to help improve ugrep ❤️
ugrep v7.4.3
What's new?
- fix bug in option
-x
and regex ^$-anchors used in certain short patterns #489 - mark likely/unlikely branches in hot paths for performance
About the upcoming release
- ugrep v7.5 will be released soon, which is faster than before, see also #485 and the updated ugrep v7.5 benchmarks
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 directorypath
glob to searchfile
glob 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-r
when-d
,-r
or-R
are 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 thefind
criteria 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_DRAIN
in 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-matches
and--no-count
#452 - update options
-i
and-j
when used together:-i
unconditional case-insensitive matching should override-j
smart-case conditional case-insensitive matching #453 - new
adoc
type added to option-t
or--file-type
#456 - new full support for GNU/BSD grep option
-z
(--null-data
), such that-z
is reassigned from--decompress
to--null-data
when ugrep is specifically copied or symlinked with the target namegrep
,egrep
,fgrep
,zgrep
,zegrep
, orzfgrep
executable file binaries to run as replacements of GNU/BSD grep #457 - fix older MacOS build from source compile-time error
QOS_CLASS_USER_INITIATED
not 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.