On Fri, 10 May 2024 10:06:55 GMT, Alan Bateman <[email protected]> wrote:
> This is the implementation changes for JEP 471.
>
> The methods in sun.misc.Unsafe for on-heap and off-heap access are deprecated
> for removal. This means a removal warning at compile time. No methods have
> been removed. A deprecated message is added to each of the methods but
> unlikely to be seen as the JDK does not generate or publish the API docs for
> this class.
>
> A new command line option --sun-misc-unsafe-memory-access=$value is
> introduced to allow or deny access to these methods. The default proposed for
> JDK 23 is "allow" so no change in behavior compared to JDK 22 or previous
> releases.
>
> A new test is added to test the command line option settings. The existing
> micros for FFM that use Unsafe are updated to suppress the removal warning at
> compile time. A new micro is introduced with a small sample of methods to
> ensure the changes doesn't cause any perf regressions.
>
> For now, the changes include the update to the man page for the "java"
> command. It might be that this has to be separated out so that it goes with
> other updates in the release.
Looks good. I've left some optional comments.
test/micro/org/openjdk/bench/java/lang/foreign/AllocFromTest.java line 167:
> 165:
> 166: @Override
> 167: @SuppressWarnings("removal")
I believe we already disable a bunch of warnings from the command line when
compiling these benchmarks. Perhaps we can just tweak the build script in a
similar way and avoid the changes to the sources? E.g.
DISABLED_WARNINGS := restricted this-escape processing rawtypes cast \
Should we add `removal` there?
-------------
Marked as reviewed by mcimadamore (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/19174#pullrequestreview-2057562462
PR Review Comment: https://git.openjdk.org/jdk/pull/19174#discussion_r1601368794