On Fri, 30 Sep 2005, Andy Dougherty wrote: > On Fri, 30 Sep 2005, Leopold Toetsch via RT wrote: > > > Andy Dougherty (via RT) wrote: > > > > > With a a fresh checkout (r9274) I get a number of errors where parrot > > > eventually > > > gobbles up all the memory on the system. Here's the first such one: > > > > > > t/op/gc........................ > > > # Failed test (t/op/gc.t at line 279) > > > > > # './parrot --gc-debug > > > "/home/doughera/src/parrot/parrot-andy/t/op/gc_13.pir"' failed with exit > > > code 131 > > > # Looks like you failed 1 test of 22. > > > > Strange. The test succeeds on linux/86 and OS/X 10.3 darwin. Running it > > through valgrind on the linux box doesn't show any indication of an error.
Ok, I've finally found the cause of this one, but I don't have a portable patch at hand. Buried in amongst the 6827 warnings emitted by gcc is one that actually correctly identifies the problem: src/inter_create.c:400: warning: dereferencing type-punned pointer will break strict-aliasing rules And indeed that appears to be the problem. You can even reproduce the problem under Linux/x86 with gcc-3.4 or newer. Simply compile with optimization level of -O3. The *temporary workaround* for *gcc only* is to supply gcc with the -fno-strict-aliasing flag. For those not familiar with aliasing, I found this article http://mail-index.netbsd.org/tech-kern/2003/08/11/0001.html to be useful. Another relevant page (specific to gcc) is at http://gcc.gnu.org/bugs.html#nonbugs_c Hope this helps, -- Andy Dougherty [EMAIL PROTECTED]