This is the mail archive of the java-discuss@sourceware.cygnus.com mailing list for the GCJ project. See the GCJ home page for more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: class gc


Godmar> Either you'll need to check on the collector side that you
Godmar> don't mark anything you haven't allocated.

>> This is what we do right now.  That's because the Boehm collector
>> is smart about this sort of thing, though -- not from any real
>> plan.

Godmar> What exactly do you mean by "smart"?

The Boehm GC knows which objects it allocated and which it did not.

Godmar> Are you referring to the possibility of using
Godmar> GC_make_descriptor for each class and have Boehm use a bitmap
Godmar> when walking a class?

We do precise marking of Java objects but we don't use the bitmap
method.  Instead we make our own mark functions.  See gc_mark.h in the
Boehm GC distribution.

Godmar> You do know not whether F.type points to a class object you
Godmar> can safely mark or not.  How do you write the walk method for
Godmar> class F such that you don't mark `type' unless it's okay to do
Godmar> so?  If the walk method uses Boehm's bitmap based descriptors,
Godmar> how would that work?

As I understand it, the Boehm GC `PUSH_CONTENTS' macro does sanity
checks to make sure you are actually passing it an object which it
allocated.


This is just one way we currently rely on the Boehm GC to work around
deficiencies in our compiler or runtime.  Someday that will change.

Tom