git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v4 0/8] PCRE v2, PCRE v1 JIT, log -P & fixes

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jun 1, 2017, 18:20 UTC
Message-ID
<20170601182056.31142-1-avarab@gmail.com>

See <20170525200528.22037-1-avarab@gmail.com> for v3 (https://public-inbox.org/git/20170525200528.22037-1-avarab@gmail.com/).

This is on top of "[PATCH v4 00/31] Easy to review grep & pre-PCRE changes".

Changes:
Ævar Arnfjörð Bjarmason (8):
  grep: don't redundantly compile throwaway patterns under threading
  grep: skip pthreads overhead when using one thread
  log: add -P as a synonym for --perl-regexp
  grep: add support for the PCRE v1 JIT API
  grep: un-break building with PCRE < 8.32
  grep: un-break building with PCRE < 8.20
No changes.
  grep: un-break building with PCRE >= 8.32 without --enable-jit
NEW: It turns out that a PCRE version that supports JIT, but is built
without JIT support will fail at link time since there's no
pcre_jit_exec symbol.

It also turns out (contrary to what I claimed on list before, my mistake) that there's no way to detect this through some macro. All the pcre include files are the same with/without --enable-jit, only the object file differs.

So there's now a NO_LIBPCRE1_JIT flag to the Makefile, which is off by default, but turned on on MinGW. I have not tested that config.mak.uname change, but everything else I could test on Linux.

The reason for why it's NO_LIBPCRE1_JIT not USE_LIBPCRE1_JIT is that in practice pretty much everyone who builds pcre builds it with JIT (I've looked through various Linux/BSD distro build files), it's MinGW that's the exception here. Given the performance gain it makes sense to make it the default.

  grep: add support for PCRE v2
Almost no changes, just:
 * A trivial change to stop redundantly assigning to pcre2_jit_on,
   mistakenly left over from an earlier version.
 * Updated commit message / perf numbers for the extra patches in the
   series both here and in v3.
 Documentation/rev-list-options.txt |   1 +
 Makefile                           |  49 ++++++++--
 builtin/grep.c                     |  16 +++-
 config.mak.uname                   |   1 +
 configure.ac                       |  77 ++++++++++++---
 grep.c                             | 185 ++++++++++++++++++++++++++++++++++++-
 grep.h                             |  33 +++++++
 revision.c                         |   2 +-
 t/t4202-log.sh                     |  12 +++
 t/test-lib.sh                      |   2 +-
 10 files changed, 349 insertions(+), 29 deletions(-)
-- 
2.13.0.303.g4ebf302169
Next: Ævar Arnfjörð Bjarmason
Message 1 of 22 in “PCRE v2, PCRE v1 JIT, log -P & fixes”
  1. 0/8 PCRE v2, PCRE v1 JIT, log -P & fixesÆvar Arnfjörð Bjarmason, Jun 1, 2017
  2. 2/8 grep: skip pthreads overhead when using one threadÆvar Arnfjörð Bjarmason, Jun 1, 2017
  3. Stefan BellerJun 1, 2017
  4. Ævar Arnfjörð BjarmasonJun 1, 2017
  5. Ævar Arnfjörð BjarmasonJun 1, 2017
  6. Stefan BellerJun 1, 2017
  7. Ævar Arnfjörð BjarmasonJun 1, 2017
  8. Stefan BellerJun 1, 2017
  9. 3/8 log: add -P as a synonym for --perl-regexpÆvar Arnfjörð Bjarmason, Jun 1, 2017
  10. 1/8 grep: don't redundantly compile throwaway patterns under threadingÆvar Arnfjörð Bjarmason, Jun 1, 2017
  11. 4/8 grep: add support for the PCRE v1 JIT APIÆvar Arnfjörð Bjarmason, Jun 1, 2017
  12. 6/8 grep: un-break building with PCRE < 8.20Ævar Arnfjörð Bjarmason, Jun 1, 2017
  13. 7/8 grep: un-break building with PCRE >= 8.32 without --enable-jitÆvar Arnfjörð Bjarmason, Jun 1, 2017
  14. 8/8 grep: add support for PCRE v2Ævar Arnfjörð Bjarmason, Jun 1, 2017
  15. 5/8 grep: un-break building with PCRE < 8.32Ævar Arnfjörð Bjarmason, Jun 1, 2017
  16. Junio C HamanoJun 1, 2017
  17. Johannes SchindelinJun 2, 2017
  18. Ævar Arnfjörð BjarmasonJun 2, 2017
  19. Junio C HamanoJun 5, 2017
  20. Johannes SchindelinJun 7, 2017
  21. Ævar Arnfjörð BjarmasonJun 7, 2017
  22. Junio C HamanoJun 9, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.