RFR: 8304915: Create jdk.internal.util.Architecture enum and apply [v4]
ExE Boss
duke at openjdk.org
Thu Apr 6 08:08:20 UTC 2023
On Wed, 5 Apr 2023 19:20:08 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> Define an internal jdk.internal.util.Architecture enumeration and static methods to replace uses of the system property `os.arch`.
>> The enumeration values are defined to match those used in the build.
>> The initial values are: `X64, X86, IA64, ARM, AARCH64, RISCV64, S390X, PPC64LE`
>> Note that `amd64` and `x86_64` in the build are represented by `X64`.
>> The values of the system property `os.arch` is unchanged.
>>
>> The API is similar to the jdk.internal.util.OperatingSystem enum created by #[12931](https://git.openjdk.org/jdk/pull/12931).
>> Uses in `java.base` and a few others are included but other modules will be done in separate PRs.
>
> Roger Riggs has updated the pull request incrementally with one additional commit since the last revision:
>
> Correct spelling of isAARCH64 in WIndows AttachProviderImpl
src/java.base/share/classes/jdk/internal/util/Architecture.java line 26:
> 24:
> 25: import jdk.internal.vm.annotation.ForceInline;
> 26:
Suggestion:
import jdk.internal.vm.annotation.ForceInline;
import jdk.internal.vm.annotation.Stable;
src/java.base/share/classes/jdk/internal/util/Architecture.java line 47:
> 45:
> 46: // Cache a copy of the array for lightweight indexing
> 47: private static final Architecture[] archValues = Architecture.values();
This needs to be annotated with `@jdk.internal.vm.annotation.Stable` for `Architecture.current()` to be constant foldable:
Suggestion:
private static final @Stable Architecture[] archValues = Architecture.values();
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13357#discussion_r1159426832
PR Review Comment: https://git.openjdk.org/jdk/pull/13357#discussion_r1159424057
More information about the core-libs-dev
mailing list