This is an automated email from the ASF dual-hosted git repository.
He-Pin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-persistence-r2dbc.git
The following commit(s) were added to refs/heads/main by this push:
new 4a82779 Add -Yfuture-lazy-vals for Scala 3.3.x builds (#400)
4a82779 is described below
commit 4a827791d58c3a7dca0770947acff0db35bab1cf
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Sun Jun 14 19:16:20 2026 +0800
Add -Yfuture-lazy-vals for Scala 3.3.x builds (#400)
* feat: Add -Yfuture-lazy-vals for Scala 3.3.x builds
Motivation:
The Scala 3.3.8 compiler introduced the -Yfuture-lazy-vals flag to
optionally use VarHandle instead of sun.misc.Unsafe for lazy val
implementation. This prepares libraries for upcoming JDK releases
that restrict sun.misc.Unsafe access.
Modification:
Add -Yfuture-lazy-vals to scalacOptions, conditionally applied only
for Scala 3.3.x via CrossVersion.partialVersion or scalaBinaryVersion.
Result:
Scala 3.3.x build uses the future-proof VarHandle-based lazy val
implementation, compatible with all JDK 9+ versions including future
releases that restrict sun.misc.Unsafe.
References:
Refs scala/scala3-lts#637
Refs apache/pekko#3059
* fix: Add -release:17 required by -Yfuture-lazy-vals
The -Yfuture-lazy-vals flag requires explicit -java-output-version
set to minimum version 9 or higher. Add -release:17 to satisfy
this requirement for Scala 3.3.x builds.
---
project/CommonSettings.scala | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/project/CommonSettings.scala b/project/CommonSettings.scala
index 55956d5..d5e6d64 100644
--- a/project/CommonSettings.scala
+++ b/project/CommonSettings.scala
@@ -26,6 +26,10 @@ object CommonSettings extends AutoPlugin {
crossVersion := CrossVersion.binary,
// Setting javac options in common allows IntelliJ IDEA to import them
automatically
Compile / javacOptions ++= Seq("-encoding", "UTF-8", "--release", "17"),
+ scalacOptions ++= {
+ if (scalaBinaryVersion.value == "3") Seq("-Yfuture-lazy-vals",
"-release:17")
+ else Seq.empty
+ },
Test / logBuffered := false,
Test / parallelExecution := false,
// show full stack traces and test case durations
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]