This is an automated email from the ASF dual-hosted git repository.

He-Pin pushed a commit to branch add-future-lazy-vals
in repository https://gitbox.apache.org/repos/asf/pekko-persistence-r2dbc.git

commit d2b9aab4917e6a284b5acd6a6c9d18ed087229b8
Author: 虎鸣 <[email protected]>
AuthorDate: Sun Jun 14 18:25:49 2026 +0800

    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
---
 project/CommonSettings.scala | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/project/CommonSettings.scala b/project/CommonSettings.scala
index 55956d5..f4a07ec 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")
+      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]

Reply via email to