)]}'
{
  "commit": "4752dbb9a1b808b8989622ed1eb2c2d5b24779f4",
  "tree": "46119aba6c84b4534e923fcb197abbef63b2942a",
  "parents": [
    "d34488544835edce8fa15abd07e00be472b959b9"
  ],
  "author": {
    "name": "Mark Schaller",
    "email": "mschaller@google.com",
    "time": "Thu Aug 20 18:57:44 2015 +0000"
  },
  "committer": {
    "name": "Dmitry Lomov",
    "email": "dslomov@google.com",
    "time": "Fri Aug 21 09:43:26 2015 +0000"
  },
  "message": "Convert evaluated tracking to take a lazy SkyValue\n\nThe EvaluationProgressReceiver#evaluated method took a SkyValue,\nbut that parameter was only used by some of its implementations,\nand only under some conditions.\n\nOutside of tests, the main users are SkyframeBuildView\u0027s\nConfiguredTargetValueInvalidationReceiver and SkyframeBuilder\u0027s\nExecutionProgressReceiver.\n\nThe former builds up a set of built ConfiguredTarget keys when the\nSkyValue is non-null and the EvaluationState is BUILT, and so its\nnullity check can live behind those two conditions.\n\nThe latter cares about builting up a set of ConfiguredTargets, and\nraising events on the eventBus when a TARGET_COMPLETION or\nASPECT_COMPLETION value is evaluated and is non-null. The extraction\nof these values can live behind the conditions that check the type of\nthe SkyKey.\n\nBy making the SkyValue parameter lazy, this change enforces that it\u0027s\nonly accessed under these conditions.\n\nThis CL introduces a semantic change that should be small in effect.\nThe SkyframeBuildView keeps track of a set, dirtiedConfiguredTargetKeys,\nand ConfiguredTarget keys evaluated as CLEAN were removed from it if\nthey had a non-null value. With this change, ConfiguredTarget keys\nevaluated as CLEAN get removed regardless of whether their values are\nnull or non-null. The set is used to determine whether artifact conflict\nsearch has to be rerun, and the extra removals that result from this CL\ncould cause fewer artifact conflict searches to run, but the only\naffected searches would be those that were caused by dirtied configured\ntarget values in error all of which were subsequently marked as clean,\nwhich is probably rare.\n\n--\nMOS_MIGRATED_REVID\u003d101144655\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd7202638daf8b5bac474d1092aa758f76779ef8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java",
      "new_id": "0ab5e8059cec5d15950f176971fb6950ac455fc5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/buildtool/SkyframeBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "eed73aef662e1eb1fa12bf7130905b842194c4c5",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java",
      "new_id": "8f1754d933292feb43daa94bb496f26672ea32f0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java"
    },
    {
      "type": "modify",
      "old_id": "cbcc676aa4a9fe357e7d2a0bc02c100721180d79",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java",
      "new_id": "e188bf3b7cd46336a401d4cd440f7c17c4400bd1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java"
    },
    {
      "type": "modify",
      "old_id": "62dcf1e686d333cd8df5621163018ef85a105e4f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java",
      "new_id": "cddfc0cd14e4c7d3c853a2e9984010e27c615502",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/skyframe/EvaluationProgressReceiver.java"
    },
    {
      "type": "modify",
      "old_id": "09296b5ca7988822e06362a316031297ed8436bb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java",
      "new_id": "f56dc563317b608b25e09da12357e3ff875a803e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/skyframe/ParallelEvaluator.java"
    },
    {
      "type": "modify",
      "old_id": "9c2f7991b92d6d3382a501fc2461f68fe395018b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java",
      "new_id": "8a46276d7722370f0bb8d5183f8bd1b534ef3820",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/skyframe/EagerInvalidatorTest.java"
    },
    {
      "type": "modify",
      "old_id": "d414feaff008def1ec898b7fef5350e123ef3a6a",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java",
      "new_id": "5d90a50e61025cf22ad9ae34c51d9182aee5cd00",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/skyframe/ParallelEvaluatorTest.java"
    },
    {
      "type": "modify",
      "old_id": "a9a7af343174b40ec20edbcc3be3b74bda4d3a49",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/skyframe/TrackingInvalidationReceiver.java",
      "new_id": "090f04a8509747c663b8cae7715260316c62cce3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/skyframe/TrackingInvalidationReceiver.java"
    }
  ]
}
