RFR: 8366455: Move VarHandles.GuardMethodGenerator to execute on build [v2]
Chen Liang
liach at openjdk.org
Fri Sep 5 21:11:21 UTC 2025
On Tue, 2 Sep 2025 22:20:26 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Currently, java.lang.invoke.VarHandles$GuardMethodGenerator is in a weird state: when VarHandleGuards needs to be updated, we uncomment it, build JDK, run it as a main class, and paste the generated VarHandleGuards class.
>>
>> This process is complex and error-prone, and having a huge chunk of commented out code is not good for maintenance and verification too.
>>
>> Looking at how i18n and charsets generate, we can move this generator to the build system, and have VarHandleGuards completely automatically generated like the other VarHandle implementation classes or CharacterData.
>>
>> <details>
>> <summary>
>> Diff from new to old (backwards):
>> </summary>
>>
>>
>> liach at liach-Precision-5690:~$ git diff --no-index /home/liach/java/jdk-5/build/linux-x64/support/gensrc/java.base/java/lang/invoke/VarHandleGuards.java /home/liach/java/jdk/open/src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java
>> diff --git a/home/liach/java/jdk-5/build/linux-x64/support/gensrc/java.base/java/lang/invoke/VarHandleGuards.java b/home/liach/java/jdk/open/src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java
>> index 13ef65b..49408a2 100644
>> --- a/home/liach/java/jdk-5/build/linux-x64/support/gensrc/java.base/java/lang/invoke/VarHandleGuards.java
>> +++ b/home/liach/java/jdk/open/src/java.base/share/classes/java/lang/invoke/VarHandleGuards.java
>> @@ -28,8 +28,7 @@ import jdk.internal.vm.annotation.AOTSafeClassInitializer;
>> import jdk.internal.vm.annotation.ForceInline;
>> import jdk.internal.vm.annotation.Hidden;
>>
>> -// This file is generated by build.tools.methodhandle.VarHandleGuardMethodGenerator.
>> -// Do not edit!
>> +// This class is auto-generated by java.lang.invoke.VarHandles$GuardMethodGenerator. Do not edit.
>> @AOTSafeClassInitializer
>> final class VarHandleGuards {
>>
>>
>>
>> </details>
>>
>> Testing: java/lang/invoke.
>
> Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>
> - Preexisting typos
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/build-vhguards
> - Restore order
> - 8366455: Move VarHandles.GuardMethodGenerator to execute on build
Thanks for the reviews!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27009#issuecomment-3259748920
More information about the core-libs-dev
mailing list