This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ahead of time compiler solutions


Tom Tromey wrote:

"Philippe" == Philippe Laporte <plaporte@wgate.com> writes:

Per> It still makes no sense.

Philippe> What if I have 20 JVMs running on the system? Do you have a
Philippe> quantitative idea, in the following line:

I think the point is that it makes more sense to just precompile your
application with gcj and use libgcj. Even if patches to make gcj emit
JNI code were finished, I'd question whether we would want to include
them. It isn't, to my mind, a very fruitful approach for free VMs,
especially given that libgcj already exists -- its only use would be
with non-free VMs. Also, there would inevitably be an associated
maintenance burden.

Tom

How far is the GCJ AWT from working? How many 40-hours one man weeks do you think? I'm not suggesting that I already know how to do it, but if it's a bug or two, it's another matter.
I know Paul Fischer from FSF has been asking Transvirtual for it. The two obvious guys that could finish the thing are the Mehlitz brothers. They're very busy with other things right now...

Has GCJ been run though the JCK (TCK) or an equivalent (about which I'd like to hear)?

This is the result of my survey on ahead-of-time compilers for Java up to now:

The situation is:

20 or so Mozillas run on the same system, each starting a JVM, but we would like to have a single copy of the core classes loaded system-wide. The OS
loads the JVM text only once, but the core classes are dynamically loaded by each JVM process, having its own copy. Precompiling the core classes would
provide huge memory savings in that the code for the core classes would be loaded in memory only once, "part" of the JVM executable.

I have found the following solutions:

1- GCJ (http://gcc.gnu.org/java/)

It was made compatible with Kaffe at some point, so it might sound feasible to do it for the SUN JVM. The best experts estimate the required time to
make compatible to SUN to be beyond our interests.

We could use GCJ as the complete solution but their AWT is not completely OK yet. Transvirtual won't release their AWT (BISS-AWT) because they still
hope to sell it.

It's also possible to generate inefficient, JNI code instead of what's being done now. This would produce relatively slow code, but be a much lesser development
effort.

Contacts:

GCJ: Tom Tromey (tromey@redhat.com)

Kaffe-GCJ: Patrick Tullmann (tullmann@cs.utah.edu)


2- TurboJ (http://www.ri.silicomp.fr/adv-dvt/java/turbo/)

Supports up to JDK 1.1. They estimate the bring up to date time for one man
at a year. Not a free product. Used by WindRiver and HP.

3- Harissa (http://compose.labri.fr/prototypes/harissa/)

Only supports JDK 1.0.2. Last updated 1998. By now I know this would be a
long project.

4- Toba (http://www.cs.arizona.edu/sumatra/toba/)

Supports up to JDK 1.1. Need I say more...


Then...

The JDK should provide an isolation API in version 1.5 which should provide
the functionality we require.

See

http://developer.java.sun.com/developer/bugParade/bugs/4416624.html

for more details.



Do you know anything else?
Otherwise, what's your estimate of how many 40-hours one man weeks for the JNI method?
You cannot see the use of the JNI way? Even if it weren't used by GCJ, it could be by Kaffe, and by so many other VMs, which might bring some people to GCJ who have projects were space is much more important than speed, at least until we get the Isolation API...



Best Regards,
--
Philippe Laporte

Software Engineer

WorldGate
3190 Tremont Avenue
Trevose PA 19053
Tel: 215-354-5389
Email: plaporte@wgate.com



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