develooper Front page | perl.perl5.porters | Postings from August 2013

[perl #119493] perl5.18.0-broken -- breaks most existing programs w/warnings

Thread Next
From:
Linda Walsh
Date:
August 28, 2013 00:27
Subject:
[perl #119493] perl5.18.0-broken -- breaks most existing programs w/warnings
Message ID:
rt-3.6.HEAD-1873-1377649601-1408.119493-75-0@perl.org
# New Ticket Created by  Linda Walsh 
# Please include the string:  [perl #119493]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=119493 >



This is a bug report for perl from perl-diddler@tlinx.org,
generated with the help of perlbug 1.39 running under perl 5.18.0.


-----------------------------------------------------------------
[Please describe your issue here]

I was trying to install perl 5.18.0 (I found a version for suse ---
but it breaks nearly all existing scripts).

First big problem -- it generates warnings by default on what
was previously legal code. (my $_, given, when, etc).

It's considered normal to treat warnings as errors and my code
does just that... it rolls over and dies.  

Telling someone that these things were deprecated might be one thing.
But causing any program that uses these legal constructs to now fail
w/o anything in the release notes about them being deprecated -- I can't
see how this is at all responsible.

---
Then I try to update my cpan modules, but seems CPAN got
broken as well...
 
> cpan
Cannot do `initialize' in Term::ReadLine::Gnu at /usr/lib/perl5/5.18.0/CPAN.pm line 273.

----
I tried chaing the PERL_RL options, but that doesn't seem to work
so well:

> export PERL_RL="o=0"
Ishtar:law/bin> cpan
Terminal does not support AddHistory.
cpan[1]> install Term::Readline::Gnu
CPAN::SQLite not installed, trying to work without
Reading '/home/CPAN-ishtar-build-cache/Metadata'
  Database was generated on Sun, 25 Aug 2013 22:07:29 GMT
Warning: Cannot install Term::Readline::Gnu, don't know what it is.
Try the command

    i /Term::Readline::Gnu/

to find objects with matching identifiers.

....................
20 subroutines in Term::ReadLine redefined
Terminal does not support GetHistory.
Lockfile removed.
Cannot do `initialize' in Term::ReadLine::Gnu at /usr/lib/perl5/5.18.0/CPAN.pm line 273.

----

The first error is bad enough -- there needs to be a way
of setting something in the environment.

I tried adding
-M-warnings=experimental
to my PERL5OPTS but that doesn't seem to work for
any complicated program that uses modules that
have "use warnings" (or maybe lexical use warnings)
something turns the experimental warnings back
on.

This is now the output of a typical perl prog on my
system:

> snapper.pl    
Use of my $_ is experimental at /home/law/bin/lib/Types.pm line 172.
Use of my $_ is experimental at /home/law/bin/lib/Dbg.pm line 214.
Use of my $_ is experimental at /home/law/bin/lib/Data/Vars.pm line 162.
given is experimental at /home/law/bin/lib/Cmds.pm line 96.
when is experimental at /home/law/bin/lib/Cmds.pm line 97.
Use of my $_ is experimental at /home/law/bin/lib/Cmds.pm line 98.
when is experimental at /home/law/bin/lib/Cmds.pm line 100.
when is experimental at /home/law/bin/lib/Cmds.pm line 133.
given is experimental at /home/law/bin/lib/Cmds.pm line 136.
when is experimental at /home/law/bin/lib/Cmds.pm line 137.
when is experimental at /home/law/bin/lib/Cmds.pm line 141.
when is experimental at /home/law/bin/lib/Cmds.pm line 142.
Use of my $_ is experimental at /home/law/bin/lib/Lvm_Utils.pm line 357.
  require Lvm_Utils.pm called at /home/law/bin/snapper.pl line 27
  main::BEGIN() called at /home/law/bin/lib/Lvm_Utils.pm line 357
  eval {...} called at /home/law/bin/lib/Lvm_Utils.pm line 357
given is experimental at /home/law/bin/lib/Lvm_Utils.pm line 434.
  require Lvm_Utils.pm called at /home/law/bin/snapper.pl line 27
  main::BEGIN() called at /home/law/bin/lib/Lvm_Utils.pm line 434
  eval {...} called at /home/law/bin/lib/Lvm_Utils.pm line 434
when is experimental at /home/law/bin/lib/Lvm_Utils.pm line 435.
  require Lvm_Utils.pm called at /home/law/bin/snapper.pl line 27
  main::BEGIN() called at /home/law/bin/lib/Lvm_Utils.pm line 435
  eval {...} called at /home/law/bin/lib/Lvm_Utils.pm line 435
when is experimental at /home/law/bin/lib/Lvm_Utils.pm line 440.
  require Lvm_Utils.pm called at /home/law/bin/snapper.pl line 27
  main::BEGIN() called at /home/law/bin/lib/Lvm_Utils.pm line 440
  eval {...} called at /home/law/bin/lib/Lvm_Utils.pm line 440
Use of my $_ is experimental at /home/law/bin/lib/Cmd.pm line 26.
 at /home/law/bin/lib/Cmd.pm line 26.
  require Cmd.pm called at /home/law/bin/lib/Priv.pm line 7
  Priv::BEGIN() called at /home/law/bin/lib/Cmd.pm line 26
  eval {...} called at /home/law/bin/lib/Cmd.pm line 26
  require Priv.pm called at /home/law/bin/snapper.pl line 189
  Lv::Snapshot_Ops::BEGIN() called at /home/law/bin/lib/Cmd.pm line 26
  eval {...} called at /home/law/bin/lib/Cmd.pm line 26
 at /home/law/bin/lib/Cmd.pm line 26.
  require Cmd.pm called at /home/law/bin/lib/Priv.pm line 7
  Priv::BEGIN() called at /home/law/bin/lib/Cmd.pm line 26
  eval {...} called at /home/law/bin/lib/Cmd.pm line 26
  require Priv.pm called at /home/law/bin/snapper.pl line 189
  Lv::Snapshot_Ops::BEGIN() called at /home/law/bin/lib/Cmd.pm line 26
  eval {...} called at /home/law/bin/lib/Cmd.pm line 26
Compilation failed in require at /home/law/bin/lib/Priv.pm line 7.
 at /home/law/bin/lib/Priv.pm line 7.
  Priv::BEGIN() called at /home/law/bin/lib/Priv.pm line 7
  eval {...} called at /home/law/bin/lib/Priv.pm line 7
  require Priv.pm called at /home/law/bin/snapper.pl line 189
  Lv::Snapshot_Ops::BEGIN() called at /home/law/bin/lib/Priv.pm line 7
  eval {...} called at /home/law/bin/lib/Priv.pm line 7
BEGIN failed--compilation aborted at /home/law/bin/lib/Priv.pm line 7.
 at /home/law/bin/lib/Priv.pm line 7.
  require Priv.pm called at /home/law/bin/snapper.pl line 189
  Lv::Snapshot_Ops::BEGIN() called at /home/law/bin/lib/Priv.pm line 7
  eval {...} called at /home/law/bin/lib/Priv.pm line 7
Compilation failed in require at /home/law/bin/snapper.pl line 189.
 at /home/law/bin/snapper.pl line 189.
  Lv::Snapshot_Ops::BEGIN() called at /home/law/bin/snapper.pl line 189
  eval {...} called at /home/law/bin/snapper.pl line 189
BEGIN failed--compilation aborted at /home/law/bin/snapper.pl line 189.
 at /home/law/bin/snapper.pl line 189.

----
With everything failing all over the place.

Um... did anyone bother to test 5.18 with cpan before
it went out the door .. or anything code that "use's warnings";

I was tried recompiling the mods in cpan, as that was
callable w/o using Term, but no go... 

So how was it expected that this would be useful for anyone?
I.e. shipping a perl that disables most programs on arrival?

Maybe a 5.18.1 is due out immediately?

I'm not sure how to upgrade to this perl without causing lots
of pain...

For me, I guess I'm going to restore my system from
backups to undo the perl-upgrade damage I inflicted on it.




[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=critical
---
This perlbug was built using Perl 5.18.0 - Fri Aug 23 22:48:54 UTC 2013
It is being executed now by  Perl 5.18.0 - Fri Aug 23 22:46:08 UTC 2013.

Site configuration information for perl 5.18.0:

Configured by abuild at Fri Aug 23 22:46:08 UTC 2013.

Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
   
  Platform:
    osname=linux, osvers=3.7.10-1.1-default, archname=x86_64-linux-thread-multi
    uname='linux cloud106 3.7.10-1.1-default #1 smp thu feb 28 15:06:29 utc 2013 (82d3f21) x86_64 x86_64 x86_64 gnulinux '
    config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open -Duseshrplib=true -Doptimize=-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Wall -pipe -Accflags=-DPERL_USE_SAFE_PUTENV -Dotherlibdirs=/usr/lib/perl5/site_perl -Dinc_version_list=none'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -Wall -pipe',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector'
    ccversion='', gccversion='4.8.1 20130806 [gcc-4_8-branch revision 201525]', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib64 -fstack-protector'
    libpth=/lib64 /usr/lib64 /usr/local/lib64
    libs=-lm -ldl -lcrypt -lpthread
    perllibs=-lm -ldl -lcrypt -lpthread
    libc=/lib64/libc-2.18.so, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.18'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.18.0/x86_64-linux-thread-multi/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64 -fstack-protector'

Locally applied patches:
    

---
@INC for perl 5.18.0:
    /home/law/bin/lib
    /usr/lib/perl5/site_perl/5.18.0/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.18.0
    /usr/lib/perl5/vendor_perl/5.18.0/x86_64-linux-thread-multi
    /usr/lib/perl5/vendor_perl/5.18.0
    /usr/lib/perl5/5.18.0/x86_64-linux-thread-multi
    /usr/lib/perl5/5.18.0
    /usr/lib/perl5/site_perl/5.18.0/x86_64-linux-thread-multi
    /usr/lib/perl5/site_perl/5.18.0
    /usr/lib/perl5/site_perl
    .

---
Environment for perl 5.18.0:
    HOME=/home/law
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LC_COLLATE=C
    LC_CTYPE=en_US.UTF-8
    LD_LIBRARY_PATH=/usr/lib64/mpi/gcc/openmpi/lib64
    LOGDIR (unset)
    PATH=/home/law/bin/lib:/sbin:/usr/local/sbin:/usr/lib64/mpi/gcc/openmpi/bin:/home/law/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.:/usr/lib/qt3/bin:/opt/dell/srvadmin/bin:/usr/sbin:/etc/local/func_lib:/home/law/lib
    PERL5OPT=-Mutf8 -CSA -I/home/law/bin/lib -M-warnings=experimental
    PERL_BADLANG (unset)
    SHELL=/bin/bash


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