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