@@ -93,16 +93,28 @@ object ReplArtifacts {
9393 addScalapy : Option [String ],
9494 javaVersion : Int
9595 ): Either [BuildException , ReplArtifacts ] = either {
96- val isScala2 = scalaParams.scalaVersion.startsWith(" 2." )
97- val replDep =
98- if isScala2 then dep " org.scala-lang:scala-compiler: ${scalaParams.scalaVersion}"
99- else dep " org.scala-lang::scala3-compiler: ${scalaParams.scalaVersion}"
96+ val isScala2 = scalaParams.scalaVersion.startsWith(" 2." )
97+ val firstNewReplNightly = " 3.8.0-RC1-bin-20251101-389483e-NIGHTLY" .coursierVersion
98+ val firstNewReplRc = " 3.8.0-RC1" .coursierVersion
99+ val firstNewReplStable = " 3.8.0" .coursierVersion
100+ val scalaCoursierVersion = scalaParams.scalaVersion.coursierVersion
101+ val shouldUseNewRepl =
102+ ! isScala2 &&
103+ ((scalaCoursierVersion >= firstNewReplNightly) || (scalaCoursierVersion >= firstNewReplRc) || scalaCoursierVersion >= firstNewReplStable)
104+ val replDeps =
105+ if isScala2 then Seq (dep " org.scala-lang:scala-compiler: ${scalaParams.scalaVersion}" )
106+ else if shouldUseNewRepl then
107+ Seq (
108+ dep " org.scala-lang::scala3-compiler: ${scalaParams.scalaVersion}" ,
109+ dep " org.scala-lang::scala3-repl: ${scalaParams.scalaVersion}"
110+ )
111+ else Seq (dep " org.scala-lang::scala3-compiler: ${scalaParams.scalaVersion}" )
100112 val scalapyDeps =
101113 addScalapy.map(ver => dep " ${Artifacts .scalaPyOrganization(ver)}::scalapy-core:: $ver" ).toSeq
102114 val externalDeps = dependencies ++ scalapyDeps
103115 val replArtifacts : Seq [(String , os.Path )] = value {
104116 Artifacts .artifacts(
105- Seq (replDep) .map(Positioned .none),
117+ replDeps .map(Positioned .none),
106118 repositories,
107119 Some (scalaParams),
108120 logger,
0 commit comments