summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-04-07 19:59:00 -0700
committerLi Haoyi <haoyi.sg@gmail.com>2018-04-07 19:59:00 -0700
commitd593d9eda38f371b642d5ca4d882c87833e91b47 (patch)
tree44ca6b741d1cb2b5d3525e898be121d5e3c52311
parentb5350ae72c33d937aaa1953e2dfba3c0d6a88168 (diff)
parent36eb8bd6bfd534d002b01f8800e4b5d896aa4e77 (diff)
downloadmill-d593d9eda38f371b642d5ca4d882c87833e91b47.tar.gz
mill-d593d9eda38f371b642d5ca4d882c87833e91b47.tar.bz2
mill-d593d9eda38f371b642d5ca4d882c87833e91b47.zip
Merge commit '36eb8bd6bfd534d002b01f8800e4b5d896aa4e77' into client-java
-rwxr-xr-xbuild.sc2
-rw-r--r--core/src/mill/eval/Evaluator.scala6
-rw-r--r--main/src/mill/main/MainModule.scala6
-rw-r--r--main/test/src/mill/eval/EvaluationTests.scala26
-rw-r--r--main/test/src/mill/util/TestGraphs.scala17
5 files changed, 52 insertions, 5 deletions
diff --git a/build.sc b/build.sc
index 62c16479..a86d7d75 100755
--- a/build.sc
+++ b/build.sc
@@ -79,7 +79,7 @@ object core extends MillModule {
def ivyDeps = Agg(
ivy"com.lihaoyi::sourcecode:0.1.4",
- ivy"com.lihaoyi:::ammonite:1.1.0-12-f07633d",
+ ivy"com.lihaoyi:::ammonite:1.1.0-14-037b8eb",
)
def generatedSources = T {
diff --git a/core/src/mill/eval/Evaluator.scala b/core/src/mill/eval/Evaluator.scala
index f423092b..a1bbf142 100644
--- a/core/src/mill/eval/Evaluator.scala
+++ b/core/src/mill/eval/Evaluator.scala
@@ -171,10 +171,10 @@ case class Evaluator[T](home: Path,
newResults(labelledNamedTask.task) match{
case Result.Failure(_, Some((v, hashCode))) =>
- handleTaskResult(v, v.hashCode, paths.meta, inputsHash, labelledNamedTask)
+ handleTaskResult(v, v.##, paths.meta, inputsHash, labelledNamedTask)
case Result.Success((v, hashCode)) =>
- handleTaskResult(v, v.hashCode, paths.meta, inputsHash, labelledNamedTask)
+ handleTaskResult(v, v.##, paths.meta, inputsHash, labelledNamedTask)
case _ =>
// Wipe out any cached meta.json file that exists, so
@@ -301,7 +301,7 @@ case class Evaluator[T](home: Path,
newResults(task) = for(v <- res) yield {
(v,
if (task.isInstanceOf[Worker[_]]) inputsHash
- else v.hashCode
+ else v.##
)
}
}
diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala
index 7c84f74a..32281407 100644
--- a/main/src/mill/main/MainModule.scala
+++ b/main/src/mill/main/MainModule.scala
@@ -30,7 +30,11 @@ trait MainModule extends mill.Module{
implicit def millDiscover: mill.define.Discover[_]
implicit def millScoptTasksReads[T] = new mill.main.Tasks.Scopt[T]()
implicit def millScoptEvaluatorReads[T] = new mill.main.EvaluatorScopt[T]()
-
+ def version() = mill.T.command {
+ val res = System.getProperty("MILL_VERSION")
+ println(res)
+ res
+ }
/**
* Resolves a mill query string and prints out the tasks it resolves to.
*/
diff --git a/main/test/src/mill/eval/EvaluationTests.scala b/main/test/src/mill/eval/EvaluationTests.scala
index 66147963..9c215086 100644
--- a/main/test/src/mill/eval/EvaluationTests.scala
+++ b/main/test/src/mill/eval/EvaluationTests.scala
@@ -247,6 +247,32 @@ object EvaluationTests extends TestSuite{
!overriden.contains("object1")
)
}
+ 'nullTasks - {
+ import nullTasks._
+ val checker = new Checker(nullTasks)
+ checker(nullTarget1, null, Agg(nullTarget1), extraEvaled = -1)
+ checker(nullTarget1, null, Agg(), extraEvaled = -1)
+ checker(nullTarget2, null, Agg(nullTarget2), extraEvaled = -1)
+ checker(nullTarget2, null, Agg(), extraEvaled = -1)
+ checker(nullTarget3, null, Agg(nullTarget3), extraEvaled = -1)
+ checker(nullTarget3, null, Agg(), extraEvaled = -1)
+ checker(nullTarget4, null, Agg(nullTarget4), extraEvaled = -1)
+ checker(nullTarget4, null, Agg(), extraEvaled = -1)
+
+ val nc1 = nullCommand1()
+ val nc2 = nullCommand2()
+ val nc3 = nullCommand3()
+ val nc4 = nullCommand4()
+
+ checker(nc1, null, Agg(nc1), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc1, null, Agg(nc1), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc2, null, Agg(nc2), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc2, null, Agg(nc2), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc3, null, Agg(nc3), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc3, null, Agg(nc3), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc4, null, Agg(nc4), extraEvaled = -1, secondRunNoOp = false)
+ checker(nc4, null, Agg(nc4), extraEvaled = -1, secondRunNoOp = false)
+ }
'tasksAreUncached - {
// Make sure the tasks `left` and `middle` re-compute every time, while
diff --git a/main/test/src/mill/util/TestGraphs.scala b/main/test/src/mill/util/TestGraphs.scala
index 11f72d02..83e03576 100644
--- a/main/test/src/mill/util/TestGraphs.scala
+++ b/main/test/src/mill/util/TestGraphs.scala
@@ -196,6 +196,23 @@ object TestGraphs{
override lazy val millDiscover: Discover[this.type] = Discover[this.type]
}
+ object nullTasks extends TestUtil.BaseModule{
+ val nullString: String = null
+ def nullTask1 = T.task{ nullString }
+ def nullTask2 = T.task{ nullTask1() }
+
+ def nullTarget1 = T{ nullString }
+ def nullTarget2 = T{ nullTarget1() }
+ def nullTarget3 = T{ nullTask1() }
+ def nullTarget4 = T{ nullTask2() }
+
+ def nullCommand1() = T.command{ nullString }
+ def nullCommand2() = T.command{ nullTarget1() }
+ def nullCommand3() = T.command{ nullTask1() }
+ def nullCommand4() = T.command{ nullTask2() }
+
+ override lazy val millDiscover: Discover[this.type] = Discover[this.type]
+ }
object singleCross extends TestUtil.BaseModule {
object cross extends mill.Cross[Cross]("210", "211", "212")