develooper Front page | perl.perl5.porters | Postings from November 2016

Re: [perl #130010] v5.25.5-184-ga5540cf breaks texinfo

Thread Previous | Thread Next
From:
Karl Williamson
Date:
November 7, 2016 20:07
Subject:
Re: [perl #130010] v5.25.5-184-ga5540cf breaks texinfo
Message ID:
67d1c7e0-e4a7-465f-bfe8-76700f7223c3@cpan.org


On 11/07/2016 08:34 PM, Karl Williamson wrote:
> Top posting.
>
>
> This smells like something to try valgrind on.  Try
>
> make test.valgrind

You can use TEST_JOBS= to make it go faster if you have multiple cores
>
>
> On 11/07/2016 05:59 PM, James E Keenan via RT wrote:
>> On Mon, 07 Nov 2016 16:29:40 GMT, jkeenan wrote:
>>> On Mon, 07 Nov 2016 13:47:55 GMT, jkeenan wrote:
>>>> The question is:  What is it about this the pattern:
>>>>
>>>> #####
>>>> /([^\S\x{202f}\x{00a0}]+)|(\p{InFullwidth})|((?:[^\s\p{InFullwidth}]|[\x{202f}\x{00a0}])+)/ 
>>>>
>>>> #####
>>>>
>>>> ... that (a) as of commit C<a5540cf> but not previously; and (b) in
>>>> the context of this test suite but not in isolation, perceives
>>>> something to be a read-only value not subject to modification?
>>> My next brainstorm:  Add "use re 'debug';" to sub add_text() in
>>> tp/Texinfo/Convert/ParagraphNonXS.pm.
>>>
>>> When I did so and ran the debugging program found in one of my
>>> previous attachments, I got this output:
>>>
>>> #####
>>> Texinfo::Convert::ParagraphNonXS::add_text(../../tp/Texinfo/Convert/ParagraphNonXS.pm:329): 
>>>
>>> 329:      my @segments = split
>>> 330:
>>> /([^\S\x{202f}\x{00a0}]+)|(\p{InFullwidth})|((?:[^\s\p{InFullwidth}]|[\x{202f}\x{00a0}])+)/, 
>>>
>>> 331:        $text;
>>>    DB<6> n
>>> Matching REx
>>> "([^\S\x{202f}\x{00a0}]+)|(\p{InFullwidth})|((?:[^\s\p{InFull"...
>>> against "This is "
>>>     0 <> <This is >           |   0| 1:BRANCH(18)
>>>     0 <> <This is >           |   1|  2:OPEN1(4)
>>>     0 <> <This is >           |   1|  4:PLUS(16)
>>>                               |   1|  ANYOF[\t\n\x0B\f\r \x85][1680
>>> 2000-200A 2028-2029 205F 3000] can match 0 times out of 2147483647...
>>>                               |   1|  failed...
>>>     0 <> <This is >           |   0| 18:BRANCH(34)
>>>     0 <> <This is >           |   1|  19:OPEN2(21)
>>>     0 <> <This is >           |   1|
>>> 21:ANYOF[+utf8::Texinfo::Convert::ParagraphNonXS::InFullwidth](32)
>>>                               |   1|  failed...
>>>     0 <> <This is >           |   0| 34:BRANCH(68)
>>>     0 <> <This is >           |   1|  35:OPEN3(37)
>>>     0 <> <This is >           |   1| 37:CURLYM[0]{1,INFTY}(66)
>>>     0 <> <This is >           |   2| 39:BRANCH(51)
>>>     0 <> <This is >           |   3| 40:ANYOF[^\t\n\x0B\f\r
>>> \x85\xA0{+utf8::Texinfo::Convert::ParagraphNonXS::InFullwidth}1680
>>> 2000-200A 2028-2029 202F 205F 3000](64)
>>> Modification of a read-only value attempted at
>>> ../../tp/Texinfo/Convert/ParagraphNonXS.pm line 329.
>>>   at ../../tp/Texinfo/Convert/ParagraphNonXS.pm line 329.
>>> Texinfo::Convert::ParagraphNonXS::add_text(Texinfo::Convert::ParagraphNonXS=HASH(0x35ba938),
>>> "This is ") called at ../../tp/Texinfo/Convert/Info.pm line 308
>>> Texinfo::Convert::Info::_info_header(Texinfo::Convert::Info=HASH(0x35b3038))
>>> called at ../../tp/Texinfo/Convert/Info.pm line 81
>>> Texinfo::Convert::Info::output(Texinfo::Convert::Info=HASH(0x35b3038),
>>> HASH(0x35ab7c0)) called at ../texi2any.pl line 1348
>>> panic: POPSTACK
>>> Debugged program terminated.
>>> #####
>>>
>>> Since I have never previously used the regex debugger, I have no idea
>>> if there are any clues to a solution in that output.
>>>
>> Compiling perl at what has been identified as the last good commit, 
>> and then running the test program through the debugger, I got much 
>> better output.  It's quite long, so I'm posting it here:
>>
>> https://gist.github.com/jkeenan/184d2aaf914e4aa0410fe2ea1f36da91
>>
>> Thank you very much.
>>
>


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