Releases: Genivia/ugrep
ugrep v5.0.0
What's new?
- new and updated regex engine to speed up searching patterns described in #288 using a new heuristic DFA cut algorithm
- new option
--exclude-fs
default to exclude file systems that aren't specified as search targets #349 - new option
--all
(-@
) to #342 to search all files except hidden: cancel previous file and directory search restrictions - TUI regex syntax highlighting improved for
--fixed-strings
(-F
) when used with option--bool
(-%
and-%%
) - fix #350 Linux procfs handling not as expected
- fix #355 "context before lines" sometimes incorrectly displayed (due to a misfiring optimization in a recent release)
Notes
- updated benchmarks with four additional cases covered by #288. Many more regex patterns were tested and evaluated on our end, some of which are far more complex than the four cases added to the benchmarks
- further tweaking and tuning of the regex engine to increase performance is possible, but we did not want to hold up releasing 5.0 much longer. Future updates to the regex engine to speed up ugrep further will be considered
- the regex engine updates are machine independent; the machine-dependent parts that use AVX2/AArch64 are located at a lower level in the engine and benefit from the new DFA cut algorithm
- the new DFA cut algorithm does not apply to the fuzzy search regex engine (option
-Z
) or the PCRE2 library (option-P
), which are unchanged - the new DFA cut algorithm does not apply to index-based search regex patterns with option
--index
, because it may increase the false positive rate for "normal" patterns. "Leading wildcard patterns" should still be avoided with option--index
, such as\w+lookingfor
and instead uselookingfor
to avoid index-based search false positives (lower performance)
ugrep v4.5.2
ugrep v4.5.1
fix bzip3/7zip configure interference causing libbzip3 detection and linkage to fail when building ugrep with optional bzip3 support ./build.sh --with-bzip3
ugrep v4.5.0
What's new?
- 7zip archive search with option
-z
#185 - apply Unicode normalization to canonicalize literal combining characters in regex patterns #298
- improved TUI TAB directory navigation when searching from the FS root
- updated ugrep.exe option
-P
to use PCRE2 latest stable version 10.42
Future plans (work in progress)
- implement a new DFA-based regex search optimization for patterns described in #288
- speed improvements for Linux with
io_uring
(could be 2x faster) - update ugrep benchmarks when some or all speed improvements are included (no update yet, because v4.5.0 is as fast as the current benchmarks show)
ugrep v4.4.1
Fix installation of bash, fish and zsh autocompletions #335 (for package maintainers/distributors)
ugrep v4.4.0
What's new?
- installs bash autocompletions for ugrep commands and options #327
- installs fish and zsh autocompletions for ugrep commands and options #198
- option
-t
(--file-type
) now also accepts filename extensions as shortcuts, when unambiguous, for example, the shorter form-tpy
for-tpython
to select files to search #333 - TUI ALT-SHIFT-% switches between "bool query lines" mode, "bool query files" mode, and bool queries off
- TUI boolF mode (
-%FQ
) now applies syntax highlighting - support legacy grep long options without
=
to bind option arguments, like GNU grep also supports these legacy forms of long option arguments; in this context, note that the general recommendation is that long options which require an argument should be followed by an equals sign.
Work in progress
- performance improvements #288 (with updated benchmarks)
- other requested features and updates
ugrep v4.3.6
What's new?
- fix an issue with option
-Zbest
fuzzy matching
ugrep v4.3.5
What's new?
- updated option
--index
for accelerated index-based search, now also indexes and searches archives and compressed files with option-z
- new
ugrep.exe
with option--index
for accelerated index-based search on Windows - updated ugrep-indexer project to support archive/compressed file indexing with a new
ugrep-indexer.exe
version for Windows - updated MacOS macports moar-pager #328
- faster search with
-ABC
context options #329
Future plans
- a major 5.0 release with performance enhancement #288 by updating the regex engine to advance fast to a partial match and then "look backward" for a full match
- also faster file reading with
io_uring
on Linux systems seems worthwhile to add to ugrep - make the
ugrep-indexer
command part of the ugrep tools when the ugrep-indexer project graduates to stable (ugrep-indexer
is currently 0.9.3 beta) - Unicode searching with Unicode pattern normalizing #298
- other additions and improvements
Thank you!
A big thank you to all project contributors and ugrep users and enthusiasts!
ugrep v4.3.4
What's new?
- the ug command no longer quits with an error message when no default .ugrep config file was found
- bzip3 is supported but not required to build ugrep, see also #316; to use bzip3 with ugrep, execute
./build.sh --with-bzip3
. - fix the output of
+
separators by no longer using them #317 for GNU grep compatibility - fix option
-v
with-ABC
context #319 - fix configuration file option arguments that may got lost and causes option argument errors in some cases after parsing a config file, such as
colors=
- allow config file importing in config files using
config=FILE
(but does not permit recursive imports) see also #320 - add
Dockerfile-minimized
#322 - minor usability improvements
Thank you for your support and for using ugrep!
ugrep v4.3.3
What's new?
- added brotli compressed files search support #312, see notes below
- added bzip3 compressed files search support #311, see notes below
- updated option
--pretty
to accept an optionalWHEN
argumentnever
,always
,auto
similar to the--color
option - improved TUI screen blanking response when a new search starts, while also avoiding screen flicker
- fix #313 option
--zmax
>1 when a decompression library produces a decompression error when decompressing a nested compressed file
Important notes on dependencies
Dependencies will from now on be organized in the following three tiers to manage current and potential future dependencies. Distribution packages should include the recommended dependencies and some or all of the optional dependencies (i.e. when available.) Ugrep will actually still build without any of these dependencies installed on a system, but ugrep options -P
and -z
will not be usable.
- Recommended dependencies (should be included):
- PCRE2 to enable option -P
- zlib to enable option -z
- bzip2 (also sometimes used by the zip format)
- lzma/xz (also sometimes used by the zip format)
- Optional dependencies (may be included):
- Optional dependencies supported by the source code only and optionally in the binary when ugrep is configured and built from source with
./build.sh
, but typically should not be included as a dependency in a distribution package:
Additional note: in the upcoming update 4.3.4 I will change the build script such that third-tier optional libraries will require a ./build.sh --with-LIBRARY
command to build ugrep with that library. This means that third-tier libraries (bzip3) will no longer be checked and linked by default. See also #316.
ugrep.com web site
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!