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

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

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jun 2, 2017, 16:10 UTC
Message-ID
<alpine.DEB.2.21.1.1706021803460.171564@virtualbox>
In-Reply-To
<xmqqbmq74773.fsf@gitster.mtv.corp.google.com>
Hi,
On Fri, 2 Jun 2017, Junio C Hamano wrote:
Show 52 quoted lines
> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
> 
> > 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.
> 
> Nicely summarised and matches what I received; thanks, will replace.

For the record: I spent the entire development time I had today on trying to get PCRE2 to build and to figure out which PCRE2 tests fail and why.

I hoped to get to the bottom why the JIT is disabled in PCRE1, but ran out of time.

I seem to have gotten PCRE2 to build and figured out why the tests failed (spoiler: all of the failures were bogus and no indication of an incorrectly-built PCRE2).

I barely had time to build `pu` (forcing PCRE2) and to run the test scripts whose file names contain the substring "grep". Seems to work so far, but this is by no means comprehensive testing; it is more like hushed and rushed testing on a Friday night when I should have stopped working 10 minutes ago.

Will continue with testing Git for Windows using PCRE2 next week and keep you posted, Dscho

Previous: Junio C HamanoNext: Ævar Arnfjörð Bjarmason
Message 17 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.