On Thursday 29 November 2007 18:05:32 Patrick R.Michaud wrote: > Yes, that subject line is correct -- I've found a bug > that shows itself _only_ > - when I build Parrot using ccache, > - for one seemingly obscure json test, > - when running Parrot with the --gc-debug core (e.g., 'make test') > - for revisions after 23232 > > It's very consistent, however -- I can reproduce it reliably on > my system. > > Here are the details as best I can put them together. > The failing test is t/compilers/json/to_parrot.t #54 . > The code it generates is: > > .sub test :main > load_bytecode 'compilers/json/JSON.pbc' > load_bytecode 'library/dumper.pbc' > > .local pmc JSON, result > JSON = compreg "JSON" > result = JSON("{\"one\":true,\"two\":false,\"three\":null}") > _dumper(result, "JSON") > .end > > Running this with a normal parrot command line gives: > > $ ./parrot to_parrot_57.pir > "JSON" => Hash { > "one" => 1, > "three" => null, > "two" => 0 > } > > Running this with --gc-debug gives a segmentation fault. > Adding 'say' statements shows that the segfault occurs sometime > during the _dumper() call (i.e., the call to JSON appears to > succeed). > > The script I use to build Parrot with ccache looks like: > > make realclean > CC="ccache gcc" > CX="ccache g++" > perl ./Configure.pl --cc="$CC" --cxx="$CX" --link="$CX" --ld="$CX" $@ > && make > > I tried doing the above by hand as well and get the same results. > > I'm running Kubuntu 7.10. > Gcc reports gcc version 4.1.3 20070929 (prerelease) (Ubuntu > 4.1.2-16ubuntu2) ccache reports version 2.4 > > All packages are the standard ones distributed as part of the > Kubuntu repositories. > > If I can provide further details, let me know. As things stand now, > I can't get 'make test' to pass this one json test when I build Parrot > using ccache.
Can you provide a backtrace that shows which dereference is invalid? -- c