develooper Front page | perl.perl5.porters | Postings from April 2019

Re: [perl #134058] Bleadperl v5.29.9-123-gaabfeadc64 breaksETHER/signatures-0.13.tar.gz

Thread Previous | Thread Next
From:
Dave Mitchell
Date:
April 27, 2019 11:24
Subject:
Re: [perl #134058] Bleadperl v5.29.9-123-gaabfeadc64 breaksETHER/signatures-0.13.tar.gz
Message ID:
20190427112447.GS6612@iabyn.com
On Fri, Apr 26, 2019 at 04:16:45PM -0600, Karl Williamson wrote:
> > but I don't know whether it works with older perls, or why switching
> > away from the 'stolen' scan_str() to perl's version broke things.
> 
> Thanks for doing this.  I was dreading having to work on this ticket, as I
> don't much understand the lexing process (I can deal with the low level, but
> not the grand view).
> 
> When run under older perls the stolen chunk is used, so it is lquite ikely
> to work, and if not, it's a simple matter to make that code dependent on the
> perl version.

I've now analysed it running under 5.28.0 and understand why it broke
later.

Blead's scan_str() has the property of saving the scanned string in
PL_lex_stuff, unless its a second call, in which case save it in
lex_sub_repl. That second value is later copied to PL_lex_repl in
sublex_push.

Older perls (and the stolen scan_str()) instead copy on second call
directly into PL_lex_repl.

In all cases signatures.xs was buggy not to clear PL_lex_stuff
before calling scan_str() again, but before, it happened not to trip up on
this faux pax.

So I think my fix is good - I'll mention it in the associated rt.cpan.org
ticket.

I'll also remove this from the blockers list.

-- 
A walk of a thousand miles begins with a single step...
then continues for another 1,999,999 or so.

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