Scala 3.8.1

This commit is contained in:
Eugene Yokota 2026-01-23 00:37:37 -05:00
parent d9bf396bf7
commit 19ca2911d2
29 changed files with 46 additions and 39 deletions

View File

@ -6,6 +6,7 @@ import dotty.tools.dotc.ast.tpd
import dotty.tools.dotc.CompilationUnit
import dotty.tools.dotc.core.Contexts.{ atPhase, Context }
import dotty.tools.dotc.core.{ Flags, NameKinds, Names, Phases, Symbols, Types }
import dotty.tools.dotc.core.Periods.Period
import dotty.tools.dotc.Driver
import dotty.tools.dotc.Run
import dotty.tools.dotc.util.SourceFile
@ -70,6 +71,7 @@ class Eval(
case Some((_, ctx)) => ctx
case _ => sys.error(s"initialization failed for $options")
val compileCtx2 = compileCtx1.fresh
.setPeriod(Period(2, 1)) // RunId 2 is the actually the first one in the compiler
.setSetting(
compileCtx1.settings.outputDir,
outputDir
@ -194,7 +196,12 @@ class Eval(
override def extraHash: String = extraHash0
val inter = evalCommon[Seq[String]](definitions.map(_._1), imports, tpeName = Some(""), ev)
EvalDefinitions(inter.loader, inter.generated, inter.enclosingModule, inter.extra.reverse)
EvalDefinitions(
inter.loader,
inter.generated,
inter.enclosingModule,
inter.extra.reverse.distinct
)
end evalDefinitions

View File

@ -28,7 +28,7 @@ Create an initial build in `something`. Like a real build using sbt. I'm sure yo
```scala
name := "foo"
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"
```
I also have `Hello.scala`:
@ -107,7 +107,7 @@ import scala.sys.process.Process
lazy val check = taskKey[Unit]("check")
name := "foo"
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"
check := {
val pkg = (Compile / packageBin).value
val conv = fileConverter.value

View File

@ -22,7 +22,7 @@ $ sbt --server
### Clearing out boot and local cache
sbt consists of lots of JAR files. When running sbt locally, these JAR artifacts are cached in the `boot` directory under `$HOME/.sbt/boot/scala-3.7.4/org.scala-sbt/sbt/2.0.0-RC8-bin-SNAPSHOT` directory.
sbt consists of lots of JAR files. When running sbt locally, these JAR artifacts are cached in the `boot` directory under `$HOME/.sbt/boot/scala-3.8.1/org.scala-sbt/sbt/2.0.0-RC8-bin-SNAPSHOT` directory (The Scala version and sbt version part changes).
In order to see a change you've made to sbt's source code, this cache MUST be cleared. To clear this out, from the sbt shell in your application run:

View File

@ -3,7 +3,7 @@ lazy val check2 = taskKey[Unit]("")
lazy val root = (project in file("."))
.settings(
scalaVersion := "3.7.3",
scalaVersion := "3.8.1",
name := "Hello",
libraryDependencies += "com.eed3si9n.verify" %% "verify" % "1.0.0" % Test,
testFrameworks += new TestFramework("verify.runner.Framework"),

View File

@ -38,7 +38,7 @@ class LockFileSpec extends AnyFunSuite {
),
metadata = LockFileMetadata(
sbtVersion = "2.0.0",
scalaVersion = Some("3.7.4")
scalaVersion = Some("3.8.1")
)
)
@ -59,7 +59,7 @@ class LockFileSpec extends AnyFunSuite {
assert(readData.configurations.head.dependencies.head.organization == "org.scala-lang")
assert(readData.configurations.head.dependencies.head.version == "2.13.16")
assert(readData.metadata.sbtVersion == "2.0.0")
assert(readData.metadata.scalaVersion == Some("3.7.4"))
assert(readData.metadata.scalaVersion == Some("3.8.1"))
}
}

View File

@ -102,7 +102,7 @@ private[sbt] object PluginCross {
case VersionNumber(Seq(0, 12, _*), _, _) => "2.9.2"
case VersionNumber(Seq(0, 13, _*), _, _) => "2.10.7"
case VersionNumber(Seq(1, 0, _*), _, _) => "2.12.21"
case VersionNumber(Seq(2, _*), _, _) => "3.7.4"
case VersionNumber(Seq(2, _*), _, _) => "3.8.1"
case _ => sys.error(s"Unsupported sbt binary version: $sv")
}
}

View File

@ -4,7 +4,7 @@ import Keys.*
object Dependencies {
// WARNING: Please Scala update versions in PluginCross.scala too
val scala213 = "2.13.16"
val scala3 = "3.8.0"
val scala3 = "3.8.1"
val scala212 = "2.12.21"
val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up")
val baseScalaVersion = scala3
@ -12,8 +12,8 @@ object Dependencies {
sys.env.get("BUILD_VERSION") orElse sys.props.get("sbt.build.version")
// sbt modules
val ioVersion = nightlyVersion.getOrElse("2.0.0-M1")
val zincVersion = nightlyVersion.getOrElse("2.0.0-M12")
val ioVersion = nightlyVersion.getOrElse("1.10.5")
val zincVersion = nightlyVersion.getOrElse("2.0.0-M13")
private val sbtIO = "org.scala-sbt" %% "io" % ioVersion

View File

@ -5,7 +5,7 @@ lazy val checkMiss = inputKey[Unit]("")
Global / localCacheDirectory := baseDirectory.value / "diskcache"
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
checkMiss := {
val expected: Int = (Space ~> NatBasic).parsed
val s = streams.value

View File

@ -5,7 +5,7 @@ lazy val verify = "com.eed3si9n.verify" %% "verify" % "1.0.0"
Global / localCacheDirectory := baseDirectory.value / "diskcache"
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
libraryDependencies += verify % Test
testFrameworks += new TestFramework("verify.runner.Framework")

View File

@ -2,7 +2,7 @@ import java.nio.file.Files
name := "clean-symlinks-test"
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
TaskKey[Unit]("createSymlinkedDirectory") := {
IO.createDirectory(target.value)

View File

@ -1,9 +1,9 @@
> createSymlinkedDirectory
$ exists target/out/jvm/scala-3.7.3/clean-symlinks-test/foo/bar
$ exists target/out/jvm/scala-3.8.1/clean-symlinks-test/foo/bar
$ exists foo/bar
> clean
$ absent target/out/jvm/scala-3.7.3/clean-symlinks-test/foo
$ absent target/out/jvm/scala-3.8.1/clean-symlinks-test/foo
$ exists foo/bar

View File

@ -1,4 +1,4 @@
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"
organization := "com.example"

View File

@ -1 +1 @@
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"

View File

@ -1,2 +1,2 @@
// addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1")
libraryDependencies += Defaults.sbtPluginExtra("com.github.sbt" % "sbt-pgp" % "2.3.1", "2", "3.7.3")
libraryDependencies += Defaults.sbtPluginExtra("com.github.sbt" % "sbt-pgp" % "2.3.1", "2", "3.8.1")

View File

@ -19,4 +19,4 @@ lazy val plugin = (projectMatrix in file("plugin"))
case _ => "2.0.0-RC3"
},
)
.jvmPlatform(scalaVersions = Seq("3.7.3", "2.12.21"))
.jvmPlatform(scalaVersions = Seq("3.8.1", "2.12.21"))

View File

@ -1,4 +1,4 @@
ThisBuild / scalaVersion := "3.7.4"
ThisBuild / scalaVersion := "3.8.1"
name := "hello"
enablePlugins(JavaAppPackaging)
@ -6,7 +6,7 @@ enablePlugins(JavaAppPackaging)
lazy val check = taskKey[Unit]("")
check := {
val cmd = "target/out/jvm/scala-3.7.4/hello/universal/stage/bin/hello"
val cmd = "target/out/jvm/scala-3.8.1/hello/universal/stage/bin/hello"
val cmd0 =
if (sys.props("os.name").toLowerCase(java.util.Locale.ROOT).contains("windows"))
cmd + ".bat"

View File

@ -1,4 +1,4 @@
ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always
// addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.3.20")
libraryDependencies += Defaults.sbtPluginExtra("com.github.sbt" % "sbt-native-packager" % "1.11.4", "2", "3.7.3")
libraryDependencies += Defaults.sbtPluginExtra("com.github.sbt" % "sbt-native-packager" % "1.11.4", "2", "3.8.1")

View File

@ -1,4 +1,4 @@
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"
@deprecated
def foo = true

View File

@ -1,4 +1,4 @@
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"
@deprecated
def foo = true

View File

@ -1,5 +1,5 @@
lazy val scala3_LTS = "3.3.5"
lazy val scala3_current = "3.7.4"
lazy val scala3_current = "3.8.1"
lazy val check = taskKey[Unit]("")
organization := "com.example"

View File

@ -1,4 +1,4 @@
> packageBin
$ exists target/**/app_3.3.5-0.1.0-SNAPSHOT.jar
$ exists target/**/app_3.7.4-0.1.0-SNAPSHOT.jar
$ exists target/**/app_3.8.1-0.1.0-SNAPSHOT.jar
> core3_7_4/check

View File

@ -1,6 +1,6 @@
lazy val a1 = settingKey[Boolean]("")
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
a1 := true
Compile / sourceGenerators += {

View File

@ -1 +1 @@
scalaVersion := "3.7.4"
scalaVersion := "3.8.1"

View File

@ -11,7 +11,7 @@ lazy val intsSetting2 = Def.setting {
Seq(1, 2, 3)
}
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
intsTask := Seq(1, 2, 3, 4, 5, 6, 7)
intsTask -= 3
@ -30,10 +30,10 @@ intsSetting -= intSetting2.value
intsSetting --= intsSetting2.value
intsFromScalaV := Seq(1, 2, 3, 4, 5, 6, 7)
intsFromScalaV -= { if scalaVersion.value == "3.7.3" then 3 else 5 }
intsFromScalaV --= { if scalaVersion.value == "3.7.3" then Seq(1, 2) else Seq(4) }
intsFromScalaV -= { if scalaVersion.value == "3.7.3" then Option(6) else None }
intsFromScalaV --= { if scalaVersion.value == "3.7.3" then Option(7) else None }
intsFromScalaV -= { if scalaVersion.value == "3.8.1" then 3 else 5 }
intsFromScalaV --= { if scalaVersion.value == "3.8.1" then Seq(1, 2) else Seq(4) }
intsFromScalaV -= { if scalaVersion.value == "3.8.1" then Option(6) else None }
intsFromScalaV --= { if scalaVersion.value == "3.8.1" then Option(7) else None }
intsSetSetting := Set(1, 2, 3, 4, 5, 6, 7)
intsSetSetting -= 3

View File

@ -1,6 +1,6 @@
val scalatest = "org.scalatest" %% "scalatest" % "3.2.19"
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
Test / fork := true
libraryDependencies += scalatest % Test

View File

@ -1,5 +1,5 @@
val scalatest = "org.scalatest" %% "scalatest" % "3.2.19"
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
fork := true
libraryDependencies += scalatest % Test

View File

@ -1,3 +1,3 @@
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
libraryDependencies += "com.eed3si9n.verify" %% "verify" % "1.0.0" % Test
testFrameworks += new TestFramework("verify.runner.Framework")

View File

@ -6,7 +6,7 @@ val marker = new File("marker")
val check = TaskKey[Unit]("check", "Check correct error has been returned.")
val scalatest = "org.scalatest" %% "scalatest" % "3.2.19"
ThisBuild / scalaVersion := "3.7.3"
ThisBuild / scalaVersion := "3.8.1"
lazy val root = (project in file(".")).
settings(

View File

@ -1,4 +1,4 @@
scalaVersion := "3.7.3"
scalaVersion := "3.8.1"
TaskKey[Unit]("willSucceed") := println("success")