From: Godmar Back (gback@cs.utah.edu)
Date: Sun Nov 01 1998 - 17:08:44 EST
>
> Archie,
>
> You could "fix" the server problem by running a low priority thread in our
> server which periodically invoked the GC by hand - not too elegant of
> course but it might help yoiu.
>
> But regarding the incremental GC - really the GC should just be thrown
> away and replace by something whihc is a bit more state of the art -
> something generational would be my choice (generational and incremental is
> also posibe though some of the literature doesn't seem to think this is a
> good idea).
>
> Perhaps someone shold look into adapting a public domain GC for Kaffe -
> there are a few out there. Of maybe we should just bite th bullet and
> rewrite the thing.
>
Wolfgang Rumpelnik from Austria wrote a generational train collector for
Kaffe for his MS thesis. One of the main problems which took him a long
time to figure out is the lack of a well-defined interface between VM
and gc. I think that fixing that and defining such an interface should
be the first step. This interface should include the interaction with
the threading system and the information about the layout of objects.
He sent me a chapter of his thesis; it's in German though. I still have
to read it, and will summarize once I have. He's not opposed to contributing
his code, but it's not one of his priorities, either.
Included in this gc/vm interface could also be support for precise stack
scanning. I talked with Sean McDirmid about it a bit, and he feels that
in the absence of a moving collector that shouldn't be too hard to do:
given the excessive amount of spilling already done by the JIT, it should
be possible to have exactly one stack map per method. I think the only
exception might be these tricky finally clauses (described in Moss's PLDI98
paper) where the Gosling property is violated.
Basically, all that would be needed is a per-method area on the stack:
all words in there are either references or null. The JIT would need to
ensure that it never nulls out a reference slo while it is holding a ref
in a register, which I think might either be already the case or easy to
ensure.
About write-barriers: I feel strongly that making them softcalls would
mean too much of a hit; hopefully, I can substantiate that feeling with
numbers soon. So, there's some JIT work to be done to inline them.
Whatever happened to egcs/gcj? Cygnus's attitude isn't exactly what
I'd call fair, given how they started out.
- Godmar
This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:02 EDT