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
October 31, 2011 15:09
[perl #102606] Bleadperl v5.14.0-642-g3ed94dc brakes AVAR/YAML-Syck-1.17.tar.gz
Message ID:
# 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: >

git bisect

  3ed94dc04bd73c956fbfa66348a55f94c8a2268b is the first bad commit
  commit 3ed94dc04bd73c956fbfa66348a55f94c8a2268b
  Author: Father Chrysostomos <>
  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

perl -V

  Summary of my perl5 (revision 5 version 15 subversion 0) configuration:
    Commit id: 3ed94dc04bd73c956fbfa66348a55f94c8a2268b
      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
      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/, so=so, useshrplib=false, libperl=libperl.a
    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): 
                          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
    Built under linux
    Compiled at Oct 31 2011 21:59:00


Thread Previous Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About