Per Bothner bothner at cygnus.com
Fri Mar 14 14:31:39 PST 1997

> There's one part of your definition of a general model that ours does
> not follow: our header fields are not common to *all* objects.  

You must have *some* common fields, unless you classify the different
kinds of header by address (e.g. page number).

> Specifically, array objects have an extra field for their size

My patches have removed the size field from the object header,
though it is still present in the gcInfo (for all objects).

> In any case, the main goal is to minimize
> per-object space in the common case.

That is also important to Cygnus.

> It just seemed that plugging our objects into kaffe would require 
> tweaking of just about every part of the code, and so we're building
> from the ground up.

I think the biggest issue is you are using a copying collector,
whereas Kaffe has non-copying conservative collector.  Using a
copying collector would surely require many changes to Kaffe.
And it might also make it difficult to use Gcc to compiled Java,
though of course there is historical precedence for adding
support for a copying collector to Gcc (your group's Modula-3).

The jury seems to be out on whether the extra complication
and overheads of a copying collector are justified by
improved performance.  I tend to be skeptical.  But I would
still love to study your code and algorithms, since I am sure
there are ideas that would be valuable for Kaffe.

	--Per Bothner
Cygnus Solutions     bothner at cygnus.com     http://www.cygnus.com/~bothner

More information about the kaffe mailing list