Skip Menu |

This queue is for tickets about the version CPAN distribution.

Report information
The Basics
Id: 24630
Status: resolved
Priority: 0/
Queue: version

People
Owner: Nobody in particular
Requestors: kane [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.69
Fixed in: (no value)



Subject: version.pm fails to test under 5.6.2 in pure perl mode
As per our discussion on P5P: Date: Fri, 26 Jan 2007 20:42:55 -0500 From: John Peacock <jpeacock@rowman.com> To: Jos Boumans <kane@dwim.org> CC: perl5-porters@perl.org Subject: Re: Version.pm 0.69 overloading incomplete Jos Boumans wrote: Show quoted text
> Unfortunately, they fail tests under 5.6.2 quite heavily [1]. > The XS version passes all tests under 5.6.2 though.
Show quoted text
> [1] Test failure under 5.6.2, Mac OS X: > [kane@rimmer ~...build/version-0.69]$ perl5.6.2 Makefile.PL --perl_only > Checking if your kit is complete... > Looks good > Writing Makefile for version
Interestingly enough, I can't even get the Makefile to build (EU::MM emits nothing and I get an "Attempt to free unreferenced scalar" error from 5.6.2. Can you open an RT in the version queue and append your 'perl5.6.2 -V' to the ticket so I can try and recreate? Show quoted text
> [kane@rimmer ~...build/version-0.69]$ make test > cp lib/version.pm blib/lib/version.pm > cp lib/version.pod blib/lib/version.pod > cp vperl/vpp.pm blib/lib/version/vpp.pm > PERL_DL_NONLAZY=1 /usr/local/bin/perl5.6.2 "-MExtUtils::Command::MM" "-e" > "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t > t/01base.......Argument "version::vpp" isn't numeric in subroutine entry > at /opt/5.6.2/lib/perl5/5.6.2/darwin/POSIX.pm line 38. > t/01base.......NOK 120# Failed test (t/coretests.pm at line 396) > # 'www version 8.000 (v8.0.0) required--this is only > version 0.000004 (v0.0.4) at > /Users/kane/.cpanplus/5.6.2/build/version-0.69/blib/lib/version/vpp.pm > line 441. > # BEGIN failed--compilation aborted at (eval 40) line 1. > # ' > # doesn't match '(?-xism:^www version 0.000008 \(v0.0.8\) required)' > t/01base.......ok 129/0# Looks like you failed 1 tests of 132. > t/01base.......dubious > Test returned status 1 (wstat 256, 0x100) > DIED. FAILED test 120 > Failed 1/132 tests, 99.24% okay (less 4 skipped tests: 127 okay, > 96.21%) > t/02derived....Argument "version::vpp" isn't numeric in subroutine entry > at /opt/5.6.2/lib/perl5/5.6.2/darwin/POSIX.pm line 38. > t/02derived....ok 91/0# Failed test (t/coretests.pm at line 396) > t/02derived....ok 92/0# 'www version 8.000 (v8.0.0) > required--this is only version 0.000004 (v0.0.4) at > /Users/kane/.cpanplus/5.6.2/build/version-0.69/blib/lib/version/vpp.pm > line 441. > # BEGIN failed--compilation aborted at (eval 40) line 1. > # ' > # doesn't match '(?-xism:^www version 0.000008 \(v0.0.8\) required)' > t/02derived....ok 139/0# Looks like you failed 1 tests of 142. > t/02derived....dubious > Test returned status 1 (wstat 256, 0x100) > DIED. FAILED test 126 > Failed 1/142 tests, 99.30% okay (less 4 skipped tests: 137 okay, > 96.48%) > t/03require....Argument "version::vpp" isn't numeric in subroutine entry > at /opt/5.6.2/lib/perl5/5.6.2/darwin/POSIX.pm line 38. > # Failed test (t/coretests.pm at line 396) > # 'www version 8.000 (v8.0.0) required--this is only > version 0.000004 (v0.0.4) at > /Users/kane/.cpanplus/5.6.2/build/version-0.69/blib/lib/version/vpp.pm > line 441. > # BEGIN failed--compilation aborted at (eval 38) line 1. > # ' > # doesn't match '(?-xism:^www version 0.000008 \(v0.0.8\) required)' > t/03require....ok 15/0# Looks like you failed 1 tests of 132. > t/03require....dubious > Test returned status 1 (wstat 256, 0x100) > DIED. FAILED test 121 > Failed 1/132 tests, 99.24% okay (less 7 skipped tests: 124 okay, > 93.94%) > Failed Test Stat Wstat Total Fail Failed List of Failed >
------------------------------------------------------------------------------ - Show quoted text
> t/01base.t 1 256 132 1 0.76% 120 > t/02derived.t 1 256 142 1 0.70% 126 > t/03require.t 1 256 132 1 0.76% 121 > 15 subtests skipped. > Failed 3/3 test scripts, 0.00% okay. 3/406 subtests failed, 99.26% okay. > make: *** [test_dynamic] Error 2
I also don't get those failures if I test using the Build.PL, so I'm at a loss. Are you using a UTF-8 shell, by any chance? I am seeing the POSIX warnings, though, which are due to a conflict between Test::More and POSIX both having AUTOLOAD sub's (and I don't know how to resolve that).
Show quoted text
> Interestingly enough, I can't even get the Makefile to build (EU::MM > emits nothing and I get an "Attempt to free unreferenced scalar" error from > 5.6.2.
The 'free unref scalar' is one of those 'typical' 5.6.x errors.. it has something to do with garbage collection, so this should happen /after/ the whole script ran, and shouldn't impact anything before the garbage collection.. this is _if_ iirc of course ;) [kane@rimmer /tmp/version-0.69]$ perl5.6.2 -MExtUtils::MakeMaker -le'print ExtUtils::MakeMaker->VERSION' 6.17 [kane@rimmer /tmp/version-0.69]$ perl5.6.2 Makefile.PL --perl_only Checking if your kit is complete... Looks good Writing Makefile for version [kane@rimmer /tmp/version-0.69]$ Show quoted text
> Can you open an RT in the version queue and append your 'perl5.6.2 -V' > to the ticket so I can try and recreate?
Appended at the bottom. Show quoted text
> > t/01base.......Argument "version::vpp" isn't numeric in subroutine > > entry at /opt/5.6.2/lib/perl5/5.6.2/darwin/POSIX.pm line 38.
Show quoted text
> I am seeing the POSIX warnings, > though, which are due to a conflict between Test::More and POSIX both > having AUTOLOAD sub's (and I don't know how to resolve that).
Well, why is it a problem they have autoload subs? Do you inherit from one of them? Show quoted text
> Are you using a UTF-8 shell, by any chance?
My shell (or terminal) actually does display utf-8 fine... i use tcsh under iTerm, on OSX 10.4.8 [kane@rimmer /tmp/version-0.69]$ perl5.6.2 -V Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration: Platform: osname=darwin, osvers=8.7.1, archname=darwin uname='darwin rimmer 8.7.1 darwin kernel version 8.7.1: wed jun 7 16:19:56 pdt 2006; root:xnu-792.9.72.obj~2release_i386 i386 i386 ' config_args='-Dprefix=/opt/5.6.2 -des' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef Compiler: cc='cc', ccflags ='-pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict- aliasing', optimize='-O3', cppflags='-pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing' ccversion='', gccversion='4.0.1 (Apple Computer, Inc. build 5250)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 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, usemymalloc=n, prototype=define Linker and Libraries: ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='' libpth=/usr/lib libs=-ldbm -ldl -lm -lc perllibs=-ldl -lm -lc libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dyld.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup' Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under darwin Compiled at Aug 3 2006 14:25:50 %ENV: PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin:/Users/kane/sources/svk/oss/archive- extract/lib:/Users/kane/sources/svk/oss/file-fetch/lib:/Users/kane/sources/svk/oss/ archive-tar-new/lib:/Users/kane/sources/svk/oss/carp-trace/lib:/Users/kane/sources/svk/ oss/log-message/lib:/Users/kane/sources/svk/oss/module-load/lib:/Users/kane/sources/ svk/oss/params-check/lib:/Users/kane/sources/svk/oss/qmail-checkpassword/lib:/Users/ kane/sources/svk/oss/module-load-conditional/lib:/Users/kane/sources/svk/oss/term-ui/ lib:/Users/kane/sources/svk/oss/ipc-cmd/lib:/Users/kane/sources/svk/oss/config-auto/ lib:/Users/kane/sources/svk/oss/object-accessor/lib:/Users/kane/sources/NSA:/Users/ kane/sources/NSA/misc:/Users/kane/sources/NSA/test:/Users/kane/sources/beheer/perl:/ Users/kane/sources/svk/oss/cpanplus-devel/lib:/Users/kane/sources/svk/oss/log- message-simple/lib:/Users/kane/sources/svk/oss/cpanplus-shell-default-plugins-diff/lib:/ Users/kane/sources/svk/oss/package-constants/lib:/Users/kane/sources/svk/oss/ cpanplus-shell-default-plugins-rt/lib:/Users/kane/sources/svk/oss/dbix-simple-oo/lib:/ Users/kane/sources/svk/oss/module-loaded/lib:/Users/kane/sources/svk/oss/cpanplus- dist-par/lib" @INC: /sw/lib/perl5/darwin /sw/lib/perl5 /sw/lib/perl5/darwin /Users/kane/sources/svk/oss/archive-extract/lib /Users/kane/sources/svk/oss/file-fetch/lib /Users/kane/sources/svk/oss/archive-tar-new/lib /Users/kane/sources/svk/oss/carp-trace/lib /Users/kane/sources/svk/oss/log-message/lib /Users/kane/sources/svk/oss/module-load/lib /Users/kane/sources/svk/oss/params-check/lib /Users/kane/sources/svk/oss/qmail-checkpassword/lib /Users/kane/sources/svk/oss/module-load-conditional/lib /Users/kane/sources/svk/oss/term-ui/lib /Users/kane/sources/svk/oss/ipc-cmd/lib /Users/kane/sources/svk/oss/config-auto/lib /Users/kane/sources/svk/oss/object-accessor/lib /Users/kane/sources/NSA /Users/kane/sources/NSA/misc /Users/kane/sources/NSA/test /Users/kane/sources/beheer/perl /Users/kane/sources/svk/oss/cpanplus-devel/lib /Users/kane/sources/svk/oss/log-message-simple/lib /Users/kane/sources/svk/oss/cpanplus-shell-default-plugins-diff/lib /Users/kane/sources/svk/oss/package-constants/lib /Users/kane/sources/svk/oss/cpanplus-shell-default-plugins-rt/lib /Users/kane/sources/svk/oss/dbix-simple-oo/lib /Users/kane/sources/svk/oss/module-loaded/lib /Users/kane/sources/svk/oss/cpanplus-dist-par/lib /opt/5.6.2/lib/perl5/5.6.2/darwin /opt/5.6.2/lib/perl5/5.6.2 /opt/5.6.2/lib/perl5/site_perl/5.6.2/darwin /opt/5.6.2/lib/perl5/site_perl/5.6.2 /opt/5.6.2/lib/perl5/site_perl . [kane@rimmer /tmp/version-0.69]$
Can you try the attached dev release of version and see if the errors go away? I'm still not able to recreate your errors, but I made some other changes that may or may not be relevant. Thanks John
Download version-0.69_01.tar.gz
application/x-download 49.8k

Message body not shown because it is not plain text.

On Sat Jan 27 18:27:41 2007, JPEACOCK wrote: Show quoted text
> Can you try the attached dev release of version and see if the errors go > away? I'm still not able to recreate your errors, but I made some other > changes that may or may not be relevant.
It actually looks worse -- the xs version fails now too... i've attached the logs of make test TEST_VERBOSE = 1 in the hopes it helps... Both vxs and vpp work fine under my perl5.8.8 though. -Jos

Message body is not shown because it is too large.

Message body is not shown because it is too large.

Bugger! Ignore the XS errors; I tried to extend the range where using bare v-strings will work and it tests fine in PP but I never updated the XS code with the proper heuristics. I'll restore the previous SKIP block until that is done. I'm still having problems replicating your other test failures under 5.6.2; I'm going to have to poke blindly around for a while and see what squeals... John
Another day, another dev release. This one I tested 6 ways: Perl 5.005_04, 5.6.2, and 5.8.8 and pure Perl vs XS I get no more test failures (and I more closely hew to what Perl itself would emit). Can you try this on your [possibly possessed] OSX box??? Thanks John
Download version-0.69_02.tar.gz
application/x-download 50.3k

Message body not shown because it is not plain text.

Now that the other noise is hopefully settled, I can see that this is the actual test that fails is: eval "use lib '.'; use www 0.000008;"; like ($@, qr/^www version 0.000008 \(v0.0.8\) required/, "Make sure very small versions don't freak"); Can you show me the output of these two commands: $ perl5.6.2 -e 'print sprintf("%.9f",0.000008)' 0.000008000 $ perl5.6.2 -e 'print sprintf("%.9f",0.8e-5)' 0.000008000 I suspect that for some reason, OSX is not obeying the "f" format and still returning scientific notation for those small versions. I may just convert that test to a skip on that one platform... John
On Wed Jan 31 14:50:39 2007, JPEACOCK wrote: Show quoted text
> Can you show me the output of these two commands: > > $ perl5.6.2 -e 'print sprintf("%.9f",0.000008)' > 0.000008000 > > $ perl5.6.2 -e 'print sprintf("%.9f",0.8e-5)' > 0.000008000
$ perl5.6.2 -e 'print sprintf("%.9f",0.000008)' 0.000008000 $ perl5.6.2 -e 'print sprintf("%.9f",0.8e-5)' 0.000008000 Hmm, looks good to me... Show quoted text
> I suspect that for some reason, OSX is not obeying the "f" format and > still returning scientific notation for those small versions. I may > just convert that test to a skip on that one platform...
It seems to be doing what you expect though... p.s. for some odd reason i'm not getting the updates to these tickets via email.. I'll add myself as an explicit watcher to this ticket.. -- Jos
Resolved with 0.70. It turns out that 5.6.2 under OSX was using a somewhat unorthodox exponential notation that turned up a weakness in the regex used to recognize such things.