[boehm-gc] Import 6.3 alpha 1
Jeff Sturm
jsturm@one-point.com
Wed Jul 30 14:06:00 GMT 2003
On 2003年7月30日, Bryce McKinlay wrote:
> > Bryce's is a good plan, if difficult to implement. One way to
> > accomplish
> > it could be to JIT everything; allow the interpreter to load classes as
> > usual, then swap method pointers to interpreter trampolines for
> > compiled
> > functions.
>> I don't believe that implementing the binary compatibility ABI itself
> requires the use of any JIT code generation or trampolines.
Right, it doesn't. (I didn't claim otherwise.)
> The
> construction of the binary compatibility/link tables would be completed
> before any code from a given class is run, so there arn't any issues
> with having to synchronize & check link tables at runtime. (the
> statement in my post above should actually read "java.lang.Class
> objects would be created at runtime as classes are _linked_ ")
Creating class instances on the heap could go a long way towards solving
the large root set problem.
Drifting off topic slightly, I think it does matter when exactly classes
are linked. If I have a class A:
class A {
B b() {
return new B();
}
}
should "new A()" cause B to be loaded? (With the JRE it does not.)
This is an example of what blocks us from using gcj from "real world"
applications.
That said, I think the best of all worlds is a new ABI with a choice of
static linking or a JIT.
Jeff
More information about the Java
mailing list