RFR: 8013635 Lambda: vm conditionally create bridges for generic signatures

Karen Kinnear karen.kinnear at oracle.com
Fri Jun 21 09:06:17 PDT 2013


Sergeui,

Many thanks for the quick review. I have adopted all of these suggestions.

many thanks,
Karen

On Jun 21, 2013, at 4:04 AM, serguei.spitsyn at oracle.com wrote:

> Karen,
> 
> It looks good.
> 
> Some minor comments below.
> 
> src/share/vm/classfile/defaultMethods.cpp
> 
>  520 class GenericMethodFamily: public MethodFamily {
>  556 class StatefulMethodFamily: public ResourceObj {
>  743 class FindMethodsByErasedSig: public HierarchyVisitor<FindMethodsByErasedSig> {
>    Inconsistent with the style used in the file: need a space before the colon.
> 
>  537   void print_on(outputStream* str) const {
>  538     print_on(str, 0);
>  539   }
> 
>    This function already defined in the base class.
> 
>  746   Thread* THREAD;
> 
>    Is seems the THREAD field is not used.
> 
>  787         // methods in interfaces. This work because of single inheritance
>       work => works ?
> 
> 
>  The indent at the lines 892-921 is wrong.
> 
> 
> 1088   virtual bool path_has_shadow() {return found_shadow();} 
> 
>    A space is needed after "{" and before "}".
> 
> 
> Thanks,
> Serguei
> 
> 
> On 6/20/13 1:18 PM, Karen Kinnear wrote:
>> Please review:
>> https://jbs.oracle.com/bugs/browse/JDK-8013635: BridgeMethodsLinearTest.java fails in 
>> Lambda nightly runs
>> 
>> webrev: http://cr.openjdk.java.net/~acorn/8013635.1/webrev/
>> 
>> This particular set of changes modifies the vm to conditionally handle generic signatures
>> when processing default methods. Basically this code refactors the defaultMethods logic
>> to work either with generic signatures or only with erased signatures.
>> 
>> The flag: ParseGenericDefaults is set to "true" in this webrev to continue to work with
>> the current javac and lambda metafactory components.
>> 
>> The intention is to change ParseGenericDefaults to false and simultaneously change
>> javac to generate bridges to handle generic signatures in interface methods, and
>> the metafactory to no longer generate bridges. 
>> With the flag change, the vm will no longer generate bridges for generic
>> signatures.
>> 
>> A subsequent fix: 8012294 will completely remove the vm generic interface handling
>> for jdk8.
>> 
>> Please approve this change with both flag settings, so we can coordinate making
>> those changes in the order that is least disruptive.
>> 
>> Testing:
>> 
>> I. hotspot-rt: ParseGenericDefaults=true:
>> jprt
>> vm.quick.testlist
>> jdk-jtreg - in progress
>> jck-lang, vm - in progress
>> 
>> II. Lambda repo: ParseGenericDefaults=false:
>> These two files, with other changes not currently needed - tested in lambda repository for a month
>>    including tl nightlies and updated BridgeMethodsLinearTest
>> 
>> III. Current hotspot-rt with these two files only and ParseGenericDefaults=false
>> with jdk8tl repository with 8015402: metafactory changes and 8013789: javac changes:
>> 
>> vm.quick.testlist - in progress
>> jdk-jtreg - in progress
>> jck-lang, vm - in progress
>> 
>> thanks,
>> Karen
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130621/6675673e/attachment-0001.html 


More information about the hotspot-runtime-dev mailing list