Skip Menu |
Report information
Id: 132743
Status: rejected
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: jkeenan [at] pobox.com
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: unknown
Perl Version: (no value)
Fixed In: (no value)



To: perlbug [...] perl.org
Date: Fri, 19 Jan 2018 18:59:15 -0500
From: James E Keenan <jkeenan [...] pobox.com>
Subject: Incorrect perl version in deprecation error message
Download (untitled) / with headers
text/plain 2.1k
Today ether requested that I test Catalyst::Runtime against Perl 5 blead. I did so using 'cpanm'. Installation failed due to a failure in prerequisite Getopt::Long::Descriptive, for which I filed a pull request (https://github.com/rjbs/Getopt-Long-Descriptive/pull/25). So far, so good. But then I looked at the error message I was getting and found something puzzling. The error message starts out "Unescaped left brace in regex is deprecated here" -- a message we're very familiar with from the last dev cycle. But then it goes on to say, "and will be fatal in Perl 5.32". ##### $ make test PERL_DL_NONLAZY=1 "/home/jkeenan/testing/blead/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00-report-prereqs.t .. # [snip ] # t/00-report-prereqs.t .. ok t/descriptive.t ........ Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(?:[:=][\d\w\+]+[%@]?({ <-- HERE \d*,\d*})?|[!+])$/ at /home/jkeenan/.cpanm/work/1516405683.6225/Getopt-Long-Descriptive-0.100/blib/lib/Getopt/Long/Descriptive.pm line 307. t/descriptive.t ........ ok t/shortcircuit.t ....... Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.32), passed through in regex; marked by <-- HERE in m/(?:[:=][\d\w\+]+[%@]?({ <-- HERE \d*,\d*})?|[!+])$/ at /home/jkeenan/.cpanm/work/1516405683.6225/Getopt-Long-Descriptive-0.100/blib/lib/Getopt/Long/Descriptive.pm line 307. t/shortcircuit.t ....... 1/? # Failed test 'no (unexpected) warnings (via done_testing)' # at t/shortcircuit.t line 84. # Looks like you failed 1 test of 11. t/shortcircuit.t ....... Dubious, test returned 1 (wstat 256, 0x100) Failed 1/11 subtests t/zzz-check-breaks.t ... ok ##### What's puzzling is that this usage is documented to become fatal in Perl *5.30* -- not 5.32. I couldn't find any place in the source code where 5.32 was associated with this deprecation. I was so puzzled that I installed a later blead -- only to get the same result! Does anyone know what is going on here? Thank you very much. Jim Keenan
Download perl_V.txt
text/plain 3.2k

Message body is not shown because sender requested not to inline it.

To: perl5-porters [...] perl.org
Subject: Re: [perl #132743] Incorrect perl version in deprecation error message
Date: Sat, 20 Jan 2018 00:11:03 +0000
From: Zefram <zefram [...] fysh.org>
Download (untitled) / with headers
text/plain 445b
James E Keenan wrote: Show quoted text
>What's puzzling is that this usage is documented to become fatal in Perl >*5.30* -- not 5.32. I couldn't find any place in the source code where >5.32 was associated with this deprecation.
Some cases of unescaped left brace are deprecated for 5.30, and some other cases (including the one hitting Getopt::Long::Descriptive) are newly deprecated for 5.32. See commit 0367231ce260cd08bcb13082d510e5778668bcc1. -zefram
RT-Send-CC: perl5-porters [...] perl.org
Nothing to do here - closing!
RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 731b
On Sat, 20 Jan 2018 20:33:31 GMT, ether wrote: Show quoted text
> Nothing to do here - closing!
To add one note for those following along at home ... If you were wondering why something not scheduled for fatalization until perl-5.32 is croaking in the perl-5.27 development cycle, it's because the test file in question has: ##### use Test::Warnings 0.005 qw[ warning ]; use Test::Fatal; ##### As Karen Etheridge commented in the pull request: ##### Note: if the warnings test had been guarded by an AUTHOR_TESTING check (which it should be!) -- the test would warn but would not fail, so installation would not be blocked. Please instead do: ### use if $ENV{AUTHOR_TESTING}, 'Test::Warnings'; ### ##### -- James E Keenan (jkeenan@cpan.org)


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org