Hello.
I created boehm_gc branch for... ahem.. bringing Boehm GC to Parrot.
It's almost work. Unfortunately it's _slower_ than current naive
mark&sweep GC in Parrot. Some results here
ba...@icering:~/src/parrot$ time ./parrot --gc=boehm
ext/nqp-rx/nqp-rx.pbc fib.nqp
fib(28) = 317811
real 0m18.534s
user 0m16.673s
sys 0m1.372s
ba...@icering:~/src/parrot$ time ./parrot ext/nqp-rx/nqp-rx.pbc fib.nqp
fib(28) = 317811
real 0m16.166s
user 0m15.565s
sys 0m0.120s
ba...@icering:~/src/parrot$ cat fib.nqp
sub fib($n) {
($n < 2) ?? $n !! fib($n-1) + fib($n-2);
}
my $N := 28;
pir::say("fib($N) = " ~ fib($N));
I'm not quite familiar with Boehm GC, but my expectations were very
different. Looks like it doesn't reclaim any memory and marking it on
any GC_MALLOC call.
So, I need help to understand what's going on.
(BTW, branch passing almost all coretests except VTABLE_destroy based
FileHandle and NCI.)
--
Bacek
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev