@@ -116,9 +116,6 @@ object Build {
116
116
// Run tests with filter through vulpix test suite
117
117
val testCompilation = inputKey[Unit ](" runs integration test with the supplied filter" )
118
118
119
- // Spawns a repl with the correct classpath
120
- val repl = inputKey[Unit ](" run the REPL with correct classpath" )
121
-
122
119
// Used to compile files similar to ./bin/scalac script
123
120
val scalac = inputKey[Unit ](" run the compiler using the correct classpath, or the user supplied classpath" )
124
121
@@ -171,7 +168,9 @@ object Build {
171
168
172
169
// enable verbose exception messages for JUnit
173
170
testOptions in Test += Tests .Argument (TestFrameworks .JUnit , " -a" , " -v" ),
174
- )
171
+ ) ++
172
+ // Spawns a repl with the correct classpath
173
+ addCommandAlias(" repl" , " scala3-compiler-bootstrapped/console" )
175
174
176
175
// Settings shared globally (scoped in Global). Used in build.sbt
177
176
lazy val globalSettings = Def .settings(
@@ -387,9 +386,6 @@ object Build {
387
386
388
387
// Settings shared between scala3-compiler and scala3-compiler-bootstrapped
389
388
lazy val commonDottyCompilerSettings = Seq (
390
- // set system in/out for repl
391
- connectInput in run := true ,
392
-
393
389
// Generate compiler.properties, used by sbt
394
390
resourceGenerators in Compile += Def .task {
395
391
import java .util ._
@@ -531,8 +527,46 @@ object Build {
531
527
},
532
528
533
529
run := scalac.evaluated,
534
- scalac := runCompilerMain().evaluated,
535
- repl := runCompilerMain(repl = true ).evaluated,
530
+ scalac := Def .inputTaskDyn {
531
+ val log = streams.value.log
532
+ val externalDeps = externalCompilerClasspathTask.value
533
+ val jars = packageAll.value
534
+ val scalaLib = findArtifactPath(externalDeps, " scala-library" )
535
+ val dottyLib = jars(" scala3-library" )
536
+ val dottyCompiler = jars(" scala3-compiler" )
537
+ val args0 : List [String ] = spaceDelimited(" <arg>" ).parsed.toList
538
+ val decompile = args0.contains(" -decompile" )
539
+ val printTasty = args0.contains(" -print-tasty" )
540
+ val debugFromTasty = args0.contains(" -Ythrough-tasty" )
541
+ val args = args0.filter(arg => arg != " -repl" && arg != " -decompile" &&
542
+ arg != " -with-compiler" && arg != " -Ythrough-tasty" )
543
+
544
+ val main =
545
+ if (decompile || printTasty) " dotty.tools.dotc.decompiler.Main"
546
+ else if (debugFromTasty) " dotty.tools.dotc.fromtasty.Debug"
547
+ else " dotty.tools.dotc.Main"
548
+
549
+ var extraClasspath = Seq (scalaLib, dottyLib)
550
+
551
+ if ((decompile || printTasty) && ! args.contains(" -classpath" ))
552
+ extraClasspath ++= Seq (" ." )
553
+
554
+ if (args0.contains(" -with-compiler" )) {
555
+ if (scalaVersion.value == referenceVersion) {
556
+ log.error(" -with-compiler should only be used with a bootstrapped compiler" )
557
+ }
558
+ val dottyInterfaces = jars(" scala3-interfaces" )
559
+ val dottyStaging = jars(" scala3-staging" )
560
+ val dottyTastyInspector = jars(" scala3-tasty-inspector" )
561
+ val tastyCore = jars(" tasty-core" )
562
+ val asm = findArtifactPath(externalDeps, " scala-asm" )
563
+ extraClasspath ++= Seq (dottyCompiler, dottyInterfaces, asm, dottyStaging, dottyTastyInspector, tastyCore)
564
+ }
565
+
566
+ val fullArgs = main :: insertClasspathInArgs(args, extraClasspath.mkString(File .pathSeparator))
567
+
568
+ (runMain in Compile ).toTask(fullArgs.mkString(" " , " " , " " ))
569
+ }.evaluated,
536
570
537
571
/* Add the sources of scalajs-ir.
538
572
* To guarantee that dotty can bootstrap without depending on a version
@@ -569,48 +603,6 @@ object Build {
569
603
}.taskValue,
570
604
)
571
605
572
- def runCompilerMain (repl : Boolean = false ) = Def .inputTaskDyn {
573
- val log = streams.value.log
574
- val externalDeps = externalCompilerClasspathTask.value
575
- val jars = packageAll.value
576
- val scalaLib = findArtifactPath(externalDeps, " scala-library" )
577
- val dottyLib = jars(" scala3-library" )
578
- val dottyCompiler = jars(" scala3-compiler" )
579
- val args0 : List [String ] = spaceDelimited(" <arg>" ).parsed.toList
580
- val decompile = args0.contains(" -decompile" )
581
- val printTasty = args0.contains(" -print-tasty" )
582
- val debugFromTasty = args0.contains(" -Ythrough-tasty" )
583
- val args = args0.filter(arg => arg != " -repl" && arg != " -decompile" &&
584
- arg != " -with-compiler" && arg != " -Ythrough-tasty" )
585
-
586
- val main =
587
- if (repl) " dotty.tools.repl.Main"
588
- else if (decompile || printTasty) " dotty.tools.dotc.decompiler.Main"
589
- else if (debugFromTasty) " dotty.tools.dotc.fromtasty.Debug"
590
- else " dotty.tools.dotc.Main"
591
-
592
- var extraClasspath = Seq (scalaLib, dottyLib)
593
-
594
- if ((decompile || printTasty) && ! args.contains(" -classpath" ))
595
- extraClasspath ++= Seq (" ." )
596
-
597
- if (args0.contains(" -with-compiler" )) {
598
- if (scalaVersion.value == referenceVersion) {
599
- log.error(" -with-compiler should only be used with a bootstrapped compiler" )
600
- }
601
- val dottyInterfaces = jars(" scala3-interfaces" )
602
- val dottyStaging = jars(" scala3-staging" )
603
- val dottyTastyInspector = jars(" scala3-tasty-inspector" )
604
- val tastyCore = jars(" tasty-core" )
605
- val asm = findArtifactPath(externalDeps, " scala-asm" )
606
- extraClasspath ++= Seq (dottyCompiler, dottyInterfaces, asm, dottyStaging, dottyTastyInspector, tastyCore)
607
- }
608
-
609
- val fullArgs = main :: insertClasspathInArgs(args, extraClasspath.mkString(File .pathSeparator))
610
-
611
- (runMain in Compile ).toTask(fullArgs.mkString(" " , " " , " " ))
612
- }
613
-
614
606
def insertClasspathInArgs (args : List [String ], cp : String ): List [String ] = {
615
607
val (beforeCp, fromCp) = args.span(_ != " -classpath" )
616
608
val classpath = fromCp.drop(1 ).headOption.fold(cp)(_ + File .pathSeparator + cp)
0 commit comments