# New Ticket Created by James E Keenan
# Please include the string: [perl #118603]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=118603 >
In the past week t/op/stash.t has begun to experience test failures on
Darwin/PPC. These appear to be the first test failures specific to this
platform since January 2013.
Here is the output of: cd t;./perl harness -v op/stash.t;cd -
#####
op/stash.t ..
1..58
ok 1 - delete $::{STDERR} and print a warning
ok 2 - Insert a non-GV in a stash, under warnings 'once'
ok 3 - Defining an XSUB over an existing sub with no stash under warnings
ok 4 - stashes happen to be defined if not used
ok 5 - - work with hard refs too
ok 6 - stashes are defined if seen at compile time
ok 7 - - work with hard refs too
ok 8 - stashes are defined if a var is seen at compile time
ok 9 - - work with hard refs too
ok 10 - package A::B; sub a { // }; %A::=""
ok 11 - use Exporter; package A; sub a { // }; delete $::{...
ok 12 - works in eval{}
ok 13 - works in eval("")
ok 14 - referencing a non-existent stash doesn't produce stricture errors
ok 15 - referencing a non-existent stash element doesn't produce
stricture errors
ok 16 - deleted stash entry leaves CV with valid GV isa B::GV
not ok 17 - ...and CVf_ANON set
ok 18 - ...and an __ANON__ name
ok 19 - ...but leaves stash intact
ok 20 - cleared stash leaves CV with valid GV isa B::GV
not ok 21 - ...and CVf_ANON set
ok 22 - ...and an __ANON__ name
ok 23 - ...but leaves stash intact
ok 24 - undefed stash leaves CV with valid GV isa B::GV
not ok 25 - ...and CVf_ANON set
ok 26 - ...and an __ANON__ name
ok 27 - ...and an __ANON__ stash
ok 28 - cleared stash leaves anon CV with valid GV
ok 29 - ...but leaves the stash intact
ok 30 - undefed stash leaves anon CV with valid GV
not ok 31 - ...and an __ANON__ stash # TODO STASHES not anonymized
# Failed test 31 - ...and an __ANON__ stash at op/stash.t line 155
# got undef
# expected "__ANON__"
ok 32 - anonymised CV whose stash is detached still has a GV
ok 33 - CV anonymised when its stash is detached becomes __ANON__::__ANON__
ok 34 - NULL CvSTASH on named sub
ok 35 - orphaned CV has valid GV
ok 36 - orphaned CV has anon GV
ok 37 - ex-named CV has valid GV
ok 38 - ex-named CV has anon GV
ok 39 - anon CV has valid GV
ok 40 - anon CV has anon GV
ok 41 - stub records the package it was compiled in
ok 42 - stub records the file it was compiled in
ok 43 - definition overrides the package it was compiled in
ok 44 - definition overrides the file it was compiled in
# Failed test 17 - ...and CVf_ANON set at op/stash.t line 104
# got "0"
# expected "128"
# Failed test 21 - ...and CVf_ANON set at op/stash.t line 116
# got "0"
# expected "128"
# Failed test 25 - ...and CVf_ANON set at op/stash.t line 128
# got "0"
# expected "128"
ok 45 - no segfault with overload/deleted stash entry [\#58530]
ok 46 - __ANON__ sub called ok
ok 47 - globs stringify the same way when stashes are moved
ok 48 - ref() returns the same thing when an object’s stash is moved
ok 49 - objects stringify the same way when their stashes are moved
ok 50 - __PACKAGE__ returns the same when the current stash is moved
ok 51 - globs stringify the same way when stashes are detached
ok 52 - ref() returns the same thing when an object’s stash is detached
ok 53 - objects stringify the same way when their stashes are detached
ok 54 - __PACKAGE__ returns the same when the current stash is detached
ok 55 - setting stash name during undef has no effect
ok 56 - packages ending with :: are self-consistent
ok 57 - ' is equivalent to :: before a null
ok 58 - no crashing or errors when clobbering the current package
Failed 3/58 subtests
Test Summary Report
-------------------
op/stash.t (Wstat: 0 Tests: 58 Failed: 3)
Failed tests: 17, 21, 25
Files=1, Tests=58, 1 wallclock secs ( 0.07 usr 0.02 sys + 0.17 cusr
0.21 csys = 0.47 CPU)
Result: FAIL
/Users/jimk/gitwork/perl
Sat Jun 22 12:37:38 EDT 2013
#####
Given the lack of speed on this platform, a formal 'git bisect' would
take days. However, I have manually bisected the problem this far:
#####
commit 31476221e8e03a317c349f057be115891edca18c
Author: Father Chrysostomos <[email protected]>
AuthorDate: Fri Jun 14 00:40:23 2013 -0700
Commit: Father Chrysostomos <[email protected]>
CommitDate: Fri Jun 14 18:13:16 2013 -0700
t/op/stash.t PASS
#####
commit b8a02ff16952a74a5f8d4679c7439a5c543a0fcf
Author: David Golden <[email protected]>
AuthorDate: Wed Jun 19 22:28:22 2013 -0400
Commit: David Golden <[email protected]>
CommitDate: Wed Jun 19 22:28:22 2013 -0400
t/op/stash.t FAIL as above
#####
So the failure emerged between June 14 and June 19. As of this morning,
blead was experiencing these failures as well.
If someone can suggest either specific commits to test or debugging
procedures, please contact me ASAP.
Thank you very much.
Jim Keenan
#####
Summary of my perl5 (revision 5 version 18 subversion 0) configuration:
Platform:
osname=darwin, osvers=8.11.0, archname=darwin-2level
uname='darwin macintosh-9.local 8.11.0 darwin kernel version
8.11.0: wed oct 10 18:26:00 pdt 2007; root:xnu-792.24.17~1release_ppc
power macintosh powerpc '
config_args='-des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=undef
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=undef, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-fno-common -DPERL_DARWIN -fno-strict-aliasing
-pipe -I/usr/local/include -I/opt/local/include',
optimize='-O3',
cppflags='-fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe
-I/usr/local/include -I/opt/local/include'
ccversion='', gccversion='4.0.1 (Apple Computer, Inc. build 5250)',
gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='
-L/usr/local/lib -L/opt/local/lib'
libpth=/usr/local/lib /opt/local/lib /usr/lib
libs=-ldbm -ldl -lm -lc
perllibs=-ldl -lm -lc
libc=, so=dylib, useshrplib=false, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup
-L/usr/local/lib -L/opt/local/lib'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV PERL_SAWAMPERSAND
USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Built under darwin
Compiled at May 18 2013 12:31:26
%ENV:
PERLBREW_BASHRC_VERSION="0.59"
PERLBREW_HOME="/Users/jimk/.perlbrew"
PERLBREW_MANPATH=""
PERLBREW_PATH="/Users/jimk/perl5/perlbrew/bin"
PERLBREW_ROOT="/Users/jimk/perl5/perlbrew"
PERLBREW_VERSION="0.59"
@INC:
/usr/local/lib/perl5/site_perl/5.18.0/darwin-2level
/usr/local/lib/perl5/site_perl/5.18.0
/usr/local/lib/perl5/5.18.0/darwin-2level
/usr/local/lib/perl5/5.18.0
/usr/local/lib/perl5/site_perl/5.16.0
/usr/local/lib/perl5/site_perl/5.14.2
/usr/local/lib/perl5/site_perl/5.14.0
/usr/local/lib/perl5/site_perl/5.12.0
/usr/local/lib/perl5/site_perl/5.10.1
/usr/local/lib/perl5/site_perl/5.10.0
/usr/local/lib/perl5/site_perl/5.8.6
/usr/local/lib/perl5/site_perl
.
#####