Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect perl version in deprecation error message #16370

Closed
p5pRT opened this issue Jan 19, 2018 · 7 comments
Closed

Incorrect perl version in deprecation error message #16370

p5pRT opened this issue Jan 19, 2018 · 7 comments

Comments

@p5pRT
Copy link

p5pRT commented Jan 19, 2018

Migrated from rt.perl.org#132743 (status was 'rejected')

Searchable as RT132743$

@p5pRT
Copy link
Author

p5pRT commented Jan 19, 2018

From @jkeenan

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
(rjbs/Getopt-Long-Descriptive#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

@p5pRT
Copy link
Author

p5pRT commented Jan 19, 2018

From @jkeenan

Summary of my perl5 (revision 5 version 27 subversion 8) configuration​:
  Commit id​: a590bf6
  Platform​:
  osname=linux
  osvers=4.4.0-109-generic
  archname=x86_64-linux
  uname='linux zareason 4.4.0-109-generic #132-ubuntu smp tue jan 9 19​:52​:39 utc 2018 x86_64 x86_64 x86_64 gnulinux '
  config_args='-des -Dusedevel -Uversiononly -Dprefix=/home/jkeenan/testing/blead -Dman1dir=none -Dman3dir=none'
  hint=recommended
  useposix=true
  d_sigaction=define
  useithreads=undef
  usemultiplicity=undef
  use64bitint=define
  use64bitall=define
  uselongdouble=undef
  usemymalloc=n
  default_inc_excludes_dot=define
  bincompat5005=undef
  Compiler​:
  cc='cc'
  ccflags ='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
  optimize='-O2'
  cppflags='-fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include'
  ccversion=''
  gccversion='5.4.1 20160904'
  gccosandvers=''
  intsize=4
  longsize=8
  ptrsize=8
  doublesize=8
  byteorder=12345678
  doublekind=3
  d_longlong=define
  longlongsize=8
  d_longdbl=define
  longdblsize=16
  longdblkind=3
  ivtype='long'
  ivsize=8
  nvtype='double'
  nvsize=8
  Off_t='off_t'
  lseeksize=8
  alignbytes=8
  prototype=define
  Linker and Libraries​:
  ld='cc'
  ldflags =' -fstack-protector-strong -L/usr/local/lib'
  libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib /lib64 /usr/lib64
  libs=-lpthread -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
  perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc
  libc=libc-2.23.so
  so=so
  useshrplib=false
  libperl=libperl.a
  gnulibc_version='2.23'
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs
  dlext=so
  d_dlsymun=undef
  ccdlflags='-Wl,-E'
  cccdlflags='-fPIC'
  lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector-strong'

Characteristics of this binary (from libperl)​:
  Compile-time options​:
  HAS_TIMES
  PERLIO_LAYERS
  PERL_COPY_ON_WRITE
  PERL_DONT_CREATE_GVSV
  PERL_MALLOC_WRAP
  PERL_OP_PARENT
  PERL_PRESERVE_IVUV
  PERL_USE_DEVEL
  USE_64_BIT_ALL
  USE_64_BIT_INT
  USE_LARGE_FILES
  USE_LOCALE
  USE_LOCALE_COLLATE
  USE_LOCALE_CTYPE
  USE_LOCALE_NUMERIC
  USE_LOCALE_TIME
  USE_PERLIO
  USE_PERL_ATOF
  Built under linux
  Compiled at Jan 19 2018 18​:46​:50
  %ENV​:
  PERL2DIR="/home/jkeenan/gitwork/perl2"
  PERLBREW_BASHRC_VERSION="0.78"
  PERLBREW_HOME="/home/jkeenan/.perlbrew"
  PERLBREW_MANPATH="/home/jkeenan/perl5/perlbrew/perls/perl-5.26.0/man"
  PERLBREW_PATH="/home/jkeenan/perl5/perlbrew/bin​:/home/jkeenan/perl5/perlbrew/perls/perl-5.26.0/bin"
  PERLBREW_PERL="perl-5.26.0"
  PERLBREW_ROOT="/home/jkeenan/perl5/perlbrew"
  PERLBREW_VERSION="0.78"
  PERL_WORKDIR="/home/jkeenan/gitwork/perl"
  @​INC​:
  lib
  /home/jkeenan/testing/blead/lib/perl5/site_perl/5.27.8/x86_64-linux
  /home/jkeenan/testing/blead/lib/perl5/site_perl/5.27.8
  /home/jkeenan/testing/blead/lib/perl5/5.27.8/x86_64-linux
  /home/jkeenan/testing/blead/lib/perl5/5.27.8

@p5pRT
Copy link
Author

p5pRT commented Jan 20, 2018

From zefram@fysh.org

James E Keenan wrote​:

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 0367231.

-zefram

@p5pRT
Copy link
Author

p5pRT commented Jan 20, 2018

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jan 20, 2018

From @karenetheridge

Nothing to do here - closing!

@p5pRT
Copy link
Author

p5pRT commented Jan 20, 2018

@karenetheridge - Status changed from 'open' to 'rejected'

@p5pRT p5pRT closed this as completed Jan 20, 2018
@p5pRT
Copy link
Author

p5pRT commented Jan 20, 2018

From @jkeenan

On Sat, 20 Jan 2018 20​:33​:31 GMT, ether wrote​:

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant