On Tue, 2 Sep 2025 22:20:26 GMT, Chen Liang <li...@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@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

Reply via email to