Closed p5pRT closed 11 years ago
Multiple test failures when installing Data::Dumper 2.143 from CPAN on our perl 5.10.1.
----8\<------8\<------8\<------8\<------8\<------8\<------8\<------8---- $ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0\, 'blib/lib'\, 'blib/arch')" t/*.t t/bless.t ..................... 1/11 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1. t/bless.t ..................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/11 subtests t/bless_var_method.t .......... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/bless_var_method.t .......... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/bugs.t ...................... 1/15 substr outside of string at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 518. Use of uninitialized value $name in pattern match (m//) at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 519. Use of uninitialized value $name in string eq at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 524. Malformed UTF-8 character (fatal) at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 560. # Looks like you planned 15 tests but ran 6. # Looks like your test exited with 255 just after 6. t/bugs.t ...................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 9/15 subtests t/deparse.t ................... ok t/dumper.t .................... Failed 2/201 subtests t/dumpperl.t .................. 1/22 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 22 tests but ran 18. # Looks like your test exited with 2 just after 18. t/dumpperl.t .................. Dubious\, test returned 2 (wstat 512\, 0x200) Failed 4/22 subtests t/freezer.t ................... 1/15 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 15 tests but ran 11. # Looks like your test exited with 2 just after 11. t/freezer.t ................... Dubious\, test returned 2 (wstat 512\, 0x200) Failed 4/15 subtests t/indent.t .................... 1/10 # Failed test 'Indent(3) annotates array elements with their indices' # at t/indent.t line 96. # '$VAR1 = [ # #0 # 'foo'\, # #1 # 42 # ]; # ' # doesn't match '(?s-xim:\#0.+'foo'.+\#1.+'42')' # Looks like you failed 1 test of 10. t/indent.t .................... Dubious\, test returned 1 (wstat 256\, 0x100) Failed 1/10 subtests t/misc.t ...................... ok t/names.t ..................... ok t/overload.t .................. ok t/pair.t ...................... ok t/perl-74170.t ................ Can't locate object method "Dumpxs" via package "Data::Dumper" at t/perl-74170.t line 28. # Looks like your test exited with 255 before it could output anything. t/perl-74170.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 1/1 subtests t/purity_deepcopy_maxdepth.t .. ok t/qr.t ........................ ok t/quotekeys.t ................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/quotekeys.t ................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/10 subtests t/seen.t ...................... ok t/sortkeys.t .................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sortkeys.t .................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 23/23 subtests t/sparseseen.t ................ Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sparseseen.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/terse.t ..................... ok t/toaster.t ................... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/toaster.t ................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/values.t .................... ok
Test Summary Report ------------------- t/bless.t (Wstat: 65280 Tests: 1 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 11 tests but ran 1. t/bless_var_method.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/bugs.t (Wstat: 65280 Tests: 6 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 15 tests but ran 6. t/dumper.t (Wstat: 0 Tests: 201 Failed: 2) Failed tests: 196\, 198 t/dumpperl.t (Wstat: 512 Tests: 18 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 22 tests but ran 18. t/freezer.t (Wstat: 512 Tests: 11 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 15 tests but ran 11. t/indent.t (Wstat: 256 Tests: 10 Failed: 1) Failed test: 9 Non-zero exit status: 1 t/perl-74170.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 1 tests but ran 0. t/quotekeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 10 tests but ran 0. t/sortkeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 23 tests but ran 0. t/sparseseen.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/toaster.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. Files=22\, Tests=349\, 1 wallclock secs ( 0.08 usr 0.05 sys + 0.74 cusr 0.15 csys = 1.02 CPU) Result: FAIL Failed 12/22 test programs. 3/349 subtests failed. make: *** [test_dynamic] Error 255
----8\<------8\<------8\<------8\<------8\<------8\<------8\<------8----
Look like I did run the test with the system perl (5.12.4) instead of our custom-built 5.10.1. Anyway\, the bug still applies.
Here is the result of the build with 5.10.1 (corresponding to the perl with which perlbug ran).
----8\<----------8\<--------8\<--------8\<--------8\<--------8\<--------8\<---- $ /var/lib/jenkins/perl/perl-5.10.1/bin/perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Data::Dumper Writing MYMETA.yml and MYMETA.json jenkins@jenkins:\~/.cpan/build/Data-Dumper-2.143-5tgcqI$ make test cp Dumper.pm blib/lib/Data/Dumper.pm /var/lib/jenkins/perl/perl-5.10.1/bin/perl /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/xsubpp -typemap /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/typemap Dumper.xs
Dumper.xsc && mv Dumper.xsc Dumper.c cc -c -DNO_MATHOMS -DPERL_DISABLE_PMC -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"2.143\" -DXS_VERSION=\"2.143\" -fPIC "-I/var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/x86_64-linux/CORE" -DUSE_PPPORT_H Dumper.c Running Mkbootstrap for Data::Dumper () chmod 644 Dumper.bs rm -f blib/arch/auto/Data/Dumper/Dumper.so cc -shared -O2 -fstack-protector Dumper.o -o blib/arch/auto/Data/Dumper/Dumper.so \ \
chmod 755 blib/arch/auto/Data/Dumper/Dumper.so cp Dumper.bs blib/arch/auto/Data/Dumper/Dumper.bs chmod 644 blib/arch/auto/Data/Dumper/Dumper.bs PERL_DL_NONLAZY=1 /var/lib/jenkins/perl/perl-5.10.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0\, 'blib/lib'\, 'blib/arch')" t/*.t t/bless.t ..................... 1/11 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1. t/bless.t ..................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/11 subtests t/bless_var_method.t .......... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/bless_var_method.t .......... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/bugs.t ...................... 1/15 Malformed UTF-8 character (fatal) at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 560. # Looks like you planned 15 tests but ran 6. # Looks like your test exited with 9 just after 6. t/bugs.t ...................... Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 9/15 subtests (less 1 skipped subtest: 5 okay) t/deparse.t ................... ok
t/dumper.t .................... Failed 2/201 subtests t/dumpperl.t .................. 1/22 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 22 tests but ran 18. # Looks like your test exited with 9 just after 18. t/dumpperl.t .................. Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 4/22 subtests t/freezer.t ................... 1/15 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 15 tests but ran 11. # Looks like your test exited with 9 just after 11. t/freezer.t ................... Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 4/15 subtests t/indent.t .................... Use of implicit split to @_ is deprecated at t/indent.t line 100. Use of implicit split to @_ is deprecated at t/indent.t line 101. t/indent.t .................... 1/10 # Failed test 'Indent(3) annotates array elements with their indices' # at t/indent.t line 96. # '$VAR1 = [ # #0 # 'foo'\, # #1 # 42 # ]; # ' # doesn't match '(?s-xim:\#0.+'foo'.+\#1.+'42')' # Looks like you failed 1 test of 10. t/indent.t .................... Dubious\, test returned 1 (wstat 256\, 0x100) Failed 1/10 subtests t/misc.t ...................... ok
t/names.t ..................... ok
t/overload.t .................. ok
t/pair.t ...................... ok
t/perl-74170.t ................ Can't locate object method "Dumpxs" via package "Data::Dumper" at t/perl-74170.t line 28. # Looks like your test exited with 255 before it could output anything. t/perl-74170.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 1/1 subtests t/purity_deepcopy_maxdepth.t .. ok
t/qr.t ........................ ok
t/quotekeys.t ................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/quotekeys.t ................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/10 subtests t/seen.t ...................... ok
t/sortkeys.t .................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sortkeys.t .................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 23/23 subtests t/sparseseen.t ................ Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sparseseen.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/terse.t ..................... ok
t/toaster.t ................... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/toaster.t ................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/values.t .................... ok
Test Summary Report
t/bless.t (Wstat: 65280 Tests: 1 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 11 tests but ran 1. t/bless_var_method.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/bugs.t (Wstat: 2304 Tests: 6 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 15 tests but ran 6. t/dumper.t (Wstat: 0 Tests: 201 Failed: 2) Failed tests: 196\, 198 t/dumpperl.t (Wstat: 2304 Tests: 18 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 22 tests but ran 18. t/freezer.t (Wstat: 2304 Tests: 11 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 15 tests but ran 11. t/indent.t (Wstat: 256 Tests: 10 Failed: 1) Failed test: 9 Non-zero exit status: 1 t/perl-74170.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 1 tests but ran 0. t/quotekeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 10 tests but ran 0. t/sortkeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 23 tests but ran 0. t/sparseseen.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/toaster.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. Files=22\, Tests=349\, 1 wallclock secs ( 0.08 usr 0.04 sys + 0.72 cusr 0.11 csys = 0.95 CPU) Result: FAIL Failed 12/22 test programs. 3/349 subtests failed. make: *** [test_dynamic] Error 255 ----8\<----------8\<--------8\<--------8\<--------8\<--------8\<--------8\<----
Look like I did run the test with the system perl (5.12.4) instead of our custom-built 5.10.1. Anyway\, the bug still applies.
Here is the result of the build with 5.10.1 (corresponding to the perl with which perlbug ran).
----8\<----------8\<--------8\<--------8\<--------8\<--------8\<--------8\<---- $ /var/lib/jenkins/perl/perl-5.10.1/bin/perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Data::Dumper Writing MYMETA.yml and MYMETA.json jenkins@jenkins:\~/.cpan/build/Data-Dumper-2.143-5tgcqI$ make test cp Dumper.pm blib/lib/Data/Dumper.pm /var/lib/jenkins/perl/perl-5.10.1/bin/perl /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/xsubpp -typemap /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/typemap Dumper.xs
Dumper.xsc && mv Dumper.xsc Dumper.c cc -c -DNO_MATHOMS -DPERL_DISABLE_PMC -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"2.143\" -DXS_VERSION=\"2.143\" -fPIC "-I/var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/x86_64-linux/CORE" -DUSE_PPPORT_H Dumper.c Running Mkbootstrap for Data::Dumper () chmod 644 Dumper.bs rm -f blib/arch/auto/Data/Dumper/Dumper.so cc -shared -O2 -fstack-protector Dumper.o -o blib/arch/auto/Data/Dumper/Dumper.so \ \
chmod 755 blib/arch/auto/Data/Dumper/Dumper.so cp Dumper.bs blib/arch/auto/Data/Dumper/Dumper.bs chmod 644 blib/arch/auto/Data/Dumper/Dumper.bs PERL_DL_NONLAZY=1 /var/lib/jenkins/perl/perl-5.10.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0\, 'blib/lib'\, 'blib/arch')" t/*.t t/bless.t ..................... 1/11 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1. t/bless.t ..................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/11 subtests t/bless_var_method.t .......... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/bless_var_method.t .......... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/bugs.t ...................... 1/15 Malformed UTF-8 character (fatal) at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 560. # Looks like you planned 15 tests but ran 6. # Looks like your test exited with 9 just after 6. t/bugs.t ...................... Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 9/15 subtests (less 1 skipped subtest: 5 okay) t/deparse.t ................... ok
t/dumper.t .................... Failed 2/201 subtests t/dumpperl.t .................. 1/22 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 22 tests but ran 18. # Looks like your test exited with 9 just after 18. t/dumpperl.t .................. Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 4/22 subtests t/freezer.t ................... 1/15 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 15 tests but ran 11. # Looks like your test exited with 9 just after 11. t/freezer.t ................... Dubious\, test returned 9 (wstat 2304\, 0x900) Failed 4/15 subtests t/indent.t .................... Use of implicit split to @_ is deprecated at t/indent.t line 100. Use of implicit split to @_ is deprecated at t/indent.t line 101. t/indent.t .................... 1/10 # Failed test 'Indent(3) annotates array elements with their indices' # at t/indent.t line 96. # '$VAR1 = [ # #0 # 'foo'\, # #1 # 42 # ]; # ' # doesn't match '(?s-xim:\#0.+'foo'.+\#1.+'42')' # Looks like you failed 1 test of 10. t/indent.t .................... Dubious\, test returned 1 (wstat 256\, 0x100) Failed 1/10 subtests t/misc.t ...................... ok
t/names.t ..................... ok
t/overload.t .................. ok
t/pair.t ...................... ok
t/perl-74170.t ................ Can't locate object method "Dumpxs" via package "Data::Dumper" at t/perl-74170.t line 28. # Looks like your test exited with 255 before it could output anything. t/perl-74170.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 1/1 subtests t/purity_deepcopy_maxdepth.t .. ok
t/qr.t ........................ ok
t/quotekeys.t ................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/quotekeys.t ................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/10 subtests t/seen.t ...................... ok
t/sortkeys.t .................. Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sortkeys.t .................. Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 23/23 subtests t/sparseseen.t ................ Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/sparseseen.t ................ Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/terse.t ..................... ok
t/toaster.t ................... Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like your test exited with 255 before it could output anything. t/toaster.t ................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 8/8 subtests t/values.t .................... ok
Test Summary Report
t/bless.t (Wstat: 65280 Tests: 1 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 11 tests but ran 1. t/bless_var_method.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/bugs.t (Wstat: 2304 Tests: 6 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 15 tests but ran 6. t/dumper.t (Wstat: 0 Tests: 201 Failed: 2) Failed tests: 196\, 198 t/dumpperl.t (Wstat: 2304 Tests: 18 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 22 tests but ran 18. t/freezer.t (Wstat: 2304 Tests: 11 Failed: 0) Non-zero exit status: 9 Parse errors: Bad plan. You planned 15 tests but ran 11. t/indent.t (Wstat: 256 Tests: 10 Failed: 1) Failed test: 9 Non-zero exit status: 1 t/perl-74170.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 1 tests but ran 0. t/quotekeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 10 tests but ran 0. t/sortkeys.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 23 tests but ran 0. t/sparseseen.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. t/toaster.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: Bad plan. You planned 8 tests but ran 0. Files=22\, Tests=349\, 1 wallclock secs ( 0.08 usr 0.04 sys + 0.72 cusr 0.11 csys = 0.95 CPU) Result: FAIL Failed 12/22 test programs. 3/349 subtests failed. make: *** [test_dynamic] Error 255 ----8\<----------8\<--------8\<--------8\<--------8\<--------8\<--------8\<----
On Wed Feb 27 02:03:54 2013\, dolmen wrote:
Look like I did run the test with the system perl (5.12.4) instead of our custom-built 5.10.1. Anyway\, the bug still applies.
Here is the result of the build with 5.10.1 (corresponding to the perl with which perlbug ran).
I confirmed this comparing 5.14.0 and 5.16.0. Here is the output on each version of two representative tests:
$ /usr/local/bin/perl5.14.0 -Iblib/lib t/bless.t 1..11 ok 1 - use Data::Dumper; Undefined subroutine &Data::Dumper::Dumpxs called at blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1.
$ /usr/local/bin/perl5.14.0 -Iblib/lib t/indent.t 1..10 ok 1 - absence of Indent is same as Indent() ok 2 - absence of Indent is same as Indent(undef) ok 3 - absence of Indent is different from Indent(0) ok 4 - Indent(0) is different from Indent(1) ok 5 - Indent(0) is more compact than Indent(1) ok 6 - absence of Indent is same as Indent(2)\, i.e.\, 2 is default ok 7 - Indent(1) is more compact than Indent(2) ok 8 - On arrays\, Indent(2) is different from Indent(3) not ok 9 - Indent(3) annotates array elements with their indices # Failed test 'Indent(3) annotates array elements with their indices' # at t/indent.t line 96. # '$VAR1 = [ # #0 # 'foo'\, # #1 # 42 # ]; # ' # doesn't match '(?^s:\#0.+'foo'.+\#1.+'42')' ok 10 - Indent(3) runs 2 lines longer than Indent(2) # Looks like you failed 1 test of 10.
# 5.16.0 is my default perl
$ /usr/local/bin/perl5.16.0 -Iblib/lib t/bless.t 1..11 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly
$ /usr/local/bin/perl5.16.0 -Iblib/lib t/indent.t 1..10 ok 1 - absence of Indent is same as Indent() ok 2 - absence of Indent is same as Indent(undef) ok 3 - absence of Indent is different from Indent(0) ok 4 - Indent(0) is different from Indent(1) ok 5 - Indent(0) is more compact than Indent(1) ok 6 - absence of Indent is same as Indent(2)\, i.e.\, 2 is default ok 7 - Indent(1) is more compact than Indent(2) ok 8 - On arrays\, Indent(2) is different from Indent(3) ok 9 - Indent(3) annotates array elements with their indices ok 10 - Indent(3) runs 2 lines longer than Indent(2)
I don't yet have a diagnosis.
The RT System itself - Status changed from 'new' to 'open'
On Wed Feb 27 02:03:54 2013\, dolmen wrote:
Look like I did run the test with the system perl (5.12.4) instead of our custom-built 5.10.1. Anyway\, the bug still applies.
Here is the result of the build with 5.10.1 (corresponding to the perl with which perlbug ran).
----8\<----------8\<--------8\<--------8\<--------8\<--------8\<--------8\<---- $ /var/lib/jenkins/perl/perl-5.10.1/bin/perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Data::Dumper Writing MYMETA.yml and MYMETA.json jenkins@jenkins:\~/.cpan/build/Data-Dumper-2.143-5tgcqI$ make test cp Dumper.pm blib/lib/Data/Dumper.pm /var/lib/jenkins/perl/perl-5.10.1/bin/perl /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/xsubpp -typemap /var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/ExtUtils/typemap Dumper.xs
Dumper.xsc && mv Dumper.xsc Dumper.c cc -c -DNO_MATHOMS -DPERL_DISABLE_PMC -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"2.143\" -DXS_VERSION=\"2.143\" -fPIC "-I/var/lib/jenkins/perl/perl-5.10.1/lib/5.10.1/x86_64-linux/CORE" -DUSE_PPPORT_H Dumper.c Running Mkbootstrap for Data::Dumper () chmod 644 Dumper.bs rm -f blib/arch/auto/Data/Dumper/Dumper.so cc -shared -O2 -fstack-protector Dumper.o -o blib/arch/auto/Data/Dumper/Dumper.so \ \
chmod 755 blib/arch/auto/Data/Dumper/Dumper.so cp Dumper.bs blib/arch/auto/Data/Dumper/Dumper.bs chmod 644 blib/arch/auto/Data/Dumper/Dumper.bs PERL_DL_NONLAZY=1 /var/lib/jenkins/perl/perl-5.10.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0\, 'blib/lib'\, 'blib/arch')" t/*.t t/bless.t ..................... 1/11 Undefined subroutine &Data::Dumper::Dumpxs called at /home/jenkins/.cpan/build/Data-Dumper-2.143-5tgcqI/blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1. t/bless.t ..................... Dubious\, test returned 255 (wstat 65280\, 0xff00) Failed 10/11 subtests ...
t/indent.t .................... Use of implicit split to @_ is deprecated at t/indent.t line 100. Use of implicit split to @_ is deprecated at t/indent.t line 101. t/indent.t .................... 1/10 # Failed test 'Indent(3) annotates array elements with their indices' # at t/indent.t line 96. # '$VAR1 = [ # #0 # 'foo'\, # #1 # 42 # ]; # ' # doesn't match '(?s-xim:\#0.+'foo'.+\#1.+'42')' # Looks like you failed 1 test of 10. t/indent.t .................... Dubious\, test returned 1 (wstat 256\, 0x100) Failed 1/10 subtests
Unless my eyes deceive me (it has happened!)\, the only difference I see between the got and the expected is the absence of quoting around '42' in the got.
This sounds like the same problem being discussed in RT #72794.
Thank you very much. Jim Keenan
According to cpantesters reports\, tests of Data::Dumper 2.143 fail on everything below 5.14.
According to cpantesters reports\, tests of Data::Dumper 2.143 fail on everything below 5.14.
On Thu Feb 28 08:45:23 2013\, dolmen wrote:
According to cpantesters reports\, tests of Data::Dumper 2.143 fail on everything below 5.14.
It's worse. On each of two different machines\, I used the 'cpan' shell to 'test Data::Dumper'. I then inserted a debugging line calling out the D::D version number into Dumper.pm in each location. I then used my everyday\, recent versions of 'prove' and 'perl' to run one file from the test suite. I got different results on the two different machines.
See attached. The 5.16.0 on Linux was built from source; the 5.16.2 on Darwin was installed using 'perlbrew'. On Darwin\, with 5.16.2\, running the test with 'perl' gave the same error we're seeing on all those pre-5.14.0 cpantesters.
While many tests were added to the distro between D::D 2.139 and 2.143\, the code changes to the key files\, Dumper.pm and Dumper.xs\, were relatively small. So I'm at a loss as to how to explain this.
Help!
Thank you very much. Jim Keenan
Results on Linux/i386: This is perl 5\, version 16\, subversion 0 (v5.16.0) built for i686-linux
[li11-226:Data-Dumper-2.143-7fodS5] 515 $ prove -vb t/bless.t t/bless.t .. 1..11 $Data::Dumper::VERSION: 2.143 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly ok All tests successful. Files=1\, Tests=11\, 0 wallclock secs ( 0.03 usr 0.00 sys + 0.05 cusr 0.00 csys = 0.08 CPU) Result: PASS [li11-226:Data-Dumper-2.143-7fodS5] 516 $ /usr/local/bin/perl -Iblib/lib t/bless.t 1..11 $Data::Dumper::VERSION: 2.143 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly
Results on Darwin x86_64: This is perl 5\, version 16\, subversion 2 (v5.16.2) built for darwin-2level
$ prove -vb t/bless.t t/bless.t .. 1..11 $Data::Dumper::VERSION: 2.143 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly ok All tests successful. Files=1\, Tests=11\, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.04 cusr 0.00 csys = 0.08 CPU) Result: PASS
$ perl -Iblib/lib t/bless.t 1..11 $Data::Dumper::VERSION: 2.143 ok 1 - use Data::Dumper; Undefined subroutine &Data::Dumper::Dumpxs called at blib/lib/Data/Dumper.pm line 223. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1.
On Thu\, Feb 28\, 2013 at 7:08 PM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote:
Undefined subroutine &Data::Dumper::Dumpxs called at blib/lib/Data/Dumper.pm line 223.
I've tried commenting on perlbug and it's eating my replies\, so I'll reply here. Apologies if it shows up multiple times.
Problem is that tests are overriding $Data::Dumper::Useperl when they shouldn't (trying to test XS when XS doesn't work).
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found: _isWORDCHAR
David
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On Thu\, Feb 28\, 2013 at 7:08 PM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote:
Undefined subroutine &Data::Dumper::Dumpxs called at blib/lib/Data/Dumper.pm line 223.
I've tried commenting on perlbug and it's eating my replies\, so I'll reply here. Apologies if it shows up multiple times.
Problem is that tests are overriding $Data::Dumper::Useperl when they shouldn't (trying to test XS when XS doesn't work).
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
David
David\, I don't understand your response. It doesn't seem to take into account the problem I reported in my most recent (Feb 28) post\, namely\, that I can reproduce the problem on a current (5.16.0) Perl on at least one operating system (Darwin). (And I've since reproduced it on a second Darwin machine\, this time Darwin/PPC.)
Moreover\, the test file that I used to demonstrate this in my last post\, t/bless.t\, is one file to which we made no changes whatsoever in going from D::D 2.139 to 2.143. So even if the "tests are overriding $Data::Dumper::Useperl when they shouldn't"\, why is this problem only showing up with 2.143 and not earlier versions?
I'm attaching output from three different ways of testing one test file from D::D 2.143 on the same (Darwin) machine: (a) with the latest installed 'prove'; (b) with installed perl 5.16; (c) with blead as of today.
Thank you very much. Jim Keenan
[Data-Dumper-2.143-9VJyiY] $ prove -vb t/bless.t t/bless.t .. 1..11 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly ok All tests successful. Files=1\, Tests=11\, 1 wallclock secs ( 0.13 usr 0.04 sys + 0.22 cusr 0.05 csys = 0.44 CPU) Result: PASS
[Data-Dumper-2.143-9VJyiY] $ perl -Iblib/lib t/bless.t 1..11 ok 1 - use Data::Dumper; Undefined subroutine &Data::Dumper::Dumpxs called at blib/lib/Data/Dumper.pm line 222. # Looks like you planned 11 tests but ran 1. # Looks like your test exited with 255 just after 1.
[Data-Dumper-2.143-9VJyiY] $~/gitwork/perl/perl -Iblib/lib -I/Users/jimk/gitwork/perl/lib -I/Users/jimk/gitwork/perl/cpan/Test-Simple/lib t/bless.t 1..11 ok 1 - use Data::Dumper; ok 2 - package name in bless is escaped if needed ok 3 - eval reverts dump ok 4 - package name in bless is escaped if needed ok 5 - eval reverts dump ok 6 - We can dump blessed qr//'s properly ok 7 - package name in bless is escaped if needed ok 8 - eval reverts dump ok 9 - package name in bless is escaped if needed ok 10 - eval reverts dump ok 11 - We can dump blessed qr//'s properly
On Sun\, Mar 3\, 2013 at 9:03 PM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote:
[Data-Dumper-2.143-9VJyiY] $ perl -Iblib/lib t/bless.t
Try 'perl -Mblib t/bless.t'
-Iblib/lib is not sufficient because it doesn't set up the architecture specific library correctly
Regardless\, if $Data::Dumper::Useperl is true after Data::Dumper is loaded\, tests MUST NOT override it to false to test XS.
My opinion is that there should be one set of tests that doesn't touch Useperl. It will be XS or pure perl depending on whether the XS works.
Then have another set of tests that localizes $Useperl to 1. This tests the pure perl variation. Those tests can be skipped if $Useperl is already 1.
Once all that is fixed\, see if you still have problems wherever you see them now.
David
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
Thank you very much. Jim Keenan
On Mon Mar 04 10:40:08 2013\, xdg@xdg.me wrote:
On Sun\, Mar 3\, 2013 at 9:03 PM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote:
[Data-Dumper-2.143-9VJyiY] $ perl -Iblib/lib t/bless.t
Try 'perl -Mblib t/bless.t'
-Iblib/lib is not sufficient because it doesn't set up the architecture specific library correctly
Ah\, that's what I was missing.
Regardless\, if $Data::Dumper::Useperl is true after Data::Dumper is loaded\, tests MUST NOT override it to false to test XS.
My opinion is that there should be one set of tests that doesn't touch Useperl. It will be XS or pure perl depending on whether the XS works.
Then have another set of tests that localizes $Useperl to 1. This tests the pure perl variation. Those tests can be skipped if $Useperl is already 1.
I am working on this. Since there are quite a few test files to look at it\, it will take some time.
Thank you very much. Jim Keenan
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
--Steffen
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
--Steffen
would ppport.h help?
-- bulk88 ~ bulk88 at hotmail.com
On 4 March 2013 19:38\, David Golden \xdg@​xdg\.me wrote:
On Sun\, Mar 3\, 2013 at 9:03 PM\, James E Keenan via RT \perlbug\-followup@​perl\.org wrote:
[Data-Dumper-2.143-9VJyiY] $ perl -Iblib/lib t/bless.t
Try 'perl -Mblib t/bless.t'
-Iblib/lib is not sufficient because it doesn't set up the architecture specific library correctly
Regardless\, if $Data::Dumper::Useperl is true after Data::Dumper is loaded\, tests MUST NOT override it to false to test XS.
My opinion is that there should be one set of tests that doesn't touch Useperl. It will be XS or pure perl depending on whether the XS works.
Then have another set of tests that localizes $Useperl to 1. This tests the pure perl variation. Those tests can be skipped if $Useperl is already 1.
Unless DD has changed more than I think it is not just $Useperl that overrides XS\, it is also $Useqq.
Yves
-- perl -Mre=debug -e "/just|another|perl|hacker/"
On Thu Mar 07 02:26:54 2013\, demerphq wrote:
Unless DD has changed more than I think it is not just $Useperl that overrides XS\, it is also $Useqq.
And probably $Deparse as well\, as suggested by the following code from Dumper.pm:
######### 223 unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) || 224 $Data::Dumper::Useqq || (ref($_[0]) && $_[0]->{useqq}) || 225 $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse}); 226 return &Dumpperl; #########
However\, the immediate problem is that much of the test suite has been developed on the basis of "Let's make sure we test both the XS and pure-perl versions."
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
Well\, do you have a way around the problem David describes above?
I am in the process of restructuring the test suite so as not to mix tests of the XS and pure perl versions inappropriately. That will resolve most of the test failures\, but not all of them.
On Thu\, Mar 07\, 2013 at 03:23:18AM -0800\, James E Keenan via RT wrote:
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
Well\, do you have a way around the problem David describes above?
I am in the process of restructuring the test suite so as not to mix tests of the XS and pure perl versions inappropriately. That will resolve most of the test failures\, but not all of them.
Please do not do this. For one you could inadevertently insert mistakes into the tests \, and moreover this is the wrong thing to do overall. Here is my train of thought:
This is not an ivory-tower nice-to-have - after all there is code in the wild (and probably even on CPAN) which uses D::D as a poor man's Sereal or some-such. Telling them "you need to upgrade this module\, oh and btw your serialization code is now 100x slower" is... I can't find the right expletive ;)
Also it is frustrating because of the actual barrier to entry for a profficient C programmer - it does look like a much more trivial fix in C-land\, an ifdef or somesuch (but again - my C is laughable). So while I or anyone else could spend time "fixing" the tests\, it is ultimately wasted effort. Mainly because it will take someone with sufficient knowledge of the machinery (ideally the person who broke it in the first place) about 30 seconds to decide where the ifdef needs to live.
Please reconsider this paper-over\, this is not progress by any stretch of imagination.
On Thu\, Mar 7\, 2013 at 6:43 AM\, Peter Rabbitson \rabbit\-p5p@​rabbit\.us wrote:
This is not an ivory-tower nice-to-have - after all there is code in the wild (and probably even on CPAN) which uses D::D as a poor man's Sereal or some-such. Telling them "you need to upgrade this module\, oh and btw your serialization code is now 100x slower" is... I can't find the right expletive ;)
Should we reconsider having a pure perl version at all?
Then someone who tries to upgrade without a compiler just gets "BOOM" instead of something that works but is 100x slower.
David
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Thu\, Mar 07\, 2013 at 06:48:19AM -0500\, David Golden wrote:
On Thu\, Mar 7\, 2013 at 6:43 AM\, Peter Rabbitson \rabbit\-p5p@​rabbit\.us wrote:
This is not an ivory-tower nice-to-have - after all there is code in the wild (and probably even on CPAN) which uses D::D as a poor man's Sereal or some-such. Telling them "you need to upgrade this module\, oh and btw your serialization code is now 100x slower" is... I can't find the right expletive ;)
Should we reconsider having a pure perl version at all?
Then someone who tries to upgrade without a compiler just gets "BOOM" instead of something that works but is 100x slower.
This is in interesting thought\, with parallels to the Scalar::Util fiasco. And in fact currently this *is* the case - D::D will not build its XS portion and will fail tests. So in a sense it does go BOOM just not early enough.
The problem is however that (unlike S::U) the PP version is the complete implementation\, and the XS is an incomplete (no deparse and other stuff) but vastly more efficient implementation.
But still - +1 on not building without the XS portion (i.e. a make-time failure\, not a make test-time failure)
On 03/07/2013 10:21 AM\, bulk88 via RT wrote:
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
would ppport.h help?
I'd be surprised if it doesn't ship with ppport.h - so no.
--Steffen
On Thu\, Mar 7\, 2013 at 6:52 AM\, Peter Rabbitson \rabbit\-p5p@​rabbit\.us wrote:
But still - +1 on not building without the XS portion (i.e. a make-time failure\, not a make test-time failure)
Or\, make the Makefile.PL check for a compiler and fail at configure time.
David
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Thu Mar 07 03:23:17 2013\, jkeenan wrote:
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
Well\, do you have a way around the problem David describes above?
I am in the process of restructuring the test suite so as not to mix tests of the XS and pure perl versions inappropriately. That will resolve most of the test failures\, but not all of them.
Thanks to a conversation on #p5p tonight including rjbs\, xdg\, khw\, perigrin\, mauke and myself\, we have a diagnosis and a proposed fix.
I have reworked the test suite along lines suggested by xdg to separate out tests of the XS and pure-perl versions.
And if we revert a change introduced in Data-Dumper 2.140 (a version which appeared in blead but was not pushed to CPAN)\, we get the tests passing at least back to 5.12.0.
I am attaching a patch which\, I stress\, began from Data-Dumper v2.143 *on CPAN* rather than from blead. So this patch includes files that we would not have to include in blead. It should\, however\, suffice for the purpose of code review. See also https://github.com/jkeenan/Data-Dumper.
On 03/07/2013 08:05 PM\, James E Keenan via RT wrote:
On Thu Mar 07 03:23:17 2013\, jkeenan wrote:
On Wed Mar 06 21:36:36 2013\, smueller@cpan.org wrote:
On 03/07/2013 03:55 AM\, James E Keenan via RT wrote:
On Sat Mar 02 19:58:34 2013\, xdg@xdg.me wrote:
On older Perl's\, XS doesn't load because of a missing symbol:
Symbol not found​: \_isWORDCHAR
Does this mean that\, going forward from 2.143\, we should not support the XS version when compiled on Perls older than 5.14.0?
From a maintenance point-of-view\, I would endorse that.
That would cripple the module.
Well\, do you have a way around the problem David describes above?
I am in the process of restructuring the test suite so as not to mix tests of the XS and pure perl versions inappropriately. That will resolve most of the test failures\, but not all of them.
Thanks to a conversation on #p5p tonight including rjbs\, xdg\, khw\, perigrin\, mauke and myself\, we have a diagnosis and a proposed fix.
I have reworked the test suite along lines suggested by xdg to separate out tests of the XS and pure-perl versions.
And if we revert a change introduced in Data-Dumper 2.140 (a version which appeared in blead but was not pushed to CPAN)\, we get the tests passing at least back to 5.12.0.
I am attaching a patch which\, I stress\, began from Data-Dumper v2.143 *on CPAN* rather than from blead. So this patch includes files that we would not have to include in blead. It should\, however\, suffice for the purpose of code review. See also https://github.com/jkeenan/Data-Dumper.
--- via perlbug: queue: perl5 status: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
I think it would be slightly preferable to not revert the isWORDCHAR patch\, but to define it in older Perls to be isALNUM.
On Thu Mar 07 21:57:05 2013\, public@khwilliamson.com wrote:
I think it would be slightly preferable to not revert the isWORDCHAR patch\, but to define it in older Perls to be isALNUM.
I myself would not know how to do that. Could you supply a patch?
Thank you very much. Jim Keenan
On 03/08/2013 05:55 AM\, James E Keenan via RT wrote:
On Thu Mar 07 21:57:05 2013\, public@khwilliamson.com wrote:
I think it would be slightly preferable to not revert the isWORDCHAR patch\, but to define it in older Perls to be isALNUM.
I myself would not know how to do that. Could you supply a patch?
Thank you very much. Jim Keenan
--- via perlbug: queue: perl5 status: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
Attached
On Fri\, Mar 08\, 2013 at 10:08:43AM -0700\, Karl Williamson wrote:
--- a/dist/Data-Dumper/Dumper.xs +++ b/dist/Data-Dumper/Dumper.xs @@ -12\,6 +12\,10 @@ # define DD_USE_OLD_ID_FORMAT #endif
+#ifndef isWORDCHAR +# define isWORDCHAR(c) isALNUM(c) +#endif + static I32 num_q (const char *s\, STRLEN slen); static I32 esc_q (char *dest\, const char *src\, STRLEN slen); static I32 esc_q_utf8 (pTHX_ SV *sv\, const char *src\, STRLEN slen);
I find it ironic that what I said here [1] turned out to be 100% correct. So now we have a ton of time wasted by Jim Keenan and tests rewritten for no reason other than possibly introducing extra bugs to them. Way to go :(
[1] http://www.nntp.perl.org/group/perl.perl5.porters/2013/03/msg199881.html
On Friday\, March 8\, 2013\, Karl Williamson wrote:
On 03/08/2013 05:55 AM\, James E Keenan via RT wrote:
On Thu Mar 07 21:57:05 2013\, public@khwilliamson.com wrote:
I think it would be slightly preferable to not revert the isWORDCHAR patch\, but to define it in older Perls to be isALNUM.
I myself would not know how to do that. Could you supply a patch?
Thank you very much. Jim Keenan
--- via perlbug: queue: perl5 status: open https://rt.perl.org:443/rt3/**Ticket/Display.html?id=116961\https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
Attached
I'm worse than riba at C and the bowls of the XS toolchain but it seems that something like this should probably end up in ppport.h so that others (not Data::Dumper) can take advantage of this same aliasing. No?
Karl and Jim both stated last night on IRC they didn't know how to do that\, and I certainly don't but maybe someone playing along at home could point in the right direction and one of us can take care of it?
-Chris
On Fri\, Mar 8\, 2013 at 2:08 PM\, Karl Williamson \public@​khwilliamson\.com wrote:
On 03/08/2013 05:55 AM\, James E Keenan via RT wrote:
On Thu Mar 07 21:57:05 2013\, public@khwilliamson.com wrote:
I think it would be slightly preferable to not revert the isWORDCHAR patch\, but to define it in older Perls to be isALNUM.
I myself would not know how to do that. Could you supply a patch?
Thank you very much. Jim Keenan
--- via perlbug: queue: perl5 status: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
Shouldn't isWORDCHAR(c)'s definition be (isALNUM(c) || *(c) == '_')?
On Fri Mar 08 09:58:59 2013\, Hugmeir wrote:
Shouldn't isWORDCHAR(c)'s definition be (isALNUM(c) || *(c) == '_')?
I suspect the answer to that starts with: "Do it in a branch and push to a smoke me."
On 03/08/2013 11:01 AM\, James E Keenan via RT wrote:
On Fri Mar 08 09:58:59 2013\, Hugmeir wrote:
Shouldn't isWORDCHAR(c)'s definition be (isALNUM(c) || *(c) == '_')?
I suspect the answer to that starts with: "Do it in a branch and push to a smoke me."
--- via perlbug: queue: perl5 status: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
The answer to this is no\, and reinforces why I made the change in the first place. isALNUM is identical to isWORDCHAR\, but is misleadingly named\, and that name has led you guys astray.
There is an isALNUMC\, as well. I believe the extra C means that it is the C language's version of an alphanumeric. So this is correct:
isWORDCHAR === isALNUM === (isALNUMC(c) || *(c) == '_')
On 03/08/2013 10:17 AM\, Peter Rabbitson wrote:
On Fri\, Mar 08\, 2013 at 10:08:43AM -0700\, Karl Williamson wrote:
--- a/dist/Data-Dumper/Dumper.xs +++ b/dist/Data-Dumper/Dumper.xs @@ -12\,6 +12\,10 @@ # define DD_USE_OLD_ID_FORMAT #endif
+#ifndef isWORDCHAR +# define isWORDCHAR(c) isALNUM(c) +#endif + static I32 num_q (const char *s\, STRLEN slen); static I32 esc_q (char *dest\, const char *src\, STRLEN slen); static I32 esc_q_utf8 (pTHX_ SV *sv\, const char *src\, STRLEN slen);
I find it ironic that what I said here [1] turned out to be 100% correct. So now we have a ton of time wasted by Jim Keenan and tests rewritten for no reason other than possibly introducing extra bugs to them. Way to go :(
[1] http://www.nntp.perl.org/group/perl.perl5.porters/2013/03/msg199881.html
I am the one who broke it in the first place\, and you were right that that person could simply add an #ifdef in the right place.
The reason I didn't notice that I was the culprit is because of the leading underscore in the error message. I knew I hadn't done that. Yesterday on #irc\, someone pointed out that that the underscore might be added by some C compilers; something I didn't know.
My point is that we all come here with varying skill sets and knowledge; and no one knows it all. Hopefully we learn from our and others' mistakes\, and we make fewer over time.
I made the change that broke D:D for older Perls. I did not realize there was an issue in patching a core module in that it could be dual-lived. perlhack does not address the issue. Our documentation needs to be updated about this; I don't know what it should say. Suggestions welcome.
I haven't been following this thread\, because it is out of my area of expertise\, so I don't understand the issues\, and don't have an opinion on what is best. I do believe that your statement "Way to go" is demotivating of people who have worked on it\, and was unnecessary and anti-constructive.
One lesson that could be learned from this is to use Nicholas Clark's bisect tool early. That would have pinned me as the culprit\, and I would have gotten involved then. I suspect that you have enough expertise so that you could have done that yourself.
Karl Williamson
On 03/08/2013 11:27 AM\, Karl Williamson wrote:
On 03/08/2013 11:01 AM\, James E Keenan via RT wrote:
On Fri Mar 08 09:58:59 2013\, Hugmeir wrote:
Shouldn't isWORDCHAR(c)'s definition be (isALNUM(c) || *(c) == '_')?
I suspect the answer to that starts with: "Do it in a branch and push to a smoke me."
--- via perlbug: queue: perl5 status: open https://rt-archive.perl.org/perl5/Ticket/Display.html?id=116961
The answer to this is no\, and reinforces why I made the change in the first place. isALNUM is identical to isWORDCHAR\, but is misleadingly named\, and that name has led you guys astray.
There is an isALNUMC\, as well. I believe the extra C means that it is the C language's version of an alphanumeric. So this is correct:
isWORDCHAR === isALNUM === (isALNUMC(c) || *(c) == '_')
I forgot to mention that I've added a new synonym in 5.17 for isALNUMC; and it is isALPHANUMERIC. I think that is much clearer; I couldn't think of a shorter name\, since isALNUM was already taken.
On Fri\, Mar 08\, 2013 at 11:43:38AM -0700\, Karl Williamson wrote:
On 03/08/2013 10:17 AM\, Peter Rabbitson wrote:
On Fri\, Mar 08\, 2013 at 10:08:43AM -0700\, Karl Williamson wrote:
--- a/dist/Data-Dumper/Dumper.xs +++ b/dist/Data-Dumper/Dumper.xs @@ -12\,6 +12\,10 @@ # define DD_USE_OLD_ID_FORMAT #endif
+#ifndef isWORDCHAR +# define isWORDCHAR(c) isALNUM(c) +#endif + static I32 num_q (const char *s\, STRLEN slen); static I32 esc_q (char *dest\, const char *src\, STRLEN slen); static I32 esc_q_utf8 (pTHX_ SV *sv\, const char *src\, STRLEN slen);
I find it ironic that what I said here [1] turned out to be 100% correct. So now we have a ton of time wasted by Jim Keenan and tests rewritten for no reason other than possibly introducing extra bugs to them. Way to go :(
[1] http://www.nntp.perl.org/group/perl.perl5.porters/2013/03/msg199881.html
I am the one who broke it in the first place\, and you were right that that person could simply add an #ifdef in the right place.
The reason I didn't notice that I was the culprit is because of the leading underscore in the error message. I knew I hadn't done that. Yesterday on #irc\, someone pointed out that that the underscore might be added by some C compilers; something I didn't know.
My point is that we all come here with varying skill sets and knowledge; and no one knows it all. Hopefully we learn from our and others' mistakes\, and we make fewer over time.
I made the change that broke D:D for older Perls. I did not realize there was an issue in patching a core module in that it could be dual-lived. perlhack does not address the issue. Our documentation needs to be updated about this; I don't know what it should say. Suggestions welcome.
I haven't been following this thread\, because it is out of my area of expertise\, so I don't understand the issues\, and don't have an opinion on what is best. I do believe that your statement "Way to go" is demotivating of people who have worked on it\, and was unnecessary and anti-constructive.
The "way to go" comment was only aimed at the fact that now we have a rewritten D::D test suite\, which in my opinion is very anti-constructive (in fact outright dangerous). That despite me earlier chiming in wrt the test suite "problem" being a red herring. I still maintain that this (splitting of the tests) should not have happened.
One lesson that could be learned from this is to use Nicholas Clark's bisect tool early. That would have pinned me as the culprit\, and I would have gotten involved then. I suspect that you have enough expertise so that you could have done that yourself.
I (apparently wrongly) assumed that the underlying problem (failure to compile the .xs part) was apparent from the first message referencing this issue. As I noted earlier - I do not know much about the lifecycle of a C program (including compilation linking and all other vagaries). Hence I automatically assume to be at the bottom of that particular foodchain\, and if *I* see something\, then "obviously" everyone else sees the problem too.
So my point of view at the time was (and still kinda is): "Anyone with basic C chops knows what the underlying issue is\, but refuses to fix it for "unsupported perls" on principle\, and instead the remaining folks rather piss about with working around this in the tests".
Forgive me for being exasperated given the above. My comments may be harsh but I refuse to qualify them as being "unnecessary".
Cheers
On Fri\, Mar 8\, 2013 at 1:43 PM\, Karl Williamson \public@​khwilliamson\.com wrote:
I made the change that broke D:D for older Perls. I did not realize there was an issue in patching a core module in that it could be dual-lived. perlhack does not address the issue. Our documentation needs to be updated about this; I don't know what it should say. Suggestions welcome.
I think perhaps we just need a short note to the effect that anything in cpan/ and dist/ are dual-life and should not be made incompatible with older Perls without good reason and approval of the Pumpking.
With respect to attitudes\, email is hard and we all know that.
But... I think it's a good practice to assume that people on p5p have the best of intentions\, even if the results don't turn out the way we all want.
Karl was trying to make things better. So was Jim.
Peter was trying to save people on older Perl's from upgrading Data::Dumper and slowing down. That's trying to make things better\, too.
Let's focus on the technical issues and try to respect people's intentions and effort.
David
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Fri\, Mar 8\, 2013 at 1:55 PM\, Peter Rabbitson \rabbit\-p5p@​rabbit\.us wrote:
So my point of view at the time was (and still kinda is): "Anyone with basic C chops knows what the underlying issue is\, but refuses to fix it for "unsupported perls" on principle\, and instead the remaining folks rather piss about with working around this in the tests".
I haven't had tuits to review how the tests were split out\, but despite the missing symbol issue\, they *were* broken and would fail for anyone who installed Data::Dumper without a compiler available.
Jim's efforts to address that weren't useless.
We had *two* bugs that needed fixing.
David.
-- David Golden \xdg@​xdg\.me Take back your inbox! → http://www.bunchmail.com/ Twitter/IRC: @xdg
On Fri Mar 08 11:46:24 2013\, xdg@xdg.me wrote:
On Fri\, Mar 8\, 2013 at 1:55 PM\, Peter Rabbitson \rabbit\-p5p@​rabbit\.us wrote:
So my point of view at the time was (and still kinda is): "Anyone with basic C chops knows what the underlying issue is\, but refuses to fix it for "unsupported perls" on principle\, and instead the remaining folks rather piss about with working around this in the tests".
I haven't had tuits to review how the tests were split out\, but despite the missing symbol issue\, they *were* broken and would fail for anyone who installed Data::Dumper without a compiler available.
Jim's efforts to address that weren't useless.
We had *two* bugs that needed fixing.
David.
I am attaching a new patch which is essentially the same as the last one I provided\, only specific to blead rather than CPAN. This is what should be reviewed for application to blead; I can provide Steffen with another version more specific to CPAN.
Thank you very much. Jim Keenan
From a39efd2d8a7371a6d6dadebc80a28d01985a0bb6 Mon Sep 17 00:00:00 2001 From: James E Keenan \jkeenan@​cpan\.org Date: Sun\, 10 Mar 2013 11:11:39 -0400 Subject: [PATCH] If isWORDCHAR is not defined\, revert to using isALNUM. While testing\, separate out pure perl and XS versions. Fixes RT #116961.
MANIFEST | 1 + Porting/Maintainers.pl | 2 +- dist/Data-Dumper/Changes | 5 + dist/Data-Dumper/Dumper.pm | 4 +- dist/Data-Dumper/Dumper.xs | 4 + dist/Data-Dumper/t/bless.t | 17 +- dist/Data-Dumper/t/bless_var_method.t | 59 +---- dist/Data-Dumper/t/dumpperl.t | 296 +++++++++--------------- dist/Data-Dumper/t/freezer.t | 72 +------ dist/Data-Dumper/t/freezer_useperl.t | 106 +++++++++ dist/Data-Dumper/t/indent.t | 8 + dist/Data-Dumper/t/perl-74170.t | 22 +- dist/Data-Dumper/t/quotekeys.t | 67 +----- dist/Data-Dumper/t/sortkeys.t | 409 +++++++++++++-------------------- dist/Data-Dumper/t/sparseseen.t | 62 +---- dist/Data-Dumper/t/toaster.t | 62 +---- 16 files changed\, 465 insertions(+)\, 731 deletions(-) create mode 100644 dist/Data-Dumper/t/freezer_useperl.t
On 03/10/2013 04:15 PM\, James E Keenan via RT wrote:
I am attaching a new patch which is essentially the same as the last one I provided\, only specific to blead rather than CPAN. This is what should be reviewed for application to blead; I can provide Steffen with another version more specific to CPAN.
Just for the record: The only differences between core and CPAN versions right now are in "distribution" related files such as Makefile.PL. There is no actual code difference in t/ or lib/. I would feel very strongly inclined to renounce any involvement if the code started to diverge in any way. I've maintained such modules before and have generally tried really hard to eliminate such differences with a vengeance because they make maintenance a nightmare.
Therefore\, if you need to have different code paths in core and on CPAN (and please try to avoid them if at all possible)\, consider using "if ($ENV{PERL_CORE}) {} else {}". This goes for tests only. There's no reason -- ever -- to have the code in lib/ differ. I'm sure you agree to that last bit. :)
Best regards\, Steffen
PS: sorry for the delay in replying. Been travelling.
I have applied Karl's patch as commit d5e7da3f5f24a2f939b1ab09636454644f7dac8a.
As this addresses the initial ticket (at least once a new Data::Dumper is released to CPAN)\, I am marking this ticket as resolved.
The related issue of what to do about Data::Dumper on CPAN for systems without a Perl compiler (mandate a compiler vs fix the tests as discussed) is a separate issue and I'll follow up with people separately.
@xdg - Status changed from 'open' to 'resolved'
Le Jeu. Mar. 14 16:12:59 2013\, dagolden@cpan.org a �crit�:
I have applied Karl's patch as commit d5e7da3f5f24a2f939b1ab09636454644f7dac8a.
As this addresses the initial ticket (at least once a new Data::Dumper is released to CPAN)\, I am marking this ticket as resolved.
Thanks to everyone for the fixes.
Olivier.
Le Jeu. Mar. 14 16:12:59 2013\, dagolden@cpan.org a �crit�:
I have applied Karl's patch as commit d5e7da3f5f24a2f939b1ab09636454644f7dac8a.
As this addresses the initial ticket (at least once a new Data::Dumper is released to CPAN)\, I am marking this ticket as resolved.
Thanks to everyone for the fixes.
Olivier.
Migrated from rt.perl.org#116961 (status was 'resolved')
Searchable as RT116961$