Using Scala 3.6.4 with Java 24 gives warnings

❯ scala
WARNING: A terminally deprecated method in sun.misc.Unsafe has been called
WARNING: sun.misc.Unsafe::objectFieldOffset has been called by scala.runtime.LazyVals$ (file:/home/spam/.sdkman/candidates/scala/3.6.4/maven2/org/scala-lang/scala3-library_3/3.6.4/scala3-library_3-3.6.4.jar)
WARNING: Please consider reporting this to the maintainers of class scala.runtime.LazyVals$
WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::load has been called by org.jline.nativ.JLineNativeLoader in an unnamed module (file:/home/spam/.sdkman/candidates/scala/3.6.4/maven2/org/jline/jline-native/3.27.1/jline-native-3.27.1.jar)
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module
WARNING: Restricted methods will be blocked in a future release unless native access is enabled

Welcome to Scala 3.6.4 (24, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
                                                                                       
scala> 

Is it known, should I report it?

Yes, it’s known issue, it’s going to be fixed in Scala 3.8 which would also increment the minimal version of JDK required by the compiler

5 Likes

To avoid warnings, add --sun-misc-unsafe-memory-access=allow to your jvm launch options.

for scala-cli:
//> using javaOpt --sun-misc-unsafe-memory-access=allow

for mill:
override def forkArgs: T[Seq[String]] = Seq(
“–sun-misc-unsafe-memory-access=allow”,
)

1 Like