[fedora-java] interpreter mystery

Tom Tromey tromey at redhat.com
Mon Aug 28 20:51:43 UTC 2006


Anthony> This output looks very suspicious to me:

Me too.

Anthony> [Loaded (pre-compiled) org.bouncycastle.asn1.DERTags from (file:/usr/share/java/gcj-endorsed/bcprov-1.33.jar <no certificate\s>)]

"pre-compiled" means that this is compiled with the C++ ABI.  At
least, it is supposed to mean that -- it isn't clear to me whether the
test we use at runtime is 100% accurate.

In particular we do:

  return c->otable_syms || c->atable_syms || c->itable_syms;

... but it seems like we could have a BC-compiled class where all of
these are NULL.  For instance a class which is nothing but a bunch of
'int' constants would probably fail this test.

So, without knowing more, it is hard to say whether this output means
there is a bug :(

Anthony> Similarly, it looks as though some Azureus and SWT classes are
Anthony> "BC-compiled" and some are "bytecode".

The 'bytecode' test is definitely accurate.

Anthony> BTW, I also noticed in an ant run that ant was executing
Anthony> natively, while the Eclipse compiler it invokes is being
Anthony> interpreted.  Builds are noticeable slower than on my FC5
Anthony> machine.

I've noticed this when running Eclipse as well.

Anthony> Gah.. this is the problem.  Somewhere along the line
Anthony> aot-compile-rpm is creating partial classmap.db files.  For
Anthony> instance, bcprov-1.33.jar.db only contains 331 entries but
Anthony> bcprov-1.33.jar has over 800 classes.

I looked at the .jar in the eclipse-ecj package and noticed this same
thing.  The .jar has 1346 .class files but the .db only has 180
entries.

Tom




More information about the fedora-devel-java-list mailing list