Closed p6rt closed 9 years ago
Hello,
I updated Rakudo from git last night and did a make spectest. Only one test failed, S02-types/bool.t.
It seems like if I run the entire test, it fails as shown in the attachment. But, if I comment out *any* one of the last dozen or so lines it runs to completion. Also, if I take the line at which the dump occurs...
*is Bool.roll(*).[^10].elems, 10, 'Bool.roll(*) contains at least 10 elems';*
... and place a copy of it after every existing line, the entire file runs.
I would think that this indicates that there must be some sort of boundary condition involved in triggering the dump, perhaps something like garbage collection.
Please let me know of anything you can think of that I could gather that would be helpful in tracking this down.
The environment here is:
rakudo version 2013.02.1-7-gb205e66 built on parrot 4.10.0 revision RELEASE_4_10_0
nqp version 2013.02.1-16-gf70f431 built on parrot 4.10.0 revision RELEASE_4_10_0
Parrot version 4.10.0-devel built for amd64-linux
Fedora 17 linux, 64 bit, kernel 3.7.9-101.fc17.x86_64
Gcc 4.7.2-2.fc17.x86_64
Glibc 2.15-58.fc17.x86_64
Best regards, Ira Kevin Byerly quester (on #perl6 and perlmonks) quester.pm@gmail.com
Script started on Mon 25 Feb 2013 08:40:18 PM HST $ $ $ $ perl6 -v This is perl6 version 2013.02.1-7-gb205e66 built on parrot 4.10.0 revision RELEASE_4_10_0 $ $ $ $ $ cat t/spec/S02-types/bool.t use v6; use Test; plan 51;
#L\<S12/Built-in Enumerations/"Two built-in enumerations are">
# tests True and False are Bool's isa_ok(Bool::True, Bool); isa_ok(Bool::False, Bool);
# tests they keep their Bool'ness when stored my $a = Bool::True; isa_ok($a, Bool);
$a = Bool::False; isa_ok($a, Bool);
# tests that Bool.Bool works isa_ok (Bool::True).Bool, Bool, "Bool.Bool is a Bool"; isa_ok (Bool::False).Bool, Bool, "Bool.Bool is a Bool"; is (Bool::True).Bool, Bool::True, "Bool.Bool works for True"; is (Bool::False).Bool, Bool::False, "Bool.Bool works for False";
# tests that ?Bool works isa_ok ?(Bool::True), Bool, "?Bool is a Bool"; isa_ok ?(Bool::False), Bool, "?Bool is a Bool"; is ?(Bool::True), Bool::True, "?Bool works for True"; is ?(Bool::False), Bool::False, "?Bool works for False";
# tests they work with && and || #?pugs 4 skip 'pass' Bool::True && pass('True works'); Bool::False || pass('False works');
# tests they work with ! !Bool::True || pass('!True works'); !Bool::False && pass('!False works');
# tests True with ok() ok(Bool::True, 'True works');
# tests False with ok() and ! ok(!Bool::False, 'False works');
# tests Bool stringification - interaction with ~ isa_ok(~Bool::True, Str); isa_ok(~Bool::False, Str); #?pugs 2 todo "stringification" is(~Bool::True, 'True', 'Bool stringification (True)'); is(~Bool::False, 'False', 'Bool stringification (False)'); #?pugs 2 todo '.Str' is Bool::True.Str, 'True', 'True.Str'; is Bool::False.Str, 'False', 'False.Str'; #?pugs 2 todo '.gist' is Bool::True.gist, 'True', 'True.gist'; is Bool::False.gist, 'False', 'False.gist'; is Bool::True.perl, 'Bool::True', 'True.perl'; is Bool::False.perl, 'Bool::False', 'False.perl';
# numification - interaction with + #?pugs 2 skip "Numeric" ok(+Bool::True ~~ Numeric); ok(+Bool::False ~~ Numeric); #?pugs 2 todo "Int" isa_ok(+Bool::True, Int, 'True numifies to an Int'); isa_ok(+Bool::False, Int, 'False numifies to an Int');
is(Bool::True.Int, '1', 'True Intifies to 1'); is(Bool::False.Int, '0', 'False Intifies to 1');
is(+Bool::True, '1', 'True numifies to 1'); is(+Bool::False, '0', 'False numifies to 0');
# Arithmetic operations my $bool = Bool::False; is(++$bool, Bool::True, 'Increment of Bool::False produces Bool::True'); #?pugs todo is(++$bool, Bool::True, 'Increment of Bool::True still produces Bool::True'); #?pugs todo 'Cannot cast from VBool True to VCode' is(--$bool, Bool::False, 'Decrement of Bool::True produces Bool::False'); #?pugs todo is(--$bool, Bool::False, 'Decrement of Bool::False produces Bool::False');
# RT #65514 { #?pugs 2 skip 'Cannot cast from VBool True to VCode' ok (0 but Bool::True), 'Bool::True works with "but"'; is (0 but Bool::True), 0, 'Bool::True works with "but"'; #?pugs 2 skip 'Cannot cast from VBool False to VCode' ok !('RT65514' but Bool::False), 'Bool::False works with "but"'; is ('RT65514' but Bool::False), 'RT65514', 'Bool::False works with "but"'; }
#?pugs skip '.key' { is Bool::True.key, 'True', 'Bool::True.key works (is "True")'; is Bool::False.key, 'False', 'Bool::False.key works (is "False")'; }
#?pugs skip '.pick' { my $x = Bool.pick; ok ($x === True || $x === False), 'Bool.pick return True or False'; is Bool.pick(*).elems, 2, 'Bool.pick(*) returns two elems';; my @a = Bool.roll(30); ok @a.grep({$_}), 'Bool.roll(30) contains a True'; ok @a.grep({!$_}), 'Bool.roll(30) contains a False'; is Bool.roll(*).[^10].elems, 10, 'Bool.roll(*) contains at least 10 elems';
}
done;
# vim: ft=perl6 $ $ $ $ $ perl6 t/spec/S02-types/bool.t 1..51 ok 1 - The object is-a 'Bool' ok 2 - The object is-a 'Bool' ok 3 - The object is-a 'Bool' ok 4 - The object is-a 'Bool' ok 5 - Bool.Bool is a Bool ok 6 - Bool.Bool is a Bool ok 7 - Bool.Bool works for True ok 8 - Bool.Bool works for False ok 9 - ?Bool is a Bool ok 10 - ?Bool is a Bool ok 11 - ?Bool works for True ok 12 - ?Bool works for False ok 13 - True works ok 14 - False works ok 15 - !True works ok 16 - !False works ok 17 - True works ok 18 - False works ok 19 - The object is-a 'Str' ok 20 - The object is-a 'Str' ok 21 - Bool stringification (True) ok 22 - Bool stringification (False) ok 23 - True.Str ok 24 - False.Str ok 25 - True.gist ok 26 - False.gist ok 27 - True.perl ok 28 - False.perl ok 29 - ok 30 - ok 31 - True numifies to an Int ok 32 - False numifies to an Int ok 33 - True Intifies to 1 ok 34 - False Intifies to 1 ok 35 - True numifies to 1 ok 36 - False numifies to 0 ok 37 - Increment of Bool::False produces Bool::True ok 38 - Increment of Bool::True still produces Bool::True ok 39 - Decrement of Bool::True produces Bool::False ok 40 - Decrement of Bool::False produces Bool::False ok 41 - Bool::True works with "but" ok 42 - Bool::True works with "but" ok 43 - Bool::False works with "but" ok 44 - Bool::False works with "but" ok 45 - Bool::True.key works (is "True") ok 46 - Bool::False.key works (is "False") ok 47 - Bool.pick return True or False ok 48 - Bool.pick(*) returns two elems ok 49 - Bool.roll(30) contains a True ok 50 - Bool.roll(30) contains a False *** glibc detected *** perl6: double free or corruption (!prev): 0x0000000003397bd0 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3c6087c00e] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so(+0xc8dd)[0x7f19f44c68dd] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x26f12)[0x7f19f4938f12] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f19fb49c7cd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f19fb49cae7] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f19fb497e7b] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f19fb4bb7dd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7f19fb4bba8c] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_reuse_continuation+0x6d)[0x7f19fb4a6e4d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x60bff)[0x7f19fb473bff] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f19fb4bccd5] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f19fb4bc92d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f19fb4a669e] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f19fb4a20be] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x23d78)[0x7f19f4935d78] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so(+0x21e29)[0x7f19f46f8e29] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so(+0x2223a)[0x7f19f46f923a] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so(+0x2545)[0x7f19f4b5f545] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f19fb4bccd5] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f19fb4bc92d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f19fb4a669e] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f19fb4a20be] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f19fb5706fd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f19fb4a206a] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f19fb49680c] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f19fb4c0c3d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f19fb4c0cca] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f19fb4c887b] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f19fb492711] perl6(main+0x170)[0x4011b0] /lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735] perl6[0x401261] ======= Memory map: ======== 00400000-0040e000 r-xp 00000000 08:04 6030374 /home/ira/rakudo/rakudo/perl6 0060d000-0060e000 rw-p 0000d000 08:04 6030374 /home/ira/rakudo/rakudo/perl6 024ad000-0a699000 rw-p 00000000 00:00 0 [heap] 3aab800000-3aab802000 r-xp 00000000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aab802000-3aaba01000 ---p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba01000-3aaba02000 r--p 00001000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba02000-3aaba03000 rw-p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3c31a00000-3c31a3c000 r-xp 00000000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31a3c000-3c31c3b000 ---p 0003c000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3b000-3c31c3d000 r--p 0003b000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3d000-3c31c43000 rw-p 0003d000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c43000-3c31c45000 rw-p 00000000 00:00 0 3c33400000-3c33425000 r-xp 00000000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33425000-3c33624000 ---p 00025000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33624000-3c33628000 r--p 00024000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33628000-3c33629000 rw-p 00028000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c34800000-3c34807000 r-xp 00000000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34807000-3c34a06000 ---p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a06000-3c34a07000 r--p 00006000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a07000-3c34a08000 rw-p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c60400000-3c60420000 r-xp 00000000 08:02 4984833 /usr/lib64/ld-2.15.so 3c6061f000-3c60620000 r--p 0001f000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60620000-3c60621000 rw-p 00020000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60621000-3c60622000 rw-p 00000000 00:00 0 3c60800000-3c609ac000 r-xp 00000000 08:02 4984834 /usr/lib64/libc-2.15.so 3c609ac000-3c60bac000 ---p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bac000-3c60bb0000 r--p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb0000-3c60bb2000 rw-p 001b0000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb2000-3c60bb7000 rw-p 00000000 00:00 0 3c60c00000-3c60c03000 r-xp 00000000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60c03000-3c60e02000 ---p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e02000-3c60e03000 r--p 00002000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e03000-3c60e04000 rw-p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c61000000-3c61016000 r-xp 00000000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61016000-3c61216000 ---p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61216000-3c61217000 r--p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61217000-3c61218000 rw-p 00017000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61218000-3c6121c000 rw-p 00000000 00:00 0 3c61800000-3c618fa000 r-xp 00000000 08:02 4992975 /usr/lib64/libm-2.15.so 3c618fa000-3c61af9000 ---p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61af9000-3c61afa000 r--p 000f9000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61afa000-3c61afb000 rw-p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c62800000-3c62815000 r-xp 00000000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62815000-3c62a14000 ---p 00015000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62a14000-3c62a15000 rw-p 00014000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62c00000-3c62c16000 r-xp 00000000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62c16000-3c62e15000 ---p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e15000-3c62e16000 r--p 00015000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e16000-3c62e17000 rw-p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e17000-3c62e19000 rw-p 00000000 00:00 0 3c64400000-3c644e5000 r-xp 00000000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c644e5000-3c646e4000 ---p 000e5000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646e4000-3c646ec000 r--p 000e4000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ec000-3c646ee000 rw-p 000ec000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ee000-3c64703000 rw-p 00000000 00:00 0 3c71000000-3c71016000 r-xp 00000000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71016000-3c71215000 ---p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71215000-3c71216000 r--p 00015000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71216000-3c71217000 rw-p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71217000-3c71219000 rw-p 00000000 00:00 0 3c74400000-3c74556000 r-xp 00000000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74556000-3c74756000 ---p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74756000-3c74766000 r--p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74766000-3c74767000 rw-p 00166000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74767000-3c7476b000 rw-p 00000000 00:00 0 3c75c00000-3c76d6f000 r-xp 00000000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76d6f000-3c76f6e000 ---p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6e000-3c76f6f000 r--p 0116e000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6f000-3c76f70000 rw-p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3f74800000-3f74865000 r-xp 00000000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74865000-3f74a65000 ---p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a65000-3f74a66000 rw-p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a66000-3f74a6b000 rw-p 00000000 00:00 0 3f75400000-3f75408000 r-xp 00000000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75408000-3f75607000 ---p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75607000-3f75608000 r--p 00007000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75608000-3f75609000 rw-p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75609000-3f75637000 rw-p 00000000 00:00 0 7f19f027b000-7f19f0786000 rw-p 00000000 00:00 0 7f19f0786000-7f19f0795000 r-xp 00000000 08:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f19f0795000-7f19f0994000 ---p 0000f000 08:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f19f0994000-7f19f0995000 r--p 0000e000 08:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f19f0995000-7f19f0996000 rw-p 0000f000 08:04 6556682 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f19f0996000-7f19f0999000 r-xp 00000000 08:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f19f0999000-7f19f0b98000 ---p 00003000 08:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f19f0b98000-7f19f0b99000 r--p 00002000 08:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f19f0b99000-7f19f0b9a000 rw-p 00003000 08:04 6556164 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f19f0b9a000-7f19f0b9e000 r-xp 00000000 08:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f19f0b9e000-7f19f0d9e000 ---p 00004000 08:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f19f0d9e000-7f19f0d9f000 r--p 00004000 08:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f19f0d9f000-7f19f0da1000 rw-p 00005000 08:04 6556159 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f19f0da1000-7f19f0daa000 r-xp 00000000 08:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f19f0daa000-7f19f0fa9000 ---p 00009000 08:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f19f0fa9000-7f19f0faa000 r--p 00008000 08:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f19f0faa000-7f19f0fae000 rw-p 00009000 08:04 6556153 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f19f0fae000-7f19f0fb1000 r-xp 00000000 08:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f19f0fb1000-7f19f11b0000 ---p 00003000 08:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f19f11b0000-7f19f11b1000 r--p 00002000 08:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f19f11b1000-7f19f11b3000 rw-p 00003000 08:04 6556160 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f19f11b3000-7f19f11b6000 r-xp 00000000 08:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f19f11b6000-7f19f13b5000 ---p 00003000 08:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f19f13b5000-7f19f13b6000 r--p 00002000 08:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f19f13b6000-7f19f13b7000 rw-p 00003000 08:04 6556156 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f19f13b7000-7f19f13b9000 r-xp 00000000 08:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f19f13b9000-7f19f15b8000 ---p 00002000 08:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f19f15b8000-7f19f15b9000 r--p 00001000 08:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f19f15b9000-7f19f15ba000 rw-p 00002000 08:04 6556161 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f19f15ba000-7f19f27ba000 rw-p 00000000 00:00 0 7f19f27ba000-7f19f27c0000 r-xp 00000000 08:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f19f27c0000-7f19f29bf000 ---p 00006000 08:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f19f29bf000-7f19f29c0000 r--p 00005000 08:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f19f29c0000-7f19f29c3000 rw-p 00006000 08:04 6556165 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f19f29c3000-7f19f4290000 rw-p 00000000 00:00 0 7f19f4290000-7f19f4296000 r-xp 00000000 08:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so 7f19f4296000-7f19f4495000 ---p 00006000 08:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so 7f19f4495000-7f19f4496000 r--p 00005000 08:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so 7f19f4496000-7f19f4499000 rw-p 00006000 08:04 6556158 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/io_ops.so 7f19f4499000-7f19f44ba000 rw-p 00000000 00:00 0 7f19f44ba000-7f19f44d4000 r-xp 00000000 08:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so 7f19f44d4000-7f19f46d3000 ---p 0001a000 08:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so 7f19f46d3000-7f19f46d4000 r--p 00019000 08:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so 7f19f46d4000-7f19f46d7000 rw-p 0001a000 08:04 6556681 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_bigint_ops.so 7f19f46d7000-7f19f4705000 r-xp 00000000 08:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so 7f19f4705000-7f19f4904000 ---p 0002e000 08:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so 7f19f4904000-7f19f4905000 r--p 0002d000 08:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so 7f19f4905000-7f19f4912000 rw-p 0002e000 08:04 6556732 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_ops.so 7f19f4912000-7f19f4951000 r-xp 00000000 08:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so 7f19f4951000-7f19f4b50000 ---p 0003f000 08:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so 7f19f4b50000-7f19f4b51000 r--p 0003e000 08:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so 7f19f4b51000-7f19f4b5d000 rw-p 0003f000 08:04 6556680 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so 7f19f4b5d000-7f19f4b65000 r-xp 00000000 08:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so 7f19f4b65000-7f19f4d64000 ---p 00008000 08:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so 7f19f4d64000-7f19f4d65000 r--p 00007000 08:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so 7f19f4d65000-7f19f4d66000 rw-p 00008000 08:04 6556731 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/perl6_group.so 7f19f4d66000-7f19f4d7c000 r-xp 00000000 08:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so 7f19f4d7c000-7f19f4f7b000 ---p 00016000 08:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so 7f19f4f7b000-7f19f4f7c000 r--p 00015000 08:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so 7f19f4f7c000-7f19f4f7d000 rw-p 00016000 08:04 6556679 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_group.so 7f19f4f7d000-7f19fb3aa000 r--p 00000000 08:02 5007419 /usr/lib/locale/locale-archive 7f19fb3aa000-7f19fb3f7000 rw-p 00000000 00:00 0 7f19fb412000-7f19fb413000 rw-p 00000000 00:00 0 7f19fb413000-7f19fb5fb000 r-xp 00000000 08:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0 7f19fb5fb000-7f19fb7fb000 ---p 001e8000 08:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0 7f19fb7fb000-7f19fb801000 r--p 001e8000 08:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0 7f19fb801000-7f19fb839000 rw-p 001ee000 08:04 6556145 /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0 7f19fb839000-7f19fb83b000 rw-p 00000000 00:00 0 7fffbc47e000-7fffbc49e000 rwxp 00000000 00:00 0 [stack] 7fffbc49e000-7fffbc49f000 rw-p 00000000 00:00 0 7fffbc5ff000-7fffbc600000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] Aborted (core dumped) $ $ $ $ exit
Script done on Mon 25 Feb 2013 08:40:49 PM HST
Update:
I found that the bug also can be triggered with just this loop, usually after about 6-13 iterations:
(0 but Bool::True) and print qq{$_ } for 1..100;
Backtraces are attached for three recent versions of Rakudo, the current version from git as of about 2013-03-01 0700 UTC (2013.02.1-14-g357e603), Rakudo Star 2013-02, and Rakudo Star 2013-01.
It looks like this also failed with a sigabrt in the #perl6 evalbot, see http://irclog.perlgeek.de/perl6/2013-03-01#i_6511442.
Best regards, Ira
This is from the current version of Rakudo in git (2013-03-01 0700 UTC):
[ira@f17 rakudo]$ ./perl6 -v This is perl6 version 2013.02.1-14-g357e603 built on parrot 4.10.0 revision RELEASE_4_10_0
[ira@f17 rakudo]$ ./perl6 -e '(0 but Bool::True) and print qq{$_ } for 1..100;' 1 2 3 4 5 6 7 8 9 10 *** glibc detected *** ./perl6: free(): invalid next size (fast): 0x0000000003592e40 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3c6087c00e] /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_ops.so(+0x26c9f)[0x7f62ae0abc9f] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f62b4c107cd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f62b4c10ae7] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f62b4c0be7b] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f62b4c2f7dd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pmc_new_init+0x49)[0x7f62b4c2fc99] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xd3336)[0x7f62b4c5a336] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f62b4c30cd5] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f62b4c3092d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f62b4c1a69e] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f62b4c160be] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f62b4c0a80c] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f62b4ce46fd] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f62b4c1606a] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f62b4c0a80c] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f62b4c34c3d] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f62b4c34cca] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f62b4c3c87b] /home/ira/rakudo/rakudo/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f62b4c06711] ./perl6(main+0x170)[0x4011b0] /lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735] ./perl6[0x401261] ======= Memory map: ======== 00400000-0040e000 r-xp 00000000 08:04 7081115 /home/ira/rakudo/rakudo/perl6 0060d000-0060e000 rw-p 0000d000 08:04 7081115 /home/ira/rakudo/rakudo/perl6 00f1d000-07d8e000 rw-p 00000000 00:00 0 [heap] 3aab800000-3aab802000 r-xp 00000000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aab802000-3aaba01000 ---p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba01000-3aaba02000 r--p 00001000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba02000-3aaba03000 rw-p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3c31a00000-3c31a3c000 r-xp 00000000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31a3c000-3c31c3b000 ---p 0003c000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3b000-3c31c3d000 r--p 0003b000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3d000-3c31c43000 rw-p 0003d000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c43000-3c31c45000 rw-p 00000000 00:00 0 3c33400000-3c33425000 r-xp 00000000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33425000-3c33624000 ---p 00025000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33624000-3c33628000 r--p 00024000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33628000-3c33629000 rw-p 00028000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c34800000-3c34807000 r-xp 00000000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34807000-3c34a06000 ---p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a06000-3c34a07000 r--p 00006000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a07000-3c34a08000 rw-p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c60400000-3c60420000 r-xp 00000000 08:02 4984833 /usr/lib64/ld-2.15.so 3c6061f000-3c60620000 r--p 0001f000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60620000-3c60621000 rw-p 00020000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60621000-3c60622000 rw-p 00000000 00:00 0 3c60800000-3c609ac000 r-xp 00000000 08:02 4984834 /usr/lib64/libc-2.15.so 3c609ac000-3c60bac000 ---p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bac000-3c60bb0000 r--p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb0000-3c60bb2000 rw-p 001b0000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb2000-3c60bb7000 rw-p 00000000 00:00 0 3c60c00000-3c60c03000 r-xp 00000000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60c03000-3c60e02000 ---p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e02000-3c60e03000 r--p 00002000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e03000-3c60e04000 rw-p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c61000000-3c61016000 r-xp 00000000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61016000-3c61216000 ---p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61216000-3c61217000 r--p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61217000-3c61218000 rw-p 00017000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61218000-3c6121c000 rw-p 00000000 00:00 0 3c61800000-3c618fa000 r-xp 00000000 08:02 4992975 /usr/lib64/libm-2.15.so 3c618fa000-3c61af9000 ---p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61af9000-3c61afa000 r--p 000f9000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61afa000-3c61afb000 rw-p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c62800000-3c62815000 r-xp 00000000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62815000-3c62a14000 ---p 00015000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62a14000-3c62a15000 rw-p 00014000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62c00000-3c62c16000 r-xp 00000000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62c16000-3c62e15000 ---p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e15000-3c62e16000 r--p 00015000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e16000-3c62e17000 rw-p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e17000-3c62e19000 rw-p 00000000 00:00 0 3c64400000-3c644e5000 r-xp 00000000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c644e5000-3c646e4000 ---p 000e5000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646e4000-3c646ec000 r--p 000e4000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ec000-3c646ee000 rw-p 000ec000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ee000-3c64703000 rw-p 00000000 00:00 0 3c71000000-3c71016000 r-xp 00000000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71016000-3c71215000 ---p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71215000-3c71216000 r--p 00015000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71216000-3c71217000 rw-p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71217000-3c71219000 rw-p 00000000 00:00 0 3c74400000-3c74556000 r-xp 00000000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74556000-3c74756000 ---p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74756000-3c74766000 r--p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74766000-3c74767000 rw-p 00166000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74767000-3c7476b000 rw-p 00000000 00:00 0 3c75c00000-3c76d6f000 r-xp 00000000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76d6f000-3c76f6e000 ---p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6e000-3c76f6f000 r--p 0116e000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6f000-3c76f70000 rw-p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3f74800000-3f74865000 r-xp 00000000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74865000-3f74a65000 ---p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a65000-3f74a66000 rw-p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a66000-3f74a6b000 rw-p 00000000 00:00 0 3f75400000-3f75408000 r-xp 00000000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75408000-3f75607000 ---p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75607000-3f75608000 r--p 00007000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75608000-3f75609000 rw-p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75609000-3f75637000 rw-p 00000000 00:00 0 7f62a9a94000-7f62a9f9f000 rw-p 00000000 00:00 0 7f62a9f9f000-7f62a9fae000 r-xp 00000000 08:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f62a9fae000-7f62aa1ad000 ---p 0000f000 08:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f62aa1ad000-7f62aa1ae000 r--p 0000e000 08:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f62aa1ae000-7f62aa1af000 rw-p 0000f000 08:04 7212307 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/nqp_dyncall_ops.so 7f62aa1af000-7f62aa1b2000 r-xp 00000000 08:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f62aa1b2000-7f62aa3b1000 ---p 00003000 08:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f62aa3b1000-7f62aa3b2000 r--p 00002000 08:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f62aa3b2000-7f62aa3b3000 rw-p 00003000 08:04 7211771 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/sys_ops.so 7f62aa3b3000-7f62aa3b7000 r-xp 00000000 08:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f62aa3b7000-7f62aa5b7000 ---p 00004000 08:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f62aa5b7000-7f62aa5b8000 r--p 00004000 08:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f62aa5b8000-7f62aa5ba000 rw-p 00005000 08:04 7211766 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/math_ops.so 7f62aa5ba000-7f62aa5c3000 r-xp 00000000 08:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f62aa5c3000-7f62aa7c2000 ---p 00009000 08:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f62aa7c2000-7f62aa7c3000 r--p 00008000 08:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f62aa7c3000-7f62aa7c7000 rw-p 00009000 08:04 7211760 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/bit_ops.so 7f62aa7c7000-7f62aa7ca000 r-xp 00000000 08:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f62aa7ca000-7f62aa9c9000 ---p 00003000 08:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f62aa9c9000-7f62aa9ca000 r--p 00002000 08:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f62aa9ca000-7f62aa9cc000 rw-p 00003000 08:04 7211767 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/obscure_ops.so 7f62aa9cc000-7f62aa9cf000 r-xp 00000000 08:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f62aa9cf000-7f62aabce000 ---p 00003000 08:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f62aabce000-7f62aabcf000 r--p 00002000 08:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f62aabcf000-7f62aabd0000 rw-p 00003000 08:04 7211763 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/file.so 7f62aabd0000-7f62aabd2000 r-xp 00000000 08:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f62aabd2000-7f62aadd1000 ---p 00002000 08:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f62aadd1000-7f62aadd2000 r--p 00001000 08:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f62aadd2000-7f62aadd3000 rw-p 00002000 08:04 7211768 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/os.so 7f62aadd3000-7f62abfab000 rw-p 00000000 00:00 0 7f62abfab000-7f62abfb1000 r-xp 00000000 08:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f62abfb1000-7f62ac1b0000 ---p 00006000 08:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f62ac1b0000-7f62ac1b1000 r--p 00005000 08:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f62ac1b1000-7f62ac1b4000 rw-p 00006000 08:04 7211772 /home/ira/rakudo/rakudo/install/lib/parrot/4.10.0-devel/dynext/trans_ops.so 7f62ac1b4000-7f62ada03000 rw-p 00000000 00:00 0 7f62ada03000-7f62ada09000 r-xp 00000000 08:04 7211765 /home/ira/rakudo/rakudo/install/lib/parrotAborted (core dumped)
This is from Rakudo Star 2013-02:
[ira@f17 rakudo-star-2013.02]$ ./perl6 -v This is perl6 version 2013.02.1 built on parrot 4.10.0 revision 0
[ira@f17 rakudo-star-2013.02]$ ./perl6 -e '(0 but Bool::True) and print qq{$_ } for 1..100;' 1 2 3 4 5 6 7 8 9 10 *** glibc detected *** ./perl6: free(): invalid pointer: 0x000000000441e388 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3c6087c00e] /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_bigint_ops.so(+0xc8dd)[0x7f1289bb88dd] /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_ops.so(+0x26e72)[0x7f128a02ae72] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7f1290b8e7cd] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7f1290b8eae7] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7f1290b89e7b] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7f1290bad7dd] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7f1290bada8c] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x12241e)[0x7f1290c2741e] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x5faa7)[0x7f1290b64aa7] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7f1290baecd5] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7f1290bae92d] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7f1290b9869e] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7f1290b940be] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f1290b8880c] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7f1290c626fd] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7f1290b9406a] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7f1290b8880c] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7f1290bb2c3d] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7f1290bb2cca] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7f1290bba87b] /home/ira/rakudo/rakudo-star-2013.02/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7f1290b84711] ./perl6(main+0x170)[0x4011b0] /lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735] ./perl6[0x401261] ======= Memory map: ======== 00400000-0040e000 r-xp 00000000 08:04 6819182 /home/ira/rakudo/rakudo-star-2013.02/perl6 0060e000-0060f000 rw-p 0000e000 08:04 6819182 /home/ira/rakudo/rakudo-star-2013.02/perl6 011a9000-08039000 rw-p 00000000 00:00 0 [heap] 3aab800000-3aab802000 r-xp 00000000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aab802000-3aaba01000 ---p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba01000-3aaba02000 r--p 00001000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba02000-3aaba03000 rw-p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3c31a00000-3c31a3c000 r-xp 00000000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31a3c000-3c31c3b000 ---p 0003c000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3b000-3c31c3d000 r--p 0003b000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3d000-3c31c43000 rw-p 0003d000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c43000-3c31c45000 rw-p 00000000 00:00 0 3c33400000-3c33425000 r-xp 00000000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33425000-3c33624000 ---p 00025000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33624000-3c33628000 r--p 00024000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33628000-3c33629000 rw-p 00028000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c34800000-3c34807000 r-xp 00000000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34807000-3c34a06000 ---p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a06000-3c34a07000 r--p 00006000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a07000-3c34a08000 rw-p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c60400000-3c60420000 r-xp 00000000 08:02 4984833 /usr/lib64/ld-2.15.so 3c6061f000-3c60620000 r--p 0001f000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60620000-3c60621000 rw-p 00020000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60621000-3c60622000 rw-p 00000000 00:00 0 3c60800000-3c609ac000 r-xp 00000000 08:02 4984834 /usr/lib64/libc-2.15.so 3c609ac000-3c60bac000 ---p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bac000-3c60bb0000 r--p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb0000-3c60bb2000 rw-p 001b0000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb2000-3c60bb7000 rw-p 00000000 00:00 0 3c60c00000-3c60c03000 r-xp 00000000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60c03000-3c60e02000 ---p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e02000-3c60e03000 r--p 00002000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e03000-3c60e04000 rw-p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c61000000-3c61016000 r-xp 00000000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61016000-3c61216000 ---p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61216000-3c61217000 r--p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61217000-3c61218000 rw-p 00017000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61218000-3c6121c000 rw-p 00000000 00:00 0 3c61800000-3c618fa000 r-xp 00000000 08:02 4992975 /usr/lib64/libm-2.15.so 3c618fa000-3c61af9000 ---p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61af9000-3c61afa000 r--p 000f9000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61afa000-3c61afb000 rw-p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c62800000-3c62815000 r-xp 00000000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62815000-3c62a14000 ---p 00015000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62a14000-3c62a15000 rw-p 00014000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62c00000-3c62c16000 r-xp 00000000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62c16000-3c62e15000 ---p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e15000-3c62e16000 r--p 00015000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e16000-3c62e17000 rw-p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e17000-3c62e19000 rw-p 00000000 00:00 0 3c64400000-3c644e5000 r-xp 00000000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c644e5000-3c646e4000 ---p 000e5000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646e4000-3c646ec000 r--p 000e4000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ec000-3c646ee000 rw-p 000ec000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ee000-3c64703000 rw-p 00000000 00:00 0 3c71000000-3c71016000 r-xp 00000000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71016000-3c71215000 ---p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71215000-3c71216000 r--p 00015000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71216000-3c71217000 rw-p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71217000-3c71219000 rw-p 00000000 00:00 0 3c74400000-3c74556000 r-xp 00000000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74556000-3c74756000 ---p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74756000-3c74766000 r--p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74766000-3c74767000 rw-p 00166000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74767000-3c7476b000 rw-p 00000000 00:00 0 3c75c00000-3c76d6f000 r-xp 00000000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76d6f000-3c76f6e000 ---p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6e000-3c76f6f000 r--p 0116e000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6f000-3c76f70000 rw-p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3f74800000-3f74865000 r-xp 00000000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74865000-3f74a65000 ---p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a65000-3f74a66000 rw-p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a66000-3f74a6b000 rw-p 00000000 00:00 0 3f75400000-3f75408000 r-xp 00000000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75408000-3f75607000 ---p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75607000-3f75608000 r--p 00007000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75608000-3f75609000 rw-p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75609000-3f75637000 rw-p 00000000 00:00 0 7f1285785000-7f1285c90000 rw-p 00000000 00:00 0 7f1285c90000-7f1285c9f000 r-xp 00000000 08:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7f1285c9f000-7f1285e9e000 ---p 0000f000 08:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7f1285e9e000-7f1285e9f000 r--p 0000e000 08:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7f1285e9f000-7f1285ea0000 rw-p 0000f000 08:04 6949718 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7f1285ea0000-7f1285ea3000 r-xp 00000000 08:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so 7f1285ea3000-7f12860a2000 ---p 00003000 08:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so 7f12860a2000-7f12860a3000 r--p 00002000 08:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so 7f12860a3000-7f12860a4000 rw-p 00003000 08:04 6949173 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/sys_ops.so 7f12860a4000-7f12860a8000 r-xp 00000000 08:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so 7f12860a8000-7f12862a8000 ---p 00004000 08:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so 7f12862a8000-7f12862a9000 r--p 00004000 08:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so 7f12862a9000-7f12862ab000 rw-p 00005000 08:04 6949168 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/math_ops.so 7f12862ab000-7f12862b4000 r-xp 00000000 08:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so 7f12862b4000-7f12864b3000 ---p 00009000 08:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so 7f12864b3000-7f12864b4000 r--p 00008000 08:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so 7f12864b4000-7f12864b8000 rw-p 00009000 08:04 6949162 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/bit_ops.so 7f12864b8000-7f12864bb000 r-xp 00000000 08:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7f12864bb000-7f12866ba000 ---p 00003000 08:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7f12866ba000-7f12866bb000 r--p 00002000 08:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7f12866bb000-7f12866bd000 rw-p 00003000 08:04 6949169 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7f12866bd000-7f12866c0000 r-xp 00000000 08:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so 7f12866c0000-7f12868bf000 ---p 00003000 08:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so 7f12868bf000-7f12868c0000 r--p 00002000 08:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so 7f12868c0000-7f12868c1000 rw-p 00003000 08:04 6949165 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/file.so 7f12868c1000-7f12868c3000 r-xp 00000000 08:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so 7f12868c3000-7f1286ac2000 ---p 00002000 08:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so 7f1286ac2000-7f1286ac3000 r--p 00001000 08:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so 7f1286ac3000-7f1286ac4000 rw-p 00002000 08:04 6949170 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/os.so 7f1286ac4000-7f1287d4e000 rw-p 00000000 00:00 0 7f1287d4e000-7f1287d54000 r-xp 00000000 08:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so 7f1287d54000-7f1287f53000 ---p 00006000 08:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so 7f1287f53000-7f1287f54000 r--p 00005000 08:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so 7f1287f54000-7f1287f57000 rw-p 00006000 08:04 6949174 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/trans_ops.so 7f1287f57000-7f1289982000 rw-p 00000000 00:00 0 7f1289982000-7f1289988000 r-xp 00000000 08:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so 7f1289988000-7f1289b87000 ---p 00006000 08:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so 7f1289b87000-7f1289b88000 r--p 00005000 08:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so 7f1289b88000-7f1289b8b000 rw-p 00006000 08:04 6949167 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/io_ops.so 7f1289b8b000-7f1289bac000 rw-p 00000000 00:00 0 7f1289bac000-7f1289bc6000 r-xp 00000000 08:04 6949717 /home/ira/rakudo/rakudo-star-2013.02/install/lib/parrot/4.10.0/dynext/nqp_bigint_ops.soAborted (core dumped)
This is from Rakudo Star 2013-01:
[ira@f17 rakudo-star-2013.01]$ ./perl6 -v This is perl6 version 2013.01 built on parrot 4.10.0 revision 0
[ira@f17 rakudo-star-2013.01]$ ./perl6 -e '(0 but Bool::True) and print qq{$_ } for 1..100;' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 *** glibc detected *** ./perl6: free(): invalid next size (fast): 0x00000000011ec520 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3c6087c00e] /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_ops.so(+0x23bf1)[0x7fa9ce12ebf1] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x897cd)[0x7fa9d4c907cd] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x89ae7)[0x7fa9d4c90ae7] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_gc_new_pmc_header+0x1b)[0x7fa9d4c8be7b] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa87dd)[0x7fa9d4caf7dd] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pmc_new+0x3c)[0x7fa9d4cafa8c] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_reuse_continuation+0x6d)[0x7fa9d4c9ae4d] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x60bff)[0x7fa9d4c67bff] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa9cd5)[0x7fa9d4cb0cd5] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xa992d)[0x7fa9d4cb092d] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x9369e)[0x7fa9d4c9a69e] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0xde)[0x7fa9d4c960be] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7fa9d4c8a80c] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0x15d6fd)[0x7fa9d4d646fd] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pcc_invoke_from_sig_object+0x8a)[0x7fa9d4c9606a] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_ext_call+0xcc)[0x7fa9d4c8a80c] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(+0xadc3d)[0x7fa9d4cb4c3d] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_cx_begin_execution+0x6a)[0x7fa9d4cb4cca] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_pf_execute_bytecode_program+0xdb)[0x7fa9d4cbc87b] /home/ira/rakudo/rakudo-star-2013.01/install/lib/libparrot.so.4.10.0(Parrot_api_run_bytecode+0xf1)[0x7fa9d4c86711] ./perl6(main+0x170)[0x4011b0] /lib64/libc.so.6(__libc_start_main+0xf5)[0x3c60821735] ./perl6[0x401261] ======= Memory map: ======== 00400000-0040e000 r-xp 00000000 08:04 6294233 /home/ira/rakudo/rakudo-star-2013.01/perl6 0060d000-0060e000 rw-p 0000d000 08:04 6294233 /home/ira/rakudo/rakudo-star-2013.01/perl6 00eda000-079d5000 rw-p 00000000 00:00 0 [heap] 3aab800000-3aab802000 r-xp 00000000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aab802000-3aaba01000 ---p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba01000-3aaba02000 r--p 00001000 08:02 5008155 /usr/lib64/libutil-2.15.so 3aaba02000-3aaba03000 rw-p 00002000 08:02 5008155 /usr/lib64/libutil-2.15.so 3c31a00000-3c31a3c000 r-xp 00000000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31a3c000-3c31c3b000 ---p 0003c000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3b000-3c31c3d000 r--p 0003b000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c3d000-3c31c43000 rw-p 0003d000 08:02 5007605 /usr/lib64/libreadline.so.6.2 3c31c43000-3c31c45000 rw-p 00000000 00:00 0 3c33400000-3c33425000 r-xp 00000000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33425000-3c33624000 ---p 00025000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33624000-3c33628000 r--p 00024000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c33628000-3c33629000 rw-p 00028000 08:02 5007457 /usr/lib64/libtinfo.so.5.9 3c34800000-3c34807000 r-xp 00000000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34807000-3c34a06000 ---p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a06000-3c34a07000 r--p 00006000 08:02 5007913 /usr/lib64/librt-2.15.so 3c34a07000-3c34a08000 rw-p 00007000 08:02 5007913 /usr/lib64/librt-2.15.so 3c60400000-3c60420000 r-xp 00000000 08:02 4984833 /usr/lib64/ld-2.15.so 3c6061f000-3c60620000 r--p 0001f000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60620000-3c60621000 rw-p 00020000 08:02 4984833 /usr/lib64/ld-2.15.so 3c60621000-3c60622000 rw-p 00000000 00:00 0 3c60800000-3c609ac000 r-xp 00000000 08:02 4984834 /usr/lib64/libc-2.15.so 3c609ac000-3c60bac000 ---p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bac000-3c60bb0000 r--p 001ac000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb0000-3c60bb2000 rw-p 001b0000 08:02 4984834 /usr/lib64/libc-2.15.so 3c60bb2000-3c60bb7000 rw-p 00000000 00:00 0 3c60c00000-3c60c03000 r-xp 00000000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60c03000-3c60e02000 ---p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e02000-3c60e03000 r--p 00002000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c60e03000-3c60e04000 rw-p 00003000 08:02 4990610 /usr/lib64/libdl-2.15.so 3c61000000-3c61016000 r-xp 00000000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61016000-3c61216000 ---p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61216000-3c61217000 r--p 00016000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61217000-3c61218000 rw-p 00017000 08:02 4980748 /usr/lib64/libpthread-2.15.so 3c61218000-3c6121c000 rw-p 00000000 00:00 0 3c61800000-3c618fa000 r-xp 00000000 08:02 4992975 /usr/lib64/libm-2.15.so 3c618fa000-3c61af9000 ---p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61af9000-3c61afa000 r--p 000f9000 08:02 4992975 /usr/lib64/libm-2.15.so 3c61afa000-3c61afb000 rw-p 000fa000 08:02 4992975 /usr/lib64/libm-2.15.so 3c62800000-3c62815000 r-xp 00000000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62815000-3c62a14000 ---p 00015000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62a14000-3c62a15000 rw-p 00014000 08:02 4981556 /usr/lib64/libgcc_s-4.7.2-20120921.so.1 3c62c00000-3c62c16000 r-xp 00000000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62c16000-3c62e15000 ---p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e15000-3c62e16000 r--p 00015000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e16000-3c62e17000 rw-p 00016000 08:02 5007444 /usr/lib64/libresolv-2.15.so 3c62e17000-3c62e19000 rw-p 00000000 00:00 0 3c64400000-3c644e5000 r-xp 00000000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c644e5000-3c646e4000 ---p 000e5000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646e4000-3c646ec000 r--p 000e4000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ec000-3c646ee000 rw-p 000ec000 08:02 5007465 /usr/lib64/libstdc++.so.6.0.17 3c646ee000-3c64703000 rw-p 00000000 00:00 0 3c71000000-3c71016000 r-xp 00000000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71016000-3c71215000 ---p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71215000-3c71216000 r--p 00015000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71216000-3c71217000 rw-p 00016000 08:02 4988400 /usr/lib64/libnsl-2.15.so 3c71217000-3c71219000 rw-p 00000000 00:00 0 3c74400000-3c74556000 r-xp 00000000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74556000-3c74756000 ---p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74756000-3c74766000 r--p 00156000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74766000-3c74767000 rw-p 00166000 08:02 4999628 /usr/lib64/libicuuc.so.48.1.1 3c74767000-3c7476b000 rw-p 00000000 00:00 0 3c75c00000-3c76d6f000 r-xp 00000000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76d6f000-3c76f6e000 ---p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6e000-3c76f6f000 r--p 0116e000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3c76f6f000-3c76f70000 rw-p 0116f000 08:02 5000354 /usr/lib64/libicudata.so.48.1.1 3f74800000-3f74865000 r-xp 00000000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74865000-3f74a65000 ---p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a65000-3f74a66000 rw-p 00065000 08:02 4987304 /usr/lib64/libfreebl3.so 3f74a66000-3f74a6b000 rw-p 00000000 00:00 0 3f75400000-3f75408000 r-xp 00000000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75408000-3f75607000 ---p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75607000-3f75608000 r--p 00007000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75608000-3f75609000 rw-p 00008000 08:02 4999398 /usr/lib64/libcrypt-2.15.so 3f75609000-3f75637000 rw-p 00000000 00:00 0 7fa9c9d6b000-7fa9ca1fc000 rw-p 00000000 00:00 0 7fa9ca1fc000-7fa9ca20b000 r-xp 00000000 08:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7fa9ca20b000-7fa9ca40a000 ---p 0000f000 08:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7fa9ca40a000-7fa9ca40b000 r--p 0000e000 08:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7fa9ca40b000-7fa9ca40c000 rw-p 0000f000 08:04 6427882 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/nqp_dyncall_ops.so 7fa9ca40c000-7fa9ca40f000 r-xp 00000000 08:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so 7fa9ca40f000-7fa9ca60e000 ---p 00003000 08:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so 7fa9ca60e000-7fa9ca60f000 r--p 00002000 08:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so 7fa9ca60f000-7fa9ca610000 rw-p 00003000 08:04 6427337 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/sys_ops.so 7fa9ca610000-7fa9ca614000 r-xp 00000000 08:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so 7fa9ca614000-7fa9ca814000 ---p 00004000 08:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so 7fa9ca814000-7fa9ca815000 r--p 00004000 08:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so 7fa9ca815000-7fa9ca817000 rw-p 00005000 08:04 6427332 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/math_ops.so 7fa9ca817000-7fa9ca820000 r-xp 00000000 08:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so 7fa9ca820000-7fa9caa1f000 ---p 00009000 08:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so 7fa9caa1f000-7fa9caa20000 r--p 00008000 08:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so 7fa9caa20000-7fa9caa24000 rw-p 00009000 08:04 6427326 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/bit_ops.so 7fa9caa24000-7fa9caa27000 r-xp 00000000 08:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7fa9caa27000-7fa9cac26000 ---p 00003000 08:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7fa9cac26000-7fa9cac27000 r--p 00002000 08:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7fa9cac27000-7fa9cac29000 rw-p 00003000 08:04 6427333 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/obscure_ops.so 7fa9cac29000-7fa9cac2c000 r-xp 00000000 08:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so 7fa9cac2c000-7fa9cae2b000 ---p 00003000 08:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so 7fa9cae2b000-7fa9cae2c000 r--p 00002000 08:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so 7fa9cae2c000-7fa9cae2d000 rw-p 00003000 08:04 6427329 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/file.so 7fa9cae2d000-7fa9cae2f000 r-xp 00000000 08:04 6427334 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/os.so 7fa9cae2f000-7fa9cb02e000 ---p 00002000 08:04 6427334 /home/ira/rakudo/rakudo-star-2013.01/install/lib/parrot/4.10.0/dynext/os.soAborted (core dumped)
One more observation that might be helpful:
Whether memory allocation errors occur or not appears to depend on the data type on the left hand of the "but" operator. If it is either an integer or undefined or both, Rakudo will crash after a dozen or so iterations.
All the other defined data types I have tried on the left hand side work (or at least they don't crash; some of them aren't especially useful).
I *think* that this *may* indicate that the size of the left hand operand of "but" affects whether the crash occurs. (If it's an integer, the size of the integer does *not* affect whether the crash occurs, but judging from the output of valgrind, it looks like the NQP bigint implementation uses the bn_mp_... functions in libtommath, and the "digits" that represent the numbers are allocated and deallocated separately from the mp_int structure.)
If I ever have enough tuits, I will try looking at the valgrind output again, but there are a LOT of complaints about reading unallocated memory and using memory after it has been freed, even in the cases where there is no crash.
FWIW, here are the tests I ran... each expression is run in a loop 100 times.
These work; at least, without double free or other memory allocation crash:
"0" but True "0" but False "0" but "some_string" [0] but True [0] but False [0] but "some_string" {0=>0} but True {0=>0} but False {0=>0} but "some_string" 0.0 but True 0.0 but False 0.0 but "some_string" 0e0 but True 0e0 but False 0e0 but "some_string" 0+0i but True 0+0i but False 0+0i but "some_string"
These fail with double free or other memory allocation problems:
0 but True 0 but False 0 but "some_string" Int but True Int but False Int but "some_string" Str but True Str but False Str but "some_string" List but True List but False List but "some_string" Hash but True Hash but False Hash but "some_string" Num but True Num but False Num but "some_string" Complex but True Complex but False Complex but "some_string"
[The following number is 2^4095, written out, so the value cannot be less than 512 bytes long...]
522194440706576253345876355358312191289982124523691890192116741641976953985778728424413405967498779170445053357219631418993786719092896803631618043925682638972978488271854999170180795067191859157214035005927973113188159419698856372836167342172293308748403954352901852035642024370059304557233988891799014503343469488440893892973452815095130470299789726716411734651513348221529512507986199933857107770846917779942645743159118957217248367043905936319748237550094520674504208530837546834166925275516486044134775384991808184705966507606898412918594045916828375610659246423184062775112999150206172392431297837246097308511903252956622805412865917690043804311051417135098849101156584508839003337597742539960818209685142687562392007453579567729991395256699805775897135553415567045292136442139895777424891477161767258532611634530697452993846501061481697843891439474220308003706472837459911525285821188577408160690315522951458068463354171428220365223949985950890732881736611925133626529949897998045399734600887312408859224933727829625089164535236559716582775403784110923285873186648442456409760158728501220463308455437074192539205964902261490928669488824051563042951500651206733594863336608245755565801460390869016718045121902354170201577095168 but True
These fails peculiarly ("Cannot look up attributes in a type object") but without a memory allocation error:
Rat but True Rat but False Rat but "some_string"
Best regards, Ira
This has been failing on the daily spec test runs on feather for a week or so.
$ ./perl6 --version This is perl6 version 2013.04-56-gbfd8508 built on parrot 5.2.0 revision RELEASE_5_2_0
$ .-types/bool.t 1..51 ok 1 - The object is-a 'Bool' ok 2 - The object is-a 'Bool' ok 3 - The object is-a 'Bool' ok 4 - The object is-a 'Bool' ok 5 - Bool.Bool is a Bool ok 6 - Bool.Bool is a Bool ok 7 - Bool.Bool works for True ok 8 - Bool.Bool works for False ok 9 - ?Bool is a Bool ok 10 - ?Bool is a Bool ok 11 - ?Bool works for True ok 12 - ?Bool works for False ok 13 - True works ok 14 - False works ok 15 - !True works ok 16 - !False works ok 17 - True works ok 18 - False works ok 19 - The object is-a 'Str' ok 20 - The object is-a 'Str' ok 21 - Bool stringification (True) ok 22 - Bool stringification (False) ok 23 - True.Str ok 24 - False.Str ok 25 - True.gist ok 26 - False.gist ok 27 - True.perl ok 28 - False.perl ok 29 - ok 30 - ok 31 - True numifies to an Int ok 32 - False numifies to an Int ok 33 - True Intifies to 1 ok 34 - False Intifies to 1 ok 35 - True numifies to 1 ok 36 - False numifies to 0 ok 37 - Increment of Bool::False produces Bool::True ok 38 - Increment of Bool::True still produces Bool::True ok 39 - Decrement of Bool::True produces Bool::False ok 40 - Decrement of Bool::False produces Bool::False ok 41 - Bool::True works with "but" ok 42 - Bool::True works with "but" ok 43 - Bool::False works with "but" ok 44 - Bool::False works with "but" ok 45 - Bool::True.key works (is "True") ok 46 - Bool::False.key works (is "False") ok 47 - Bool.pick return True or False ok 48 - Bool.pick(*) returns two elems ok 49 - Bool.roll(30) contains a True *** glibc detected *** ./perl6: free(): invalid next size (fast): 0x0db234c8 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x70a8a)[0xf6031a8a] /lib/i386-linux-gnu/libc.so.6(+0x722e8)[0xf60332e8] /lib/i386-linux-gnu/libc.so.6(cfree+0x6d)[0xf60363ed] /home/coke/sandbox/perl6pass/rakudo/install/lib/libparrot.so.5.2.0(mem_sys_free+0x1f)[0xf75ac66f] ======= Memory map: ======== 08048000-08052000 r-xp 00000000 fe:00 2240734 /home/coke/sandbox/perl6pass/rakudo/perl6 08052000-08053000 rw-p 00009000 fe:00 2240734 /home/coke/sandbox/perl6pass/rakudo/perl6 09307000-0dbdd000 rw-p 00000000 00:00 0 [heap] f2d00000-f2d21000 rw-p 00000000 00:00 0 f2d21000-f2e00000 ---p 00000000 00:00 0 f2efa000-f3824000 rw-p 00000000 00:00 0 f3824000-f3834000 r-xp 00000000 fe:00 2236414 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_dyncall_ops.so f3834000-f3835000 rw-p 00010000 fe:00 2236414 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_dyncall_ops.so f3835000-f3838000 r-xp 00000000 fe:00 2196681 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/sys_ops.so f3838000-f3839000 rw-p 00002000 fe:00 2196681 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/sys_ops.so f3839000-f383d000 r-xp 00000000 fe:00 2196677 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/math_ops.so f383d000-f383f000 rw-p 00003000 fe:00 2196677 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/math_ops.so f383f000-f3846000 r-xp 00000000 fe:00 2196679 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/bit_ops.so f3846000-f384a000 rw-p 00007000 fe:00 2196679 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/bit_ops.so f384a000-f384d000 r-xp 00000000 fe:00 2196676 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/obscure_ops.so f384d000-f384e000 rw-p 00003000 fe:00 2196676 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/obscure_ops.so f384e000-f3850000 r-xp 00000000 fe:00 2196650 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/file.so f3850000-f3851000 rw-p 00002000 fe:00 2196650 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/file.so f3851000-f3853000 r-xp 00000000 fe:00 2196651 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/os.so f3853000-f3854000 rw-p 00001000 fe:00 2196651 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/os.so f3854000-f4464000 rw-p 00000000 00:00 0 f4464000-f4469000 r-xp 00000000 fe:00 2196678 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/trans_ops.so f4469000-f446c000 rw-p 00004000 fe:00 2196678 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/trans_ops.so f446c000-f53cc000 rw-p 00000000 00:00 0 f53cc000-f53d1000 r-xp 00000000 fe:00 2196682 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/io_ops.so f53d1000-f53d4000 rw-p 00004000 fe:00 2196682 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/io_ops.so f53d4000-f53ee000 r-xp 00000000 fe:00 2236413 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_bigint_ops.so f53ee000-f53f1000 rw-p 0001a000 fe:00 2236413 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_bigint_ops.so f53f1000-f5413000 r-xp 00000000 fe:00 2240658 /home/coke/sandbox/perl6pass/rakudo/dynext/perl6_ops.so f5413000-f541d000 rw-p 00021000 fe:00 2240658 /home/coke/sandbox/perl6pass/rakudo/dynext/perl6_ops.so f541d000-f545f000 r-xp 00000000 fe:00 2236412 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_ops.so f545f000-f546b000 rw-p 00042000 fe:00 2236412 /home/coke/sandbox/perl6pass/rakudo/install/lib/parrot/5.2.0-devel/dynext/nqp_ops.so f546b000-f5472000 r-xp 00000000 fe:00 2240655 /home/coke/sandbox/perl6pass/rakudo/dynext/perl6_group.so f5472000-f5473000 rw-p 00006000 fe:00 2240655 /home/coke/sandbox/perl6pass/rakudo/dynext/perl6_group.so f5473000-f5474000 ---p 00000000 00:00 0 f5474000-f5c73000 rwxp 00000000 00:00 0 f5c73000-f5e73000 r--p 00000000 fe:00 1220894 /usr/lib/locale/locale-archive f5e73000-f5e97000 rw-p 00000000 00:00 0 f5e97000-f5eb3000 r-xp 00000000 fe:00 376437 /lib/i386-linux-gnu/libgcc_s.so.1 f5eb3000-f5eb4000 rw-p 0001b000 fe:00 376437 /lib/i386-linux-gnu/libgcc_s.so.1Aborted
running inside gdb says:
Program received signal SIGABRT, Aborted. 0xf6860667 in *__GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) bt
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
fmt=0xf6963330 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
str=0x6 \<Address 0x6 out of bounds>, ptr=0xc86f418) at malloc.c:6283
at malloc.c:4795
P6opaque.c:903
_self=0xc0fc394) at sixmodelobject.c:195
at src/gc/gc_gms.c:1089
=0) at src/gc/gc_gms.c:858
flags_unused=0) at src/gc/gc_gms.c:1481
flags=0) at src/gc/api.c:312
---Type \
base_type=105, init=0x965c208) at src/pmc.c:630
next=0xf41d9cf0) at ./src/pmc/sub.pmc:457
interp=0x8053028) at src/ops/core_ops.c:13891
runcore_unused=0x80e7b80, pc=\
at src/runcore/main.c:220
=27065) at src/call/ops.c:123
interp=interp@entry=0x8053028, sub_obj=sub_obj@entry=0x9419394,
call_object=\
sub_pmc=0x9419394, signature=signature@entry=0xf7f4a580 "P->") at src/extend.c:158
next=0x0) at ./src/pmc/task.pmc:173
interp=interp@entry=0x8053028, sub_obj=sub_obj@entry=0x940dab8,
---Type \
sub_pmc=sub_pmc@entry=0x940dab8, signature=signature@entry=0xf7f4a551 "->") at src/extend.c:158
scheduler=scheduler@entry=0x80e7780) at src/scheduler.c:231
at src/scheduler.c:149
main=main@entry=0x80b13c4, argv=argv@entry=0x80eeeb0) at src/scheduler.c:109
interp=interp@entry=0x8053028, pbc=pbc@entry=0x80b1414, args=args@entry=0x80eeeb0) at src/packfile/api.c:2829
pbc=0x80b1414, args=0x80eeeb0) at src/embed/bytecode.c:161
Neither sixmodelobject's destroy method nor the test file have changed recently.
-- Will "Coke" Coleda
I just completed a git bisect on nom for this issue.
5838e933b362d33c8a0854a7c410c347a4911bde is the first bad commit $ git show 5838e933b362d33c8a0854a7c410c347a4911bde commit 5838e933b362d33c8a0854a7c410c347a4911bde Merge: 4741028 02c7fbb Author: Moritz Lenz \moritz@​faui2k3\.org Date: Sat May 4 21:09:08 2013 +0200
Merge branch 'iospec' of https://github.com/labster/rakudo into nom
-- Will "Coke" Coleda
I just completed a git bisect on nom for this issue.
5838e933b362d33c8a0854a7c410c347a4911bde is the first bad commit $ git show 5838e933b362d33c8a0854a7c410c347a4911bde commit 5838e933b362d33c8a0854a7c410c347a4911bde Merge: 4741028 02c7fbb Author: Moritz Lenz \moritz@​faui2k3\.org Date: Sat May 4 21:09:08 2013 +0200
Merge branch 'iospec' of https://github.com/labster/rakudo into nom
-- Will "Coke" Coleda
@coke - Status changed from 'new' to 'open'
Hi, labster and me already discussed that issues the last days (since friday or so via irc).
It is true that this branch merge made this bug visible, but we dont believe that the patch is to be blamed.
My rakudo-build on feather shows, that if you comment out one of the 51 tests of bool.t the test doesnt end in a backtrace...
I can attach diffs to show what we have tried.
Since the tests in S02-types/bool.t pass, the relevant problem seems to be the for loop with "0 but Bool::True".
I don't see any crashes within the first 100 iterations, but on Parrot I get segfaults or crashes with around 262 iterations. On Moar and JVM there are no problems:
$ perl6-m -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 1000
$ perl6-j -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 1000
$ perl6-p -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 261 262 Segmentation fault
Since the tests in S02-types/bool.t pass, the relevant problem seems to be the for loop with "0 but Bool::True".
I don't see any crashes within the first 100 iterations, but on Parrot I get segfaults or crashes with around 262 iterations. On Moar and JVM there are no problems:
$ perl6-m -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 1000
$ perl6-j -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 1000
$ perl6-p -e '(0 but Bool::True) and print qq{$_ } for 1..1000;' 1 2 [...] 261 262 Segmentation fault
@usev6 - Status changed from 'new' to 'open'
As noted above the tests in S02-types/bool.t are passing for quite a while.
The only remaining problem was the segmentation fault with parrot when running '(0 but Bool::True) and print qq{$_ } for 1..1000;'.
I just tested with the latest Rakudo Star (2015.02) and I was unable to reproduce the segfault there -- even with more iterations:
$ perl6-p -e '(0 but Bool::True) and print qq{$_ } for 1..10000;' 1 2 [...] 10000
I'm closing this ticket as 'resolved'.
As noted above the tests in S02-types/bool.t are passing for quite a while.
The only remaining problem was the segmentation fault with parrot when running '(0 but Bool::True) and print qq{$_ } for 1..1000;'.
I just tested with the latest Rakudo Star (2015.02) and I was unable to reproduce the segfault there -- even with more iterations:
$ perl6-p -e '(0 but Bool::True) and print qq{$_ } for 1..10000;' 1 2 [...] 10000
I'm closing this ticket as 'resolved'.
@usev6 - Status changed from 'open' to 'resolved'
Migrated from rt.perl.org#116933 (status was 'resolved')
Searchable as RT116933$