# New Ticket Created by Dan Collins # Please include the string: [perl #129851] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=129851 > While smoking CPAN modules against various versions of Perl, I noticed the following unexpected failure: ------ Bisects to: bad - non-zero exit from /tmp/lX36LYqWLD/bin/perl -I /home/cpanbisect/.cpan -MCPAN::MyConfig -MCPAN -e $CPAN::Config->{build_dir}=q{/tmp/ZTufR37XGi}; -e install('Devel::EnforceEncapsulation'); die unless CPAN::Shell->expand(Module => 'Devel::EnforceEncapsulation')->uptodate; 607ee43568c28c8da9fb4b19d16807dd0214af40 is the first bad commit commit 607ee43568c28c8da9fb4b19d16807dd0214af40 Author: James Raspass <jraspass@gmail.com> Date: Wed Jul 15 23:46:20 2015 +0100 Speed up compilation of overload.pm a smidge. Measured with the following crude perl script calling perf. Perl is in there to get a rough baseline cost of starting perl: print 'PERL', (`perf stat -r100 perl -e 1 2>&1`)[10]; print 'OLD ', (`perf stat -r100 perl lib/overload.pm 2>&1`)[10]; print 'NEW ', (`perf stat -r100 perl lib/overload2.pm 2>&1`)[10]; Produced the following results on my machine: PERL 5,800,051 instructions # 1.05 insns per cycle ( +- 0.06% ) OLD 14,818,995 instructions # 1.16 insns per cycle ( +- 0.03% ) NEW 14,696,974 instructions # 1.16 insns per cycle ( +- 0.03% ) While the numbers did fluctuate between runs, the new code was consistently faster. :040000 040000 e92b68c47128f987038e0a5c2c4b99d361a9561e a587e32369a751d18c0dcf05b2f5a7fca27830ef M lib bisect run success That took 2162 seconds. ------ Diagnostics attached. Output buffering makes it look like some messages are coming from the wrong place, here's the "true" output of t/api: t/api.t ........... 1/52 overload arg '${}' is invalid at (eval 14) line 1. overload arg '@{}' is invalid at (eval 14) line 1. overload arg '%{}' is invalid at (eval 14) line 1. overload arg '&{}' is invalid at (eval 14) line 1. overload arg '*{}' is invalid at (eval 14) line 1. overload arg 'fallback' is invalid at (eval 14) line 1. # Failed test 'no warning on unencapsulated class' # at t/api.t line 153. # got: '6' # expected: '0' # Failed test '...but it does raise a warning' # at t/api.t line 159. # got: '7' # expected: '1' # Looks like you failed 2 tests of 52. t/api.t ........... Dubious, test returned 2 (wstat 512, 0x200) Failed 2/52 subtests ------ Perl -V of a failing perl: Summary of my perl5 (revision 5 version 25 subversion 6) configuration: Commit id: 5654fe3cb7747930ab73ec2386527c2d0007459f Platform: osname=linux osvers=3.16.0-4-amd64 archname=x86_64-linux-thread-multi uname='linux digitalis 3.16.0-4-amd64 #1 smp debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 gnulinux ' config_args='-Dusedevel -DDEBUGGING -Dusethreads -Dprefix=/home/cpan2/install -Uversiononly -des' hint=recommended useposix=true d_sigaction=define useithreads=define usemultiplicity=define use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n bincompat5005=undef Compiler: cc='cc' ccflags ='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2' optimize='-O2 -g' cppflags='-D_REENTRANT -D_GNU_SOURCE -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include' ccversion='' gccversion='4.9.2' 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/4.9/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 libs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc perllibs=-lpthread -lnsl -ldl -lm -lcrypt -lutil -lc libc=libc-2.19.so so=so useshrplib=false libperl=libperl.a gnulibc_version='2.19' 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-strong' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_TRACK_MEMPOOL PERL_USE_DEVEL USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Built under linux Compiled at Sep 29 2016 16:06:12 %ENV: PERLBREW_BASHRC_VERSION="0.76" PERLBREW_HOME="/home/dcollins/.perlbrew" PERLBREW_ROOT="/home/dcollins/toolchain/perl5" @INC: /home/cpan2/install/lib/perl5/site_perl/5.25.6/x86_64-linux-thread-multi /home/cpan2/install/lib/perl5/site_perl/5.25.6 /home/cpan2/install/lib/perl5/5.25.6/x86_64-linux-thread-multi /home/cpan2/install/lib/perl5/5.25.6 . ------ Happy to provide any other information that may be helpful. Respectfully, Dan CollinsThread Previous