summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-27 12:56:24 +0000
committerHubert Plociniczak <hubert.plociniczak@epfl.ch>2010-01-27 12:56:24 +0000
commitc01d2647666af410bc190b350617676344995c0b (patch)
tree31c3c50ebf499ecb444c45f901ff74eb94a52376
parente12005a1077d15a85cf544dc1f0a8cc229201cad (diff)
downloadscala-c01d2647666af410bc190b350617676344995c0b.tar.gz
scala-c01d2647666af410bc190b350617676344995c0b.tar.bz2
scala-c01d2647666af410bc190b350617676344995c0b.zip
Closes #2966. Review by milessabin.
-rw-r--r--src/compiler/scala/tools/nsc/interactive/BuildManager.scala3
-rw-r--r--src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala15
-rw-r--r--src/partest/scala/tools/partest/nest/Worker.scala3
3 files changed, 14 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/nsc/interactive/BuildManager.scala b/src/compiler/scala/tools/nsc/interactive/BuildManager.scala
index 57a91bf332..46930d398f 100644
--- a/src/compiler/scala/tools/nsc/interactive/BuildManager.scala
+++ b/src/compiler/scala/tools/nsc/interactive/BuildManager.scala
@@ -68,6 +68,7 @@ object BuildManagerTest extends EvalLoop {
}
val settings = new Settings(error)
+ settings.Ybuildmanagerdebug.value = true
val command = new CompilerCommand(args.toList, settings, error, false)
// settings.make.value = "off"
// val buildManager: BuildManager = new SimpleBuildManager(settings)
@@ -78,7 +79,7 @@ object BuildManagerTest extends EvalLoop {
// enter resident mode
loop { line =>
val args = line.split(' ').toList
- val command = new CompilerCommand(args, new Settings(error), error, true)
+ val command = new CompilerCommand(args, settings, error, true)
buildManager.update(command.files, Set.empty)
}
diff --git a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
index 5df264752e..e82375fe83 100644
--- a/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
+++ b/src/compiler/scala/tools/nsc/interactive/RefinedBuildManager.scala
@@ -119,7 +119,8 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
def update0(files: Set[AbstractFile]): Unit = if (!files.isEmpty) {
deleteClassfiles(files)
val run = compiler.newRun()
- compiler.inform("compiling " + toStringSet(files))
+ if (settings.Ybuildmanagerdebug.value)
+ compiler.inform("compiling " + toStringSet(files))
buildingFiles(files)
run.compileFiles(files.toList)
@@ -174,7 +175,8 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
}
}
}
- compiler.inform("Changes: " + changesOf)
+ if (settings.Ybuildmanagerdebug.value)
+ compiler.inform("Changes: " + changesOf)
updateDefinitions(files)
val invalid = invalidated(files, changesOf, additionalDefs)
update0(checkCycles(invalid, files, coll))
@@ -222,7 +224,8 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
compiler.dependencyAnalysis.dependencies.dependentFiles(1, files)
def invalidate(file: AbstractFile, reason: String, change: Change) = {
- compiler.inform("invalidate " + file + " because " + reason + " [" + change + "]")
+ if (settings.Ybuildmanagerdebug.value)
+ compiler.inform("invalidate " + file + " because " + reason + " [" + change + "]")
buf += file
directDeps -= file
for (syms <- definitions(file)) // fixes #2557
@@ -233,7 +236,8 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
for ((oldSym, changes) <- changesOf; change <- changes) {
def checkParents(cls: Symbol, file: AbstractFile) {
val parentChange = cls.info.parents.exists(_.typeSymbol.fullNameString == oldSym.fullNameString)
- // compiler.inform("checkParents " + cls + " oldSym: " + oldSym + " parentChange: " + parentChange + " " + cls.info.parents)
+ // if (settings.buildmanagerdebug.value)
+ // compiler.inform("checkParents " + cls + " oldSym: " + oldSym + " parentChange: " + parentChange + " " + cls.info.parents)
change match {
case Changed(Class(_)) if parentChange =>
invalidate(file, "parents have changed", change)
@@ -265,7 +269,8 @@ class RefinedBuildManager(val settings: Settings) extends Changes with BuildMana
}
def checkReferences(file: AbstractFile) {
- // compiler.inform(file + ":" + references(file))
+ //if (settings.buildmanagerdebug.value)
+ // compiler.inform(file + ":" + references(file))
val refs = references(file)
if (refs.isEmpty)
invalidate(file, "it is a direct dependency and we don't yet have finer-grained dependency information", change)
diff --git a/src/partest/scala/tools/partest/nest/Worker.scala b/src/partest/scala/tools/partest/nest/Worker.scala
index c27ec7b4ad..d671eea561 100644
--- a/src/partest/scala/tools/partest/nest/Worker.scala
+++ b/src/partest/scala/tools/partest/nest/Worker.scala
@@ -529,7 +529,7 @@ class Worker(val fileManager: FileManager) extends Actor {
if (!outDir.exists) outDir.mkdir()
val testFile = new File(file, fileBase + ".test")
val changesDir = new File(file, fileBase + ".changes")
- if (changesDir.exists && !changesDir.isDirectory) {
+ if ((changesDir.exists && !changesDir.isDirectory) || !testFile.exists || !testFile.isFile) {
// if changes exists then it has to be a dir
succeeded = false
(null, null, null, null)
@@ -557,6 +557,7 @@ class Worker(val fileManager: FileManager) extends Actor {
settings.outdir.value = outDir.getCanonicalFile.getAbsolutePath
settings.sourcepath.value = sourcepath
settings.classpath.value = fileManager.CLASSPATH
+ settings.Ybuildmanagerdebug.value = true
// simulate Build Manager loop
val prompt = "builder > "