Releases: Genivia/ugrep
Releases · Genivia/ugrep
ugrep v7.8
What's new?
This update includes usability improvements and important updates to protect the user when ug is used to search untrusted file systems:
- improve TUI custom-command option
--viewto wait for key press after viewing, by specifying+in--view=+COMMAND, such as--view=+fileto display file type info in the TUI with CTRL-Y (overrides viewing the file contents) #543 - update TUI to block ANSI OSC escape codes, such as
ESC ] P n rr gg bbthat may hang the terminal according to Wikipedia - update the
ug+andugrep+scripts to end options in filter commands with--, in case a filename starts with a-(dash) - improve config parsing to ignore some options that do not make sense to set in a (local) config file
- local config files located in the working directory are only read when owned by the user running the
ugorugrep --configprocess (already implemented in update 7.7)
Thank you all for your help with the ugrep project ❤️ Stay safe 🙏
ugrep v7.7.0
What's new?
- support TUI search on slow and incomplete standard input pipes e.g. from
tail -f#540 - update options
-m(--max-count) and-K(--max-line) to stop reading input upon reaching the stopping criterium, then exit without draining the standard input pipe like GNU grep #538 - improve binary file detection for huge mixed files #537
- add new option
./build.sh --disable-avx512#534 - local config files located in the working directory are only read when owned by the user running the ugrep process
- fix lzma 7zip api memory leak
ugrep v7.6
What's new?
- new options --max-size and min-size to search files whose physical size is in the specified MIN and/or MAX range
- fix zsh completion syntax error (#528)
- update option --ignore-file to ignore files and directories specified in an .gitignore file as an absolute
/globto ignore those matching the glob under its sub-directories (#526) - fix emulation of GNU grep option -z (--null-data) to match newlines (zero bytes internally) with pattern \s (space), which requires non-standard regex behavior internally to include matching zero bytes with pattern \s (#525)
- update --ignore-file=FILE to accept a FILE pathname to a non-local gitignore FILE that applies globally to ignore files and directories, similar to --exclude-from=FILE, but with the minor difference that gitignore rules match both files and directories with a single glob (#518 #519 #532)
- fix third-party sourced zopen.c library (BSD open source) one-byte read beyond its allocated
struct s_zstatestate variable ingetcode()(#511) - fix -m (--max-count) with context options -A or -C sometimes producing garbled after-context output that may cause a crash in the worst case (#510)
- fix reverse sort by date --sort=rchanged and --sort=rcreated not recognized by the TUI at startup (#508)
- update ugrep to search named pipe files specified as arguments on the command line instead of skipping them by default, such as process substitutions; also improve Linux special system files /proc and /sys skipping and/or reading and option -z file read error handling to avoid possible pipe fd leaks when thousands of /proc files are searched that produce (expected) read errors (#503)
- support option --no-empty while using full grep-emulation mode, i.e. when ugrep is renamed to grep
Thank you for your feedback to help improve 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
-xand 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 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