develooper Front page | perl.perl5.porters | Postings from October 2011

[perl #102606] Bleadperl v5.14.0-642-g3ed94dc brakes AVAR/YAML-Syck-1.17.tar.gz

Thread Previous
From:
perlbug-followup
Date:
October 31, 2011 15:09
Subject:
[perl #102606] Bleadperl v5.14.0-642-g3ed94dc brakes AVAR/YAML-Syck-1.17.tar.gz
Message ID:
rt-3.6.HEAD-31297-1320098940-1772.102606-75-0@perl.org
# New Ticket Created by  (Andreas J. Koenig) 
# Please include the string:  [perl #102606]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=102606 >


git bisect
----------

  3ed94dc04bd73c956fbfa66348a55f94c8a2268b is the first bad commit
  commit 3ed94dc04bd73c956fbfa66348a55f94c8a2268b
  Author: Father Chrysostomos <sprout@cpan.org>
  Date:   Thu Jun 16 06:27:50 2011 -0700
  
  [perl #81944] Non-lvalue subs do not copy return values
  
  return and leavesub see if they can cheat by not copying anything
  marked TEMP, since presumably nothing else is using it.  That means
  the return values of delete() and shift() are not copied.  Since @_
  aliases to the caller’s variables, sometimes what is returned *is*
  used elsewhere and still marked TEMP.  So cases like sub { return
  delete $_[0] } ->($x) end up returning $x unchanged, instead of
  copying it.
  
  As mentioned in the ticket, the solution is to copy only if the refer-
  ence count is 1.
  
  This also allows me to simplify the lvalue-returning code without
  spreading this bug further.  (pp_leavesublv currently avoids calling
  sv_2mortal, in order not to set the TEMP flag.)

sample fail report
------------------

  http://www.cpantesters.org/cpan/report/13085272

perl -V
-------

  Summary of my perl5 (revision 5 version 15 subversion 0) configuration:
    Commit id: 3ed94dc04bd73c956fbfa66348a55f94c8a2268b
    Platform:
      osname=linux, osvers=2.6.32-5-amd64, archname=x86_64-linux-ld
      uname='linux k83 2.6.32-5-amd64 #1 smp mon oct 3 03:59:20 utc 2011 x86_64 gnulinux '
      config_args='-Dprefix=/home/src/perl/repoperls/installed-perls/perl/v5.14.0-642-g3ed94dc/127e -Dmyhostname=k83 -Dinstallusrbinperl=n -Uversiononly -Dusedevel -des -Ui_db -Uuseithreads -Duselongdouble -DDEBUGGING=-g'
      hint=recommended, useposix=true, d_sigaction=define
      useithreads=undef, usemultiplicity=undef
      useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
      use64bitint=define, use64bitall=define, uselongdouble=define
      usemymalloc=n, bincompat5005=undef
    Compiler:
      cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
      optimize='-O2 -g',
      cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
      ccversion='', gccversion='4.4.5', 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='long double', nvsize=16, Off_t='off_t', lseeksize=8
      alignbytes=16, prototype=define
    Linker and Libraries:
      ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
      libpth=/usr/local/lib /lib/../lib /usr/lib/../lib /lib /usr/lib /lib64 /usr/lib64
      libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
      perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc
      libc=/lib/libc-2.11.2.so, so=so, useshrplib=false, libperl=libperl.a
      gnulibc_version='2.11.2'
    Dynamic Linking:
      dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
      cccdlflags='-fPIC', lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector'


  Characteristics of this binary (from libperl): 
    Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                          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_LONG_DOUBLE USE_PERLIO
                          USE_PERL_ATOF
    Built under linux
    Compiled at Oct 31 2011 21:59:00
    @INC:
      /home/src/perl/repoperls/installed-perls/perl/v5.14.0-642-g3ed94dc/127e/lib/site_perl/5.15.0/x86_64-linux-ld
      /home/src/perl/repoperls/installed-perls/perl/v5.14.0-642-g3ed94dc/127e/lib/site_perl/5.15.0
      /home/src/perl/repoperls/installed-perls/perl/v5.14.0-642-g3ed94dc/127e/lib/5.15.0/x86_64-linux-ld
      /home/src/perl/repoperls/installed-perls/perl/v5.14.0-642-g3ed94dc/127e/lib/5.15.0
      .



  
-- 
andreas


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About