Skip to content

Commit

Permalink
tweak
Browse files Browse the repository at this point in the history
  • Loading branch information
lihaoyi committed Feb 11, 2025
1 parent 9e23b44 commit d650160
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 22 deletions.
5 changes: 3 additions & 2 deletions core/src/mill/eval/Evaluator.scala
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,8 @@ final case class Evaluator private[mill] (

val selectedTargetsOrErr =
if (selectiveExecutionEnabled && os.exists(outPath / OutFiles.millSelectiveExecution)) {
val changedTasks = SelectiveExecution.computeChangedTasks0(this, targets.toSeq)
val changedTasks = SelectiveExecution.computeChangedTasks0(this, targets)

val selectedSet = changedTasks.downstreamTasks.map(_.ctx.segments.render).toSet
(
targets.filter(t => t.isExclusiveCommand || selectedSet(t.ctx.segments.render)),
Expand Down Expand Up @@ -169,7 +170,7 @@ final case class Evaluator private[mill] (
val allInputHashes = evaluated.results
.iterator
.collect {
case (t: InputImpl[_], TaskResult(Result.Success(Val(value)), _)) =>
case (t: InputImpl[_], TaskResult(ExecResult.Success(Val(value)), _)) =>
(t.ctx.segments.render, value.##)
}
.toMap
Expand Down
20 changes: 9 additions & 11 deletions core/src/mill/eval/SelectiveExecution.scala
Original file line number Diff line number Diff line change
Expand Up @@ -33,17 +33,15 @@ private[mill] object SelectiveExecution {

val results = evaluator.evaluate(Seq.from(inputTasksToLabels.keys))

new Metadata(
inputHashes = results
.results
.flatMap { case (task, taskResult) =>
inputTasksToLabels.get(task).map { l =>
l -> taskResult.result.get.value.hashCode
}
val inputHashes = results
.results
.flatMap { case (task, taskResult) =>
inputTasksToLabels.get(task).map { l =>
l -> taskResult.result.get.value.hashCode
}
.toMap,
methodCodeHashSignatures = evaluator.methodCodeHashSignatures
) -> results.results.toMap
}

new Metadata(inputHashes, evaluator.methodCodeHashSignatures) -> results.results
}
}

Expand Down Expand Up @@ -135,12 +133,12 @@ private[mill] object SelectiveExecution {

def computeChangedTasks0(evaluator: Evaluator, tasks: Seq[NamedTask[?]]): ChangedTasks = {
val oldMetadataTxt = os.read(evaluator.outPath / OutFiles.millSelectiveExecution)

if (oldMetadataTxt == "") ChangedTasks(tasks, tasks.toSet, tasks, Map.empty)
else {
val transitiveNamed = Plan.transitiveNamed(tasks)
val oldMetadata = upickle.default.read[SelectiveExecution.Metadata](oldMetadataTxt)
val (newMetadata, results) = SelectiveExecution.Metadata.compute0(evaluator, transitiveNamed)

val (changedRootTasks, downstreamTasks) =
SelectiveExecution.computeDownstream(transitiveNamed, oldMetadata, newMetadata)

Expand Down
11 changes: 2 additions & 9 deletions main/src/mill/main/MainModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,6 @@ trait MainModule extends BaseModule {
def pprintTask(t: NamedTask[?], evaluator: Evaluator): Tree.Lazy = {
val seen = mutable.Set.empty[Task[?]]

DebugLog.println(t.toString)
DebugLog.println(t.ctx.segments.toString)
def rec(t: Task[?]): Seq[Segments] = {
if (seen(t)) Nil // do nothing
else t match {
Expand Down Expand Up @@ -437,15 +435,10 @@ trait MainModule extends BaseModule {
*/
def show(evaluator: Evaluator, targets: String*): Command[ujson.Value] =
Task.Command(exclusive = true) {
mill.client.DebugLog.println("show")
MainModule.show0(evaluator, targets, Target.log, interp.evalWatch0) { res =>
res.flatMap(_._2) match {
case Seq((k, singleValue)) =>
mill.client.DebugLog.println("show singleValue " + singleValue)
singleValue
case multiple =>
mill.client.DebugLog.println("show multiple " + multiple)
ujson.Obj.from(multiple)
case Seq((k, singleValue)) => singleValue
case multiple => ujson.Obj.from(multiple)
}
}
}
Expand Down

0 comments on commit d650160

Please sign in to comment.