Hi, I built a fresh CVS parrot with garbage collection and linked parrot and imcc against Electric Fence. A few tests failed. The (edited) results are here:
http://www.technolalia.com/~ndronen/test-with-gc.txt I don't think the mmap failures are important; I suspect they're induced by fact that efence causes heap gobbling. Still, there's this: # ElectricFence Aborting: free(45000000): address not from malloc(). # ElectricFence Aborting: free(46000000): address not from malloc(). The stack traces from those aborts: $ gdb -q parrot core-interp.t Core was generated by `./parrot --gc-debug t/op/interp_6.pasm'. [ snip ] #0 0x400ebce1 in kill () from /lib/libc.so.6 (gdb) where #0 0x400ebce1 in kill () from /lib/libc.so.6 #1 0x400c1eb6 in EF_Abort () from /usr/lib/libefence.so.0 #2 0x400c17c4 in free () from /usr/lib/libefence.so.0 #3 0x080a5f66 in mem_sys_free (from=0x45000000) at memory.c:48 #4 0x08125f7f in Parrot_destroy_header_pools (interpreter=0x43b4bcd0) at headers.c:444 #5 0x08064ce2 in Parrot_really_destroy (exit_code=0, vinterp=0x43b4bcd0) at interpreter.c:883 #6 0x08127445 in Parrot_exit (status=0) at exit.c:66 #7 0x0805e845 in main (argc=1, argv=0xbffff53c) at main.c:515 $ gdb -q parrot core-pmc.t Core was generated by `./parrot --gc-debug t/pmc/pmc_59.pasm'. [ snip ] #0 0x400ebce1 in kill () from /lib/libc.so.6 (gdb) where #0 0x400ebce1 in kill () from /lib/libc.so.6 #1 0x400c1eb6 in EF_Abort () from /usr/lib/libefence.so.0 #2 0x400c17c4 in free () from /usr/lib/libefence.so.0 #3 0x080a5f66 in mem_sys_free (from=0x46000000) at memory.c:48 #4 0x08125f7f in Parrot_destroy_header_pools (interpreter=0x44ee3cd0) at headers.c:444 #5 0x08064ce2 in Parrot_really_destroy (exit_code=0, vinterp=0x44ee3cd0) at interpreter.c:883 #6 0x08127445 in Parrot_exit (status=0) at exit.c:66 #7 0x0805e845 in main (argc=1, argv=0xbffff53c) at main.c:515 Rebuilding with --gc=malloc generated a few warnings, but no efence aborts during make test: malloc.c malloc.c:1271: warning: function declaration isn't a prototype malloc.c: In function `sYSMALLOc': malloc.c:2875: warning: declaration of `brk' shadows global declaration malloc.c: In function `memalign': malloc.c:4220: warning: declaration of `brk' shadows global declaration malloc.c: In function `mallinfo': malloc.c:4639: warning: function returns an aggregate malloc.c:4663: warning: comparison between signed and unsigned malloc.c: At top level: malloc.c:4699: warning: function declaration isn't a prototype malloc.c: In function `malloc_stats': malloc.c:4700: warning: function call has aggregate value malloc.c:4716: warning: implicit declaration of function `PIO_eprintf' Regards, Nick