Default methods for jdk8: request for code review
    Coleen Phillimore 
    coleen.phillimore at oracle.com
       
    Fri Oct 19 10:23:04 PDT 2012
    
    
  
bytecodeAssembler.hpp
Can you add to the top comment about why someone would use this class, 
and why you are using it.  I think if we have other generated methods, 
this is a useful class for people to add to rather than write their own 
in a different way.
BytecodeCPEntry is a VALUE_OBJ_CLASS_SPEC  (currently)
defaultMethods.cpp
line 775 - I think this  is the ResourceMark that's keeping everything 
alive right.  I think you should have a comment here that everything is 
resource allocated and not to add ResourceMark's in odd places.
KeepAliveRegistrar - I think this is a good solution to the problem of 
redefining classes while you are processing them.  It usually isn't a 
problem for the class you are finding default methods for because it's 
not in the system dictionary yet.  If a super class is redefined while 
you are processing the methods can it add an implementation for default 
or abstract method?   I think this isn't possible today until extended 
class redefinition.
783 - I think you want a ResourcMark() in here and 657.   These names 
printed might take up enough space for you to worry about running out 
while this is code is executed.
647 - if m is an overpass, why do you lookup the method again and why 
can it get a different answer.   A comment why would help because I 
don't know.
81 - seems like super_of() belongs in instanceKlass.hpp - just change 
the type of super() to return InstanceKlass.   Isn't _super always 
InstanceKlass (we can add this as another cleanup, but if you move your 
function we'll get it too in the cleanup).
48 - a nice comment about what these PseudoScopeMarks are for would be 
useful.   It's so you don't iterate recursively I think.
86 - print_slot and print_method seem like they should be under ifndef 
PRODUCT    And PrintHierarchy should be #ifndef PRODUCT rather than 
ASSERT.   Not that there's a good solid rule around these two 
preprocessor directives, but make sure optimized builds.
I am looking at HiearchyVisitor::run now.  I like how it perfectly fits 
on a page for me.   This looks really good so far.
Thanks,
Coleen
On 10/19/2012 7:24 AM, Keith McGuigan wrote:
>
> Anyone?
>
> On 10/10/2012 1:12 PM, Keith McGuigan wrote:
>> Hello,
>>
>> I'd like any review of the code which implements default methods in the
>> JVM.  This is destined for jdk8 as part of JSR 335 (Lambdas), and
>> tracked by CR 7200776.
>>
>> The design and implementation is described in this short document:
>> http://cr.openjdk.java.net/~kamg/default_methods_in_hotspot.txt
>>
>> And the code is here:
>> http://cr.openjdk.java.net/~kamg/default_methods/
>>
>> Any review (even partial) would be appreciated.  Thanks!
>>
>> -- 
>> - Keith
    
    
More information about the lambda-dev
mailing list