diff options
author | Christopher Vogt <oss.nsp@cvogt.org> | 2016-03-30 23:39:14 -0400 |
---|---|---|
committer | Christopher Vogt <oss.nsp@cvogt.org> | 2016-03-30 23:39:14 -0400 |
commit | 57de43907e05d4cd3986e2994e0e3bff93e09b4e (patch) | |
tree | 9e07a28943ffe0d9c2ace7f06315d8034f1dd6f8 /stage1/resolver.scala | |
parent | 8a4578311e4d11c06bfb4fe04e5bf414b94d24e8 (diff) | |
download | cbt-57de43907e05d4cd3986e2994e0e3bff93e09b4e.tar.gz cbt-57de43907e05d4cd3986e2994e0e3bff93e09b4e.tar.bz2 cbt-57de43907e05d4cd3986e2994e0e3bff93e09b4e.zip |
Makes zinc usage smarter, so we do not need to call it when no files changed (and safe up to 0.1s for each call)
There still seem to be 2 bugs related to CBT development in the code. One if you simpy save a stage1 file unchanged and re-run cbt, it fails to call Stage2.run reflectively. Also in case of compile errors in stage1, a TrappedExitCode exception is thrown and not caught.
Diffstat (limited to 'stage1/resolver.scala')
-rw-r--r-- | stage1/resolver.scala | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/stage1/resolver.scala b/stage1/resolver.scala index b8e6544..1dd4d6c 100644 --- a/stage1/resolver.scala +++ b/stage1/resolver.scala @@ -28,7 +28,7 @@ abstract class Dependency{ implicit def logger: Logger protected def lib = new Stage1Lib(logger) - def updated: Boolean + def needsUpdate: Boolean //def cacheClassLoader: Boolean = false private[cbt] def targetClasspath: ClassPath def exportedClasspath: ClassPath @@ -174,7 +174,7 @@ abstract class Dependency{ def dependencyTree: String = dependencyTreeRecursion() private def dependencyTreeRecursion(indent: Int = 0): String = ( ( " " * indent ) - ++ (if(updated) lib.red(show) else show) + ++ (if(needsUpdate) lib.red(show) else show) ++ dependencies.map( "\n" ++ _.dependencyTreeRecursion(indent + 1) ).mkString @@ -187,7 +187,7 @@ class ScalaLibraryDependency (version: String)(implicit logger: Logger) extends class ScalaReflectDependency (version: String)(implicit logger: Logger) extends JavaDependency("org.scala-lang","scala-reflect",version) case class ScalaDependencies(version: String)(implicit val logger: Logger) extends Dependency{ sd => - final val updated = false + override final val needsUpdate = false override def canBeCached = true def targetClasspath = ClassPath(Seq()) def exportedClasspath = ClassPath(Seq()) @@ -200,23 +200,23 @@ case class ScalaDependencies(version: String)(implicit val logger: Logger) exten } case class BinaryDependency( path: File, dependencies: Seq[Dependency] )(implicit val logger: Logger) extends Dependency{ - def updated = false def exportedClasspath = ClassPath(Seq(path)) def exportedJars = Seq[File](path) + override def needsUpdate = false def targetClasspath = exportedClasspath } /** Allows to easily assemble a bunch of dependencies */ case class Dependencies( _dependencies: Dependency* )(implicit val logger: Logger) extends Dependency{ override def dependencies = _dependencies.to - def updated = dependencies.exists(_.updated) + def needsUpdate = dependencies.exists(_.needsUpdate) def exportedClasspath = ClassPath(Seq()) def exportedJars = Seq() def targetClasspath = ClassPath(Seq()) } case class Stage1Dependency()(implicit val logger: Logger) extends Dependency{ - def updated = false // FIXME: think this through, might allow simplifications and/or optimizations + def needsUpdate = false // FIXME: think this through, might allow simplifications and/or optimizations override def canBeCached = false /* private object classLoaderRecursionCache extends Cache[ClassLoader] @@ -245,7 +245,7 @@ case class CbtDependency()(implicit val logger: Logger) extends Dependency{ "org.scala-lang.modules","scala-xml","1.0.5", scalaVersion = constants.scalaMajorVersion ) ) - def updated = false // FIXME: think this through, might allow simplifications and/or optimizations + def needsUpdate = false // FIXME: think this through, might allow simplifications and/or optimizations def targetClasspath = exportedClasspath } @@ -260,7 +260,7 @@ case class JavaDependency( groupId: String, artifactId: String, version: String, classifier: Classifier = Classifier.none )(implicit val logger: Logger) extends ArtifactInfo{ - def updated = false + override def needsUpdate = false override def canBeCached = true private val groupPath = groupId.split("\\.").mkString("/") |