On Thursday 21 June 2007 22:19:42 Andy Lester wrote:
> pmichaud and I figured today that the segfaulting in 06-grammar.t is
> caused by optimization, with the --optimize flag.
>
> However, it's not all the fault of --optimize. I've been working on
> valgrind, and there's some invalid memory accessing going on.
> There's a dump following. The key is in the call to test.'plan'(1).
> If that line is removed, valgrind runs clean. If it's in there, then
> you get the dump as shown. Note that this parrot is built WITHOUT --
> optimize, and we still get the valgrind failures.
>
> I hope this provides some clues.
I'm not sure that it does, but then again I'm not exactly sure what this
valgrind run implies.
I use the shell alias:
valgrind --suppressions=~/dev/parrot/tools/dev/parrot.supp --num-callers=500 \
--leak-check=full --leak-resolution=high --show-reachable=yes \
parrot --leak-test
I find the diagnosis somewhat suspicious, as the call to plan() works like
most of the rest of Test::More and Test::Builder, but for kicks what happens
if you trigger GC runs with and without that line?
.local pmc interp
interp = getinterp
interp.'run_gc'()
-- c