develooper Front page | perl.perl5.porters | Postings from July 2018

Re: [perl #133366] *COMMIT bug?

Thread Previous | Thread Next
From:
demerphq
Date:
July 13, 2018 16:27
Subject:
Re: [perl #133366] *COMMIT bug?
Message ID:
21403_1531499262_5B48D2FE_21403_37_1_CANgJU+VyzcGdYyr45eMctoSxREeX1pACqNJfgkxKWUsb5j10yQ@mail.gmail.com
On Fri, 13 Jul 2018, 03:28 , <ph10@hermes.cam.ac.uk> wrote:

> On Thu, 12 Jul 2018, Abigail via RT wrote:
>
> > What seems to happen is that the optimizer is too eager. It finds the 'D'
> > in both the pattern and the string, and determines that if the pattern
> > matches, it should start matching 2 characters before the 'D'. This is
> > a valid strategy if the (*COMMIT) is not present, but not in the presence
> > of it.
>
> Aha! Optimizing does that kind of thing - PCRE has/had similar issues.
> One of the PCRE users has been checking out all kinds of stuff and
> comparing with Perl. There seem to be some odd anomalies in the handling
> of captures in negative assertions and in the handling of (*VERB)s in
> subroutine calls in Perl. Would it be helpful if I reported these as
> independent issues
>

Definitely. Although I have to admit we might not "simply" fix this but
instead add a modifier to disable the start position optimizations and
advise users to consider using the modifier in such cases where it matters.

Fwiw there is already an internal flag which disables such optimisations.
For instance add a (??{""}) to the pattern and you should get the expected
results.

Yves

>

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About