[PATCH v4 00/19] PCRE v1 improvements & PCRE v2 support
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Apr 25, 2017, 21:05 UTC
- Message-ID
- <20170425210548.24612-1-avarab@gmail.com>
Trivial changes since last time. Just sending this because I'd like the copy in pu updated. Changes noted below:
Ævar Arnfjörð Bjarmason (19):
grep: amend submodule recursion test in preparation for rx engine
testing
grep: add tests for grep pattern types being passed to submodulesA s/PCRE/LIBPCRE/ on the test_have_prereq, now makes sense with the series in sequence (error added during rebasing).
grep: submodule-related case statements should die if new fields are
added
grep: remove redundant regflags assignment under PCRE
grep: remove redundant `regflags &= ~REG_EXTENDED` assignmentsNEW: Similarly to how we didn't need to set regflags under PCRE, we were negating REG_EXTENDED under POSIX basic, without ever setting it in the first place.
This was just as confusing as the PCRE oddity, so remove it.
Makefile & configure: reword outdated comment about PCRE grep: add a test for backreferences in PCRE patterns log: add exhaustive tests for pattern style options & config log: add -P as a synonym for --perl-regexp grep & rev-list doc: stop promising libpcre for --perl-regexp grep: make grep.patternType=[pcre|pcre1] a synonym for "perl" test-lib: rename the LIBPCRE prerequisite to PCRE
One corresponding s/LIBPCRE/PCRE/ for the earlier change, see above.
grep: change the internal PCRE macro names to be PCRE1 grep: change the internal PCRE code & header names to be PCRE1 perf: add a performance comparison test of grep -E and -P grep: add support for the PCRE v1 JIT API grep: add support for PCRE v2
We now give proper error messages via pcre2_get_error_message() when pcre2_match() fails with errors other than "didn't match", the common case for this is that the engine gave up on a pathological pattern / input combination.
grep: remove support for concurrent use of both PCRE v1 & v2 Makefile & configure: make PCRE v2 the default PCRE implementation
Added more details to the commit message about why switching to PCRE v2 by default is a good idea. I hadn't noticed before that deep bugs in PCRE v1 are being WONTFIX'd on the bugtracker saying "nope, never fixing thath in v1, switch to v2".
Documentation/git-grep.txt | 7 +- Documentation/rev-list-options.txt | 9 +- Makefile | 39 +++++-- builtin/grep.c | 4 + configure.ac | 81 ++++++++++++-- grep.c | 222 +++++++++++++++++++++++++++++++------ grep.h | 32 +++++- revision.c | 2 +- t/README | 4 +- t/perf/p7820-grep-engines.sh | 25 +++++ t/t4202-log.sh | 86 +++++++++++++- t/t7810-grep.sh | 41 ++++--- t/t7812-grep-icase-non-ascii.sh | 4 +- t/t7813-grep-icase-iso.sh | 11 +- t/t7814-grep-recurse-submodules.sh | 215 +++++++++++++++++++++-------------- t/test-lib.sh | 3 +- 16 files changed, 613 insertions(+), 172 deletions(-) create mode 100755 t/perf/p7820-grep-engines.sh
-- 2.11.0