RFR: 8366455: Move VarHandles.GuardMethodGenerator to execute on build [v2]
Chen Liang
liach at openjdk.org
Tue Sep 2 22:20:26 UTC 2025
> 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
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/27009/files
- new: https://git.openjdk.org/jdk/pull/27009/files/eea34487..2f344afa
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=27009&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=27009&range=00-01
Stats: 5872 lines in 591 files changed: 2923 ins; 1274 del; 1675 mod
Patch: https://git.openjdk.org/jdk/pull/27009.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/27009/head:pull/27009
PR: https://git.openjdk.org/jdk/pull/27009
More information about the core-libs-dev
mailing list