[10] RFR: 8175233: Remove LambdaForm.debugName

Claes Redestad claes.redestad at oracle.com
Wed Feb 22 00:19:01 UTC 2017


Hi Paul,

On 2017-02-21 23:46, Paul Sandoz wrote:
>
>> On 20 Feb 2017, at 06:24, Claes Redestad <claes.redestad at oracle.com> wrote:
>>
>> Hi,
>>
>> the LambdaForm.debugName field is useful for debugging, but names
>> are generated and retained in this field also for production code, which
>> is then used to name generated methods and classes.
>>
>> This patch suggests to extract this field and make the debug name an
>> external mapping that is only generated (and used) when actually debugging,
>> while using LambdaForm.Kinds to guide the naming of classes and methods
>> generated in production mode.
>>
>> This also fixes(?) a subtle bug that when transforming a LambdaForm using
>> LambdaFormEditors the debugName was retained through all transformations,
>> which leads to confusing/surprising results (since many transformations starts
>> out with a BMH.reinvoker and is then transformed via editor manipulations,
>> most generated forms appear to be BMH.reinvokers when in fact they aren't).
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8175233
>>
>> Webrevs:
>> http://cr.openjdk.java.net/~redestad/8175233/jdk.01/
>> http://cr.openjdk.java.net/~redestad/8175233/hotspot.01/
>>
>
>
> LambdaForm
>>
> You might wanna consider colocating "lambdaName” with “generateDebugName”, then it’s easier to see that the latter is called from within a synchronized block of the former.
>

yes, updated in-place.

Thanks!

/Claes

>
>> Testing:
>> - Pre-checkin testing on all platforms
>> - Locally tested java.lang.invoke tests with and without -Djava.lang.invoke.MethodHandle.DEBUG_NAMES=true
>> - Ensured -Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true behaves as intended
>> - Made sure the changes don't clash with JDK-8172298
>>
>
> Thanks, i keep forgetting to push the patch for JDK-8172298, now done.
>
> Paul.
>


More information about the core-libs-dev mailing list