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

Re: [PATCH 00/12] PCREv2 & more

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Apr 15, 2017, 09:50 UTC
Message-ID
<CACBZZX6G4LFyqxvbba72ZzwuOPakiPWTSVbFCX7DzrZ5D5Vpqg@mail.gmail.com>
In-Reply-To
<xmqqinm6m6p0.fsf@gitster.mtv.corp.google.com>
On Sat, Apr 15, 2017 at 10:11 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 29 quoted lines
> Jeff King <peff@peff.net> writes:
>
>> On Sat, Apr 08, 2017 at 01:24:54PM +0000, Ævar Arnfjörð Bjarmason wrote:
>>
>>> This adds PCRE v2 support, but as I was adding that I kept noticing
>>> other related problems to fix. It's all bundled up into the same
>>> series because much of it conflicts because it modifies the same test
>>> or other code. Notes on each patch below.
>>
>> Overall, the series looks OK to me.
>>
>> I'm not sure if it is worth all the complexity to carry pcre1/pcre2 as
>> run-time options. That does make it easier to do back-to-back
>> comparisons, but it makes the code a lot more complicated. In particular
>> I'm worried about subtle cases where we pcre1 turns into pcre2 (or vice
>> versa) by use of the aliases. That shouldn't matter to a user for
>> correctness, but it would throw off the benchmarking.
>>
>> If we literally just added USE_LIBPCRE2 and built against one or the
>> other, then all the complexity would be limited to a few #ifdefs. The
>> big drawback AFAICT is that anybody doing timing tests would have to
>> recompile in between.
>
> Yeah, having to dl two libs at runtime, even when you would ever use
> just one in a single run, is less than ideal.  A small downside
> inflicted on everybody will add up to million times more than a
> larger downside only suffered by developers, so I tend to agree with
> you that we probably should simplify to choose just one (or zero) at
> compile time.

I'll document & clarify this in v2, but I don't expect / want anyone who's distributing git to link to both v1 & v2, more details in my <CACBZZX6HLDmWSGiQ+cJ-p0Ak6SQHcmECaGqsfVz-Js4q7aSEwg@mail.gmail.com>.

It's just something we already have 95% of the code to support anyway, and doing the remaining 5% makes it easier to test & benchmark it for us devs without incurring any real maintenance or tech burden.

But as noted elsewhere in that message I'll include a patch to only add the ability to use one PCRE version. So we can just review & discuss the tradeoffs of doing that then.

Previous: Junio C Hamano
Message 43 of 43 in “PCREv2 & more”
  1. 00/12 PCREv2 & moreÆvar Arnfjörð Bjarmason, Apr 8, 2017
  2. 01/12 grep: add ability to disable threading with --threads=0 or grep.threads=0Ævar Arnfjörð Bjarmason, Apr 8, 2017
  3. Jeff KingApr 11, 2017
  4. Ævar Arnfjörð BjarmasonApr 11, 2017
  5. Jeff KingApr 11, 2017
  6. Ævar Arnfjörð BjarmasonApr 11, 2017
  7. Jeff KingApr 14, 2017
  8. Ævar Arnfjörð BjarmasonApr 16, 2017
  9. 02/12 grep: remove redundant regflags assignment under PCREÆvar Arnfjörð Bjarmason, Apr 8, 2017
  10. Jeff KingApr 11, 2017
  11. 03/12 Makefile & configure: reword outdated comment about PCREÆvar Arnfjörð Bjarmason, Apr 8, 2017
  12. Jeff KingApr 11, 2017
  13. Ævar Arnfjörð BjarmasonApr 15, 2017
  14. 04/12 grep: add a test for backreferences in PCRE patternsÆvar Arnfjörð Bjarmason, Apr 8, 2017
  15. 05/12 log: add exhaustive tests for pattern style options & configÆvar Arnfjörð Bjarmason, Apr 8, 2017
  16. Jeff KingApr 11, 2017
  17. Ævar Arnfjörð BjarmasonApr 11, 2017
  18. Jeff KingApr 11, 2017
  19. 06/12 log: add -P as a synonym for --perl-regexpÆvar Arnfjörð Bjarmason, Apr 8, 2017
  20. Junio C HamanoApr 10, 2017
  21. Jeff KingApr 11, 2017
  22. 08/12 grep: make grep.patternType=[pcre|pcre1] a synonym for "perl"Ævar Arnfjörð Bjarmason, Apr 8, 2017
  23. Jeff KingApr 11, 2017
  24. 07/12 grep & rev-list doc: stop promising libpcre for --perl-regexpÆvar Arnfjörð Bjarmason, Apr 8, 2017
  25. 09/12 test-lib: rename the LIBPCRE prerequisite to PCREÆvar Arnfjörð Bjarmason, Apr 8, 2017
  26. Jeff KingApr 11, 2017
  27. 10/12 grep: change the internal PCRE macro names to be PCRE1Ævar Arnfjörð Bjarmason, Apr 8, 2017
  28. Jeff KingApr 11, 2017
  29. Ævar Arnfjörð BjarmasonApr 11, 2017
  30. Jeff KingApr 11, 2017
  31. 12/12 grep: add support for PCRE v2Ævar Arnfjörð Bjarmason, Apr 8, 2017
  32. Jeff KingApr 11, 2017
  33. 11/12 grep: change the internal PCRE code & header names to be PCRE1Ævar Arnfjörð Bjarmason, Apr 8, 2017
  34. Jeff KingApr 11, 2017
  35. Ævar Arnfjörð BjarmasonApr 11, 2017
  36. Jeff KingApr 11, 2017
  37. Ævar Arnfjörð BjarmasonApr 11, 2017
  38. Jeff KingApr 11, 2017
  39. Brandon WilliamsApr 11, 2017
  40. Ævar Arnfjörð BjarmasonApr 11, 2017
  41. Jeff KingApr 11, 2017
  42. Junio C HamanoApr 15, 2017
  43. Ævar Arnfjörð BjarmasonApr 15, 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.