Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the autobox CPAN distribution.

Report information
The Basics
Id: 100247
Status: resolved
Priority: 0/
Queue: autobox

People
Owner: CHOCOLATE [...] cpan.org
Requestors: ilmari+cpan [...] ilmari.org
Cc:
AdminCc:

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



Subject: Assertion failures on DEBUGGING 5.21.x perls
Running the tests on perl 5.21.5 built with -DDEBUGGING gives the following assertion failures: PERL_DL_NONLAZY=1 /home/ilmari/perl5/perlbrew/perls/21.5d/bin/perl5.21.5 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/all.t ............. ok t/autoref.t ......... perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/autoref.t ......... Failed 27/27 subtests t/coderef.t ......... ok t/default.t ......... ok t/export.t .......... ok t/hints.t ........... ok t/import_hashref.t .. ok t/isa.t ............. ok t/merge.t ........... ok t/name.t ............ ok t/rt_46814.t ........ ok t/rt_55652.t ........ ok t/rt_71777.t ........ ok t/rt_80400.t ........ ok t/scalar.t .......... ok t/type.t ............ perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/type.t ............ Failed 23/23 subtests t/universal_type.t .. perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/universal_type.t .. Failed 32/32 subtests t/unmerge.t ......... ok t/version.t ......... ok Test Summary Report ------------------- t/autoref.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 27 tests but ran 0. t/type.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 23 tests but ran 0. t/universal_type.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 32 tests but ran 0. Files=19, Tests=558, 1 wallclock secs ( 0.11 usr 0.03 sys + 0.65 cusr 0.06 csys = 0.85 CPU) Result: FAIL Failed 3/19 test programs. 0/558 subtests failed. make: *** [test_dynamic] Error 255 FAIL This is probably realted to this perl change: commit 586d4abb8e2f0a3c98c8c47e0b5d51925848d8b8 Merge: 26443f8 4b7846e Author: David Mitchell <davem@iabyn.com> Date: Tue Jul 8 16:44:53 2014 +0100 [Merge] add support for ops to link to parent Or more specifically, this specific commit: commit 29e61fd971cd4373e17cf1dd6e954ddea5171299 Author: David Mitchell <davem@iabyn.com> Date: Fri Jun 27 11:52:44 2014 +0100 add op_lastsib and -DPERL_OP_PARENT Add the boolean field op_lastsib to OPs. Within the core, this is set on the last op in an op_sibling chain (so it is synonymous with op_sibling being null). By default, its value is set but not used.
Subject: build.log
cpanm (App::cpanminus) 1.7001 on perl 5.021005 built for x86_64-linux Work directory is /home/ilmari/.cpanm/work/1415643349.26365 You have make /usr/bin/make You have LWP 6.08 You have /bin/tar: tar (GNU tar) 1.26 Copyright © 2011 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by John Gilmore and Jay Fenlason. You have /usr/bin/unzip Checking if you have ExtUtils::MakeMaker 6.31 ... Yes (6.98) Checking if you have ExtUtils::Install 1.46 ... Yes (2.04) Searching autobox on cpanmetadb ... --> Working on autobox Fetching http://www.cpan.org/authors/id/C/CH/CHOCOLATE/autobox-2.82.tar.gz -> OK Unpacking autobox-2.82.tar.gz Entering autobox-2.82 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.98) Configuring autobox-2.82 Running Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for autobox Writing MYMETA.yml and MYMETA.json -> OK Checking dependencies from MYMETA.json ... Checking if you have Scope::Guard 0.20 ... Yes (0.20) Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.98) Building and testing autobox-2.82 cp lib/autobox.pod blib/lib/autobox.pod cp lib/autobox/universal.pm blib/lib/autobox/universal.pm cp lib/autobox.pm blib/lib/autobox.pm Running Mkbootstrap for autobox () chmod 644 autobox.bs /home/ilmari/perl5/perlbrew/perls/21.5d/bin/perl5.21.5 /home/ilmari/perl5/perlbrew/perls/21.5d/lib/5.21.5/ExtUtils/xsubpp -typemap /home/ilmari/perl5/perlbrew/perls/21.5d/lib/5.21.5/ExtUtils/typemap autobox.xs > autobox.xsc && mv autobox.xsc autobox.c ccache gcc -c -I. -fwrapv -DDEBUGGING -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3 -Wall -DVERSION=\"2.82\" -DXS_VERSION=\"2.82\" -fPIC "-I/home/ilmari/perl5/perlbrew/perls/21.5d/lib/5.21.5/x86_64-linux/CORE" autobox.c rm -f blib/arch/auto/autobox/autobox.so gcc -shared -O2 -g -L/usr/local/lib -fstack-protector autobox.o -o blib/arch/auto/autobox/autobox.so \ \ chmod 755 blib/arch/auto/autobox/autobox.so /home/ilmari/perl5/perlbrew/perls/21.5d/bin/perl5.21.5 -MExtUtils::Command::MM -e 'cp_nonempty' -- autobox.bs blib/arch/auto/autobox/autobox.bs 644 Manifying blib/man3/autobox.0 Running Mkbootstrap for autobox () chmod 644 autobox.bs PERL_DL_NONLAZY=1 /home/ilmari/perl5/perlbrew/perls/21.5d/bin/perl5.21.5 "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/all.t ............. ok perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/autoref.t ......... Failed 27/27 subtests t/coderef.t ......... ok t/default.t ......... ok t/export.t .......... ok t/hints.t ........... ok t/import_hashref.t .. ok t/isa.t ............. ok t/merge.t ........... ok t/name.t ............ ok t/rt_46814.t ........ ok t/rt_55652.t ........ ok t/rt_71777.t ........ ok t/rt_80400.t ........ ok t/scalar.t .......... ok perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/type.t ............ Failed 23/23 subtests perl5.21.5: op.c:2290: S_finalize_op: Assertion `!kid->op_lastsib' failed. t/universal_type.t .. Failed 32/32 subtests t/unmerge.t ......... ok t/version.t ......... ok Test Summary Report ------------------- t/autoref.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 27 tests but ran 0. t/type.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 23 tests but ran 0. t/universal_type.t (Wstat: 134 Tests: 0 Failed: 0) Non-zero wait status: 134 Parse errors: Bad plan. You planned 32 tests but ran 0. Files=19, Tests=558, 1 wallclock secs ( 0.10 usr 0.02 sys + 0.64 cusr 0.12 csys = 0.88 CPU) Result: FAIL Failed 3/19 test programs. 0/558 subtests failed. make: *** [test_dynamic] Error 255 -> FAIL Installing autobox failed. See /home/ilmari/.cpanm/work/1415643349.26365/build.log for details. Retry with --force to force install it.
On Mon Nov 10 13:19:41 2014, ilmari wrote: Show quoted text
> Running the tests on perl 5.21.5 built with -DDEBUGGING gives the > following assertion failures:
Here’s a patch to fix the assertion failures, but other tests fail now in 5.21.7, and they are harder to fix. See ticket #100819.
Subject: open_3qDifNhN.txt
diff -rup autobox-2.82-De6j08-orig/autobox.xs autobox-2.82-De6j08/autobox.xs --- autobox-2.82-De6j08-orig/autobox.xs 2014-12-20 16:39:19.000000000 -0800 +++ autobox-2.82-De6j08/autobox.xs 2014-12-20 16:39:54.000000000 -0800 @@ -26,7 +26,10 @@ OP * autobox_ck_subr(pTHX_ OP *o) { * XXX this is fixed in #33311: http://www.nntp.perl.org/group/perl.perl5.porters/2008/02/msg134131.html */ if ((PL_hints & 0x80020000) == 0x80020000) { - OP *prev = ((cUNOPo->op_first->op_sibling) ? cUNOPo : ((UNOP*)cUNOPo->op_first))->op_first; + UNOP *parent = (cUNOPo->op_first->op_sibling) + ? cUNOPo + : ((UNOP*)cUNOPo->op_first); + OP *prev = parent->op_first; OP *o2 = prev->op_sibling; OP *cvop; @@ -51,7 +54,9 @@ OP * autobox_ck_subr(pTHX_ OP *o) { * if the receiver is an @array, %hash, @{ ... } or %{ ... }, then "autoref" it * i.e. the op tree equivalent of inserting a backslash before it */ +#ifndef op_sibling_splice OP *refgen; +#endif U32 toggled = 0; switch (o2->op_type) { @@ -76,10 +81,19 @@ OP * autobox_ck_subr(pTHX_ OP *o) { toggled = 1; } +#ifdef op_sibling_splice + op_sibling_splice((OP *)parent, prev, 0, + newUNOP(OP_REFGEN, 0, + op_sibling_splice( + (OP *)parent, + prev, 1, NULL + ))); +#else refgen = newUNOP(OP_REFGEN, 0, o2); prev->op_sibling = refgen; refgen->op_sibling = o2->op_sibling; o2->op_sibling = NULL; +#endif /* Restore the parentheses in case something else expects them */ if (toggled) {
On Sat Dec 20 19:40:48 2014, SPROUT wrote: Show quoted text
> On Mon Nov 10 13:19:41 2014, ilmari wrote:
> > Running the tests on perl 5.21.5 built with -DDEBUGGING gives the > > following assertion failures:
> > Here’s a patch to fix the assertion failures, but other tests fail now > in 5.21.7, and they are harder to fix. See ticket #100819.
Many thanks, and sorry for the delay. Applied: https://github.com/chocolateboy/autobox/commit/e32da2ea6a4c68ad4255818ed0b4737d3327332b