ARM support
Per Bothner
per@bothner.com
Wed Jul 2 22:08:00 GMT 2003
James Mansion wrote:
>>No, it because the basic class library is very interconnected.
>>java.io is tied up with java.util which is tied up with java.text
>>which is tried up with internationization. Even "hello world"
>>ends up referencing a lot of classes, even without reflection.
>>> Out of interest, does anyone know whether mono does better?
You should ask about C#, the language, not Mono, the implementation,
because the problem isn't with Gcj's implementation of Java, but with
the Java "specification" - or rather the JDK.
Many, perhaps most, of the interdependencies are because of the
parameter and result types of the public methods. That's what makes
it hard - if it was just implementation interdependencies we could
probably fix those.
Now there are a number of techniques and ideas that can solve or
reduce the problem. Some have been implemented for C++ but not Java.
Here I'm thinking: If nobody calls a method foo(), then we can remove
it from the binary. The complication is determining this fact when
foo() is a virtual method. Standard static linkers won't handle this
well, because they see that the method is references from some virtual
method tables. A smarter linker can do much better, but it needs to
understand how virtual- and interface- methods are implemented.
The problem is that there is no quick fix, most of us are volunteers,
and there isn't much motivation to work for free on a problem that
mostly effects people developing commercial applications. Not
that we wouldn't love to have a solution, but it's too big a problem
to work on in our unpaid spare time.
--
--Per Bothner
per@bothner.com http://per.bothner.com/
More information about the Java
mailing list