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.