# New Ticket Created by Hugo van der Sanden
# Please include the string: [perl #66336]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=66336 >
This is rakudo @10a9b23a4dad1f5974e725c161a8c5ee656cfb56 built with
icu-4.2.0.1 and parr...@39308 running on Fedora Core 6. Parrot was built
with --optimize to workaround the gcc-4.1.2 bug.
zen% ./perl6 t/spec/S10-packages/basic.rakudo
1..22
ok 1 - class test
not ok 2 - autovivification(?) for nested packages# TODO ticket uses role; RT
#62900
not ok 3 - test for working .perl method# TODO RT #65404
not ok 4 - Non-existant sub through package# TODO RT #62970
not ok 5 - dot notation with package# TODO RT #63432
not ok 6 - enum in package# TODO RT #63826
not ok 7 - access to $?PACKAGE variable# TODO RT #59484
not ok 8 - some WHO implementation# TODO ticket based only on class; RT #60446
not ok 9 - WHO implementation with longname# TODO ticket based only on class;
RT #60446
ok 10 - can refer to role using package
not ok 11 - since role is in package should not need package name# TODO ticket
based on module; RT #63510
not ok 12 - two different packages should be two different Baz# TODO ticket
based on class(es) not package; RT #65022
not ok 13 - two different packages should be two different EHomeE# TODO ticket
based on class(es) not package; RT #65022
ok 14 - # SKIP ticket based on module; RT #64876
not ok 15 - map in package# TODO RT #64606
not ok 16 - use outer lexical# TODO ticket used class; RT #61356
not ok 17 - use outer package var# TODO ticket used class; RT #63588
not ok 18 - Should be able to update outer package var# TODO ticket used class;
RT #63588
not ok 19 - simple package case that should not blow platform# TODO RT #64204
not ok 20 - another simple package case that should not blow platform# TODO RT
#64204
ok 21 - # SKIP RT #64606
ok 22 - array initialization works fine in imported subs
# FUDGED!
Segmentation fault (core dumped)
zen%
Core was generated by `./perl6 t/spec/S10-packages/basic.rakudo'.
Program terminated with signal 11, Segmentation fault.
#0 0x0019aa11 in Parrot_init_arg_indexes_and_sig_pmc (interp=0x9617008,
ctx=0x98da9b8, indexes=0xb6e3afc0, sig_pmc=0xb637979c, sti=0xbfbb16d0)
at src/call/pcc.c:579
579 sti->n = VTABLE_elements(interp, sig_pmc);
(gdb) where
#0 0x0019aa11 in Parrot_init_arg_indexes_and_sig_pmc (interp=0x9617008,
ctx=0x98da9b8, indexes=0xb6e3afc0, sig_pmc=0xb637979c, sti=0xbfbb16d0)
at src/call/pcc.c:579
#1 0x0019ab52 in Parrot_init_arg_op (interp=0x9617008, ctx=0x98da9b8,
pc=0xb6e3afc0, sti=0xbfbb16d0) at src/call/pcc.c:617
#2 0x0019c200 in set_retval (interp=0x9617008, sig_ret=80, ctx=0x98da9b8)
at src/call/pcc.c:1946
#3 0x0019e197 in Parrot_run_meth_fromc_args (interp=0x9617008,
sub=0xb64f6d98, obj=0xb6dfcbb0, meth=0xb63689e4, sig=0x3c5eee "PP")
at src/call/ops.c:471
#4 0x003c11b4 in do_dispatch (interp=0x9617008, self=0x974e4f0,
candidates=0x9da7cd0, proto=0x967aaa8, args=0xb6dc63a0, many=0,
num_candidates=1, next=0xb6f7062c, cache=0x9c806c0)
at ./perl6multisub.pmc:534
#5 0x003c1c27 in Parrot_Perl6MultiSub_invoke (interp=0x9617008,
pmc=0x974e4f0, next=0xb6f7062c) at ./perl6multisub.pmc:1009
#6 0x00150eb5 in Parrot_callmethodcc_p_sc (cur_opcode=0xb6f70620,
interp=0x9617008) at src/ops/object.ops:80
#7 0x001d61c8 in runops_slow_core (interp=0x9617008, pc=0xb6f70620)
at src/runcore/cores.c:462
#8 0x001d5688 in runops_int (interp=0x9617008, offset=17458)
at src/runcore/main.c:987
#9 0x0019da3d in runops (interp=0x9617008, offs=17458) at src/call/ops.c:107
---Type <return> to continue, or q <return> to quit---
#10 0x0019dc5d in runops_args (interp=0x9617008, sub=0xb6de9440,
obj=<value optimized out>, meth_unused=0x0, sig=0x3402d9 "vP",
ap=0xbfbb1a1c "¨Kݶ\bpa\t¨Kݶ(îÿµ\005") at src/call/ops.c:256
#11 0x0019e405 in Parrot_runops_fromc_args (interp=0x9617008, sub=0xb6de9440,
sig=0x3402d9 "vP") at src/call/ops.c:325
#12 0x001898af in Parrot_ex_throw_from_c (interp=0x9617008,
exception=0xb6dd4ba8) at src/exceptions.c:387
#13 0x00189987 in Parrot_ex_throw_from_c_args (interp=0x9617008,
ret_addr_unused=0x0, exitcode=5,
format=0x351b5c "Null PMC access in getprop()") at src/exceptions.c:458
#14 0x0027cde7 in Parrot_Null_getprop (interp=0x9617008, pmc=0x967aaa8,
key=0x972098c) at ./src/pmc/null.c:1231
#15 0x0014da05 in Parrot_getprop_p_sc_p (cur_opcode=0xb7026f08,
interp=0x9617008) at src/ops/pmc.ops:495
#16 0x001d61c8 in runops_slow_core (interp=0x9617008, pc=0xb7026f08)
at src/runcore/cores.c:462
#17 0x001d5688 in runops_int (interp=0x9617008, offset=269196)
at src/runcore/main.c:987
#18 0x0019da3d in runops (interp=0x9617008, offs=269196) at src/call/ops.c:107
#19 0x0019dc5d in runops_args (interp=0x9617008, sub=0xb650e480,
obj=<value optimized out>, meth_unused=0x0, sig=0x3402d9 "vP",
ap=0xbfbb1c0c "Xwã¶") at src/call/ops.c:256
#20 0x0019e405 in Parrot_runops_fromc_args (interp=0x9617008, sub=0xb650e480,
---Type <return> to continue, or q <return> to quit---
sig=0x3402d9 "vP") at src/call/ops.c:325
#21 0x00186a75 in Parrot_runcode (interp=0x9617008, argc=2, argv=0xbfbb1d04)
at src/embed.c:1009
#22 0x080489c1 in main (argc=2, argv=0xbfbb1d04) at perl6.c:122359
(gdb)
Looks like the vtable memory has been reused for something textlike:
(gdb) p sig_pmc->vtable->elements
$1 = (elements_method_t) 0x54414857
(gdb) p &sig_pmc->vtable->elements
$2 = (elements_method_t *) 0xb62daba4
(gdb) p /c ((char*)(sig_pmc->vtable))[...@sizeof(VTABLE)
$3 = {111 'o', 110 'n', 108 'l', 111 'o', 97 'a', 100 'd', 0 '\0', 0 '\0',
0 '\0', 0 '\0', 0 '\0', 0 '\0', 109 'm', 101 'e', 116 't', 97 'a', 99 'c',
108 'l', 97 'a', 115 's', 115 's', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0',
0 '\0', 0 '\0', 72 'H', 79 'O', 87 'W', 0 '\0', 0 '\0', 0 '\0', 0 '\0',
0 '\0', 72 'H', 79 'O', 87 'W', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0',
72 'H', 79 'O', 87 'W', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 72 'H',
79 'O', 87 'W', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 72 'H', 79 'O',
87 'W', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 87 'W', 72 'H', 65 'A',
84 'T', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 72 'H', 79 'O', 87 'W', 0 '\0',
0 '\0', 0 '\0', 0 '\0', 0 '\0', 87 'W', 72 'H', 65 'A', 84 'T', 0 '\0',
0 '\0', 0 '\0', 0 '\0', 87 'W', 72 'H', 65 'A', 84 'T', 0 '\0', 0 '\0',
0 '\0', 0 '\0', 87 'W', 72 'H', 65 'A', 84 'T', 0 '\0', 0 '\0', 0 '\0',
0 '\0', 87 'W', 72 'H', 65 'A', 84 'T', 0 '\0', 0 '\0', 0 '\0', 0 '\0',
87 'W', 72 'H', 65 'A', 84 'T', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 40 '(',
48 '0', 120 'x', 48 '0', 48 '0', 49 '1', 49 '1', 41 ')', 0 '\0', 0 '\0',
0 '\0', 0 '\0', 110 'n', 101 'e', 119 'w', 0 '\0', 0 '\0', 0 '\0', 0 '\0',
0 '\0', 80 'P', 82 'R', 79 'O', 84 'T', 79 'O', 79 'O', 86 'V', 69 'E',
82 'R', 82 'R', 73 'I', 68 'D', 69 'E', 83 'S', 0 '\0', 0 '\0', 0 '\0',
0 '\0', 0 '\0', 0 '\0', 80 'P', 82 'R', 79 'O', 84 'T', 79 'O', 79 'O',
86 'V', 69 'E', 82 'R', 82 'R', 73 'I', 68 'D', 69 'E', 83 'S', 0 '\0',
0 '\0', 0 '\0', 0 '\0', 0 '\0', 0 '\0', 80 'P', 82 'R', 79 'O', 84 'T',
79 'O', 79 'O', 86 'V', 69 'E', 82 'R', 82 'R', 73 'I', 68 'D', 69 'E',
83 'S', 0 '\0', 0 '\0'...}
(gdb)
Hugo