#1393: t/compilers/pge/pge_examples.t: PASS by itself, FAIL during 'make smoke'
---------------------+------------------------------------------------------
Reporter: jkeenan | Owner:
Type: bug | Status: new
Priority: major | Milestone:
Component: testing | Version: 1.9.0
Severity: high | Keywords:
Lang: | Patch:
Platform: |
---------------------+------------------------------------------------------
Comment(by lithos):
Hello!
I was not able to reproduce jkeenan's test FAIL out-of-the-box. However,
if I add a mark-and-sweep call directly after the self-freeing call in
src/pmc/retcontinuation.pmc like this (in order to immediately trigger
bugs caused by left-over pointer to the RetContinuation):
{{{
Parrot_gc_free_pmc_header(interp, SELF);
Parrot_gc_mark_and_sweep(interp, 0);
}}}
then I get the exact same assertion failure after test 60.
The continuation is propagated to a second context in the
Parrot_tailcallmethod_p_sc opcode in this case. The continuation
is not detached in this case because Parrot_pcc_do_run_ops returned 0.
Output by my debug prints directly before the assertion failure:
{{{
tailcallmethod PMC STR 1 0
tailcallmethod PMC STR invoking with continuation 0x8d38d44
2515: ./src/pmc/sub.pmc:401: setting continuation 0x8d38d44 in context
0x8db7c54
}}}
where the "1" means it is a RetContinuation PMC and the "0" is the return
value of Parrot_pcc_do_run_ops.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1393#comment:24>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets