harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Evgueni Brevnov" <evgueni.brev...@gmail.com>
Subject Re: [drlvm] Doing the minimum to support Java 5 classfiles
Date Fri, 23 Jun 2006 16:19:29 GMT
Hello,

I can give a little bit more details regarding 1.5 support enabling
for DRL VM. As Rana already mentioned there are 8 new attributes
should be supported by VM. To be precise there are three common
attributes (Signature_attribute, RuntimeVisibleAnnotations_attribute,
RuntimeInvisibleAnnotations_attribute) for ClassFile, field_info and
method_info. One specific attribute (EnclosingMethod_attribute) for
ClassFile. Three additional attributes
(RuntimeVisibleParameterAnnotations_attribute,
RuntimeInvisibleParameterAnnotations_attribute,
AnnotationDefault_attribute) for method_info. And one attirbute
(LocalVariableTypeTable_attribute) for Code. All these new attributes
should be proccessed in vmcore/src/class_support/Class_File_Loader.cpp
file. It seems to be convenient to proccess common attributes in one
place. Field::parse, Method::parse and class_parse methods look like
the right place for corresponding attributes
proccessing.Method::_parse_code method is suitable place to support
LocalVariableTypeTable_attribute. New attributes suppport seems to be
the most challenging part of 1.5 class format support.
   A few changes required to basic structures such as Class, Field,
Method and ClassMemeber declared in vmcore/includes/Class.h. For
example is_varargs() & is_bridge() methods should be supported by
Method structure, is_enum() by Field and get_signature() by
Class_Member.
   One more feature is left for full 1.5 class file format support.
It's ldc opcode. 1.5 extends the scope of this opcode from runtime
constant of type int or float and string literals to symbolic
references to a class. Thus to support new semantic of the ldc opcode
in interpreter mode one need to incorporate required changes into
interpreter/src/interpreter.cpp. The only one change for JITRINO.JET
compiler is required. Currently the rth_get_lil_ldc_string method
which is located in vmcore/src/jit/jit_runtime_support.cpp can load
strings only. The implemetation should be extended to load classes as
well.
   Unfortunatelly, I haven't investigated what should be changed in
verification proccess for 1.5 class file format support Probably
someone else can give us an advice.
   I hope this inforamtion is helpfull. Open to ansewr your questions.


Evgueni

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message