Bug with ConstantValueAttribute?
Erik Schnetter
kaffe@kaffe.org
Mon, 28 Apr 1997 17:55:47 +0200 (MESZ)
Hello.
Let me start with the (usual) paragraph about how impressed I am by kaffe,
by its speed and yet its simplicity. It is a great tool, and I'd like to
see it work for the Sather compiler producing Java bytecode.
Yet there seem to be some problems... Yesterday I found at least one of
them, and now I'm not sure whether this is an oversight in kaffe, or
whether I misread the JVM specification.
It has to do with "final static" constants, or (probably) with the
ConstantValueAttribute. A Java program explicitely accessing such an
attribute in a different class reads a zero instead of the true value. It
seems that kaffe does not initialize such values.
An example is the class java.lang.Math, containing final statics like PI.
Accessing such a value from a method I wrote yielded the value zero.
Programs compiled with "java" (the compiler from Sun) do not show this
problem because they always inline final static constants.
Is a bytecode compiler required to inline final static constants? From
the JVM specification it seems as if not. Any clarification would help.
If this should be a bug in kaffe -- could you give me a hint how to fix
it, such as "ConstantValueAttributes are handled there and there; just add
handling finals"?
Thank you,
-erik
-----
Erik Schnetter, erik.schnetter@student.uni-tuebingen.de
Arthur C. Clarke saw the future.
He knew it would be run by huge computers.
And he was right. Just not about the size.