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-dynamodb.git


The following commit(s) were added to refs/heads/main by this push:
     new 626f5ee  Add -Yfuture-lazy-vals for Scala 3.3.x builds (#307)
626f5ee is described below

commit 626f5ee0d72e860ee7110f9fbd5fb23ea0cf6a65
Author: He-Pin(kerr) <[email protected]>
AuthorDate: Sun Jun 14 20:46:04 2026 +0800

    Add -Yfuture-lazy-vals for Scala 3.3.x builds (#307)
    
    * 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.
---
 build.sbt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/build.sbt b/build.sbt
index cd4ecf4..a755725 100644
--- a/build.sbt
+++ b/build.sbt
@@ -57,6 +57,10 @@ lazy val root = Project(
       "org.hdrhistogram" % "HdrHistogram" % "2.2.2" % Test,
       "com.dimafeng" %% "testcontainers-scala-scalatest" % 
testcontainersScalaVersion % Test),
     scalacOptions ++= Seq("-deprecation", "-feature"),
+    scalacOptions ++= {
+      if (scalaBinaryVersion.value == "3") Seq("-Yfuture-lazy-vals", 
"-release:17")
+      else Seq.empty
+    },
     Test / parallelExecution := false,
     // required by test-containers-scala
     Test / fork := true,


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to