Skip Menu |

This queue is for tickets about the Devel-Declare CPAN distribution.

Report information
The Basics
Id: 131226
Status: open
Priority: 0/
Queue: Devel-Declare

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc: gregoa [...] cpan.org
khw [...] cpan.org
mschwern [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.006_021
Fixed in: (no value)



CC: mschwern [...] cpan.org, khw [...] cpan.org
Subject: 0.006_021 breaks MSCHWERN/perl5i-v2.13.2.tar.gz
With the latest devel version of Devel-Declare, several tests fail like this: ... Couldn't find declarator 'func' at /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021-0/blib/lib/Devel/Declare/Context/Simple.pm line 47. Devel::Declare::Context::Simple::skip_declarator(perl5i::2::Signatures=HASH(0x22fbb48)) called at /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm line 62 Devel::Declare::MethodInstaller::Simple::parser(perl5i::2::Signatures=HASH(0x22fbb48), "func", 4, 1) called at /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm line 25 Devel::Declare::MethodInstaller::Simple::__ANON__("func", 4) called at /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021-0/blib/lib/Devel/Declare.pm line 278 Devel::Declare::linestr_callback("const", "func", 4) called at t/Meta/methods.t line 115 t/Meta/methods.t ............. Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run ...
RT-Send-CC: khw [...] cpan.org
On 2019-12-23 17:30:28, SREZIC wrote: Show quoted text
> With the latest devel version of Devel-Declare, several tests fail > like this: > > ... > Couldn't find declarator 'func' at > /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021- > 0/blib/lib/Devel/Declare/Context/Simple.pm line 47. > Devel::Declare::Context::Simple::skip_declarator(perl5i::2::Signatures=HASH(0x22fbb48)) > called at /home/cpansand/.cpan/build/2019122323/Devel-Declare- > 0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm line 62 > Devel::Declare::MethodInstaller::Simple::parser(perl5i::2::Signatures=HASH(0x22fbb48), > "func", 4, 1) called at /home/cpansand/.cpan/build/2019122323/Devel- > Declare-0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm > line 25 > Devel::Declare::MethodInstaller::Simple::__ANON__("func", 4) > called at /home/cpansand/.cpan/build/2019122323/Devel-Declare- > 0.006_021-0/blib/lib/Devel/Declare.pm line 278 > Devel::Declare::linestr_callback("const", "func", 4) called at > t/Meta/methods.t line 115 > t/Meta/methods.t ............. > Dubious, test returned 255 (wstat 65280, 0xff00) > No subtests run > ...
There are more CPAN distributions affected with similar error messages ("Couldn't find declarator ..."): * App-Lingua-BO-Wylie-Transliteration-0.1.0 : Error: Couldn't find declarator 'method' * CFOUTS/DateTime-Format-EraLegis-0.011.tar.gz : Error: Couldn't find declarator 'method' * CSSON/Dist-Zilla-Plugin-MapMetro-MakeLinePod-0.1202.tar.gz : Couldn't find declarator 'qqi' * CSSON/OpenGbg-0.1404.tar.gz : Couldn't find declarator 'qs' * TOBYINK/PerlX-QuoteOperator-Inescapable-0.002.tar.gz : Couldn't find declarator 'Q' There are two further with different error messages: * EXODIST/Test2-Plugin-SpecDeclare-0.000003.tar.gz : Useless use of numeric gt (>) in void context * WKI/Catalyst-View-ByCode-0.28.tar.gz : died: Can't use an undefined value as a subroutine reference
RT-Send-CC: khw [...] cpan.org, mschwern [...] cpan.org
On 2019-12-23 17:30:28, SREZIC wrote: Show quoted text
> With the latest devel version of Devel-Declare, several tests fail > like this: > > ... > Couldn't find declarator 'func' at > /home/cpansand/.cpan/build/2019122323/Devel-Declare-0.006_021- > 0/blib/lib/Devel/Declare/Context/Simple.pm line 47. > Devel::Declare::Context::Simple::skip_declarator(perl5i::2::Signatures=HASH(0x22fbb48)) > called at /home/cpansand/.cpan/build/2019122323/Devel-Declare- > 0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm line 62 > Devel::Declare::MethodInstaller::Simple::parser(perl5i::2::Signatures=HASH(0x22fbb48), > "func", 4, 1) called at /home/cpansand/.cpan/build/2019122323/Devel- > Declare-0.006_021-0/blib/lib/Devel/Declare/MethodInstaller/Simple.pm > line 25 > Devel::Declare::MethodInstaller::Simple::__ANON__("func", 4) > called at /home/cpansand/.cpan/build/2019122323/Devel-Declare- > 0.006_021-0/blib/lib/Devel/Declare.pm line 278 > Devel::Declare::linestr_callback("const", "func", 4) called at > t/Meta/methods.t line 115 > t/Meta/methods.t ............. > Dubious, test returned 255 (wstat 65280, 0xff00) > No subtests run > ...
This happens also with stable Devel-Declare-0.006022
My testing came to a different conclusion than the subject line indicates. According to my tests it was not 0.006_021 that broke these eight distros but 0.006_020. I smoked 8 perls, two of each of 5.28.2, 5.30.2, 5.31.3, 5.31.4 against each of the 8 distros covered in this issue. That lead to 64 tests, 32 against ETHER/Devel-Declare-0.006019.tar.gz and 32 against ETHER/Devel-Declare-0.006_020.tar.gz. The former 32 passed, the latter 32 failed. The finding suggests that 0.006_020 broke MSCHWERN/perl5i-v2.13.2.tar.gz and seven other distros. That notwithstanding, 021 was released as 022 four months after this issue was openend, so it's a minor scholastic question what broke what when exacty.
On 2020-05-03 06:50:27, ANDK wrote: Show quoted text
> My testing came to a different conclusion than the subject line > indicates. According to my tests it was not 0.006_021 that broke these > eight distros but 0.006_020. I smoked 8 perls, two of each of 5.28.2, > 5.30.2, 5.31.3, 5.31.4 against each of the 8 distros covered in this > issue. That lead to 64 tests, 32 against ETHER/Devel-Declare- > 0.006019.tar.gz and 32 against ETHER/Devel-Declare-0.006_020.tar.gz. > The former 32 passed, the latter 32 failed. > > The finding suggests that 0.006_020 broke MSCHWERN/perl5i- > v2.13.2.tar.gz and seven other distros. > > That notwithstanding, 021 was released as 022 four months after this > issue was openend, so it's a minor scholastic question what broke what > when exacty.
None of this is surprising. There were only very minor changes in 021 (fixing a compiler warning and adding ppport.h) and none at all in 022. The work done to fix DD for changes made to the parser in blead all appeared in 020. I hope no one is waiting for bated breath for a fix, because none is on the horizon. Karl Williamson graciously provided the fix in 020 and advises that it is not straightforward to fix the remaining issues that the other modules are experiencing, and I am not familiar with this area at all. What Devel::Declare is doing in the parser is highly fragile and it's a miracle things have held together this far. This fragility is exactly why there are now much better hooks into the parser to achieve similar goals -- namely PL_keyword_plugin (see perldoc perlapi). Syntax::Keyword::Try (and other projects by Paul Evans) are good places to look for modern examples of its use.