)]}'
{
  "commit": "794ead98f17d85ae79784c975308670eef1cc641",
  "tree": "55635d38afe5b5db8b1050386961ab6ed81b1cbb",
  "parents": [
    "be01729aa4dc86715b5a6f48127492a6029d09b5"
  ],
  "author": {
    "name": "Googler",
    "email": "shahan@google.com",
    "time": "Tue Feb 13 07:11:01 2024 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Feb 13 07:12:25 2024 -0800"
  },
  "message": "Delete deserializeFully and add custom DeferredValue for DeferredObjectCodec.\n\n* During implementation, it became clear that deserializeFully would add a lot\n  of avoidable complexity. Instead, the semantics are now that deserialize is\n  always deserializeFully except in the case of cycles, where deserialization\n  must be partial anyway.\n\n* The new custom DeferredValue type instead of a Supplier achieves two things.\n  1. Serialization code can treat DeferredValue as a special sentinel type\n     that we know doesn\u0027t occur in serialized objects.\n  2. DeferredValue extends Callable, so it can be directly added to Futures\n     callbacks, saving extra allocations.\n\nPiperOrigin-RevId: 606611049\nChange-Id: I0c91630b27528caad8e5ccfaba31f2399310d4eb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c48d2eb4ac69b8674ff988ac95af0ca775b57e9d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactCodecs.java",
      "new_id": "76394ac0e5c6ecf36445c5e8d5c4be45a40472bd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/actions/ArtifactCodecs.java"
    },
    {
      "type": "modify",
      "old_id": "c20a4a89b5938be4ddd9b131ee5e74882a24a159",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/cmdline/LabelCodec.java",
      "new_id": "5b73616b150819015ba0c0fdbbf8d0d44ef1cdad",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/cmdline/LabelCodec.java"
    },
    {
      "type": "modify",
      "old_id": "c4b7acfe72a59e94d386a25268fe6c458cfffabb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/Aspect.java",
      "new_id": "59d0848f2a8cc5046243fd9a19ca3946a4a8b36f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/Aspect.java"
    },
    {
      "type": "modify",
      "old_id": "a4c96f4f07322eb156302214a9f5e5eae81064aa",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/packages/RuleDataCodec.java",
      "new_id": "88715d70ff50500d7892ce2792b3450799e4fca0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/packages/RuleDataCodec.java"
    },
    {
      "type": "modify",
      "old_id": "3f6cf2a9a6fa0ea4f72bebd3ede89d50431ad463",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java",
      "new_id": "da4a3516fa71d4ff859a70f5025669258b4d15de",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetKey.java"
    },
    {
      "type": "modify",
      "old_id": "5caad2020673ee60733f4e6d17fec46e0c27b13d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ArrayProcessor.java",
      "new_id": "4973233053b46199b805b0cf568b73c2ea48d4a1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ArrayProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "052c013cff0ee1a86913450c08917edaa4e5624c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/AsyncDeserializationContext.java",
      "new_id": "6f1b1100da2ebb3aa9ccbb1ace76f0ad3fcda690",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/AsyncDeserializationContext.java"
    },
    {
      "type": "modify",
      "old_id": "4844202cc4d09a4b8e20570f414840363e55fff4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DeferredObjectCodec.java",
      "new_id": "4097a17a9c4823d232f7d9effdd755df61eed3c7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DeferredObjectCodec.java"
    },
    {
      "type": "modify",
      "old_id": "ca61d6fe4cb448e66f8cd94aa8ea5995984730a9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContext.java",
      "new_id": "a750969e76a4d811c0f5091206eb24070338e827",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DeserializationContext.java"
    },
    {
      "type": "modify",
      "old_id": "a21f7d4b89187f3ee20176601b97d280d6db90a1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java",
      "new_id": "6927fa71c084d9f70eb3147480266c073f62deb4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/DynamicCodec.java"
    },
    {
      "type": "delete",
      "old_id": "fb46bf76945a24217646045762d7bda560911a06",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/FlatDeserializationContext.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "da9e91a26ba5b040bebd59fa66b93d0186d53637",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/HashSetCodec.java",
      "new_id": "3485a77e0529d217411eab248eb0fdd173ad331d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/HashSetCodec.java"
    },
    {
      "type": "modify",
      "old_id": "69d9164be300d41175d2f5d6082ccb7710db9542",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableBiMapCodec.java",
      "new_id": "bdc2477f598366a5ab2e81ff4d60e60474b60336",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableBiMapCodec.java"
    },
    {
      "type": "modify",
      "old_id": "1a7d81174f9d89d92244f6f96ac0da52d42debca",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableClassToInstanceMapCodec.java",
      "new_id": "4b5a7474aebeb9a4a3c99860027f7b7a419664c2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableClassToInstanceMapCodec.java"
    },
    {
      "type": "modify",
      "old_id": "21e20f79e7b3a2e8b4e1807b9125903c7f81f03f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecs.java",
      "new_id": "a3dbb8d4e900bddeabf6b9cd9cf60f23fa97b3c9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecs.java"
    },
    {
      "type": "modify",
      "old_id": "5bc7efb6d2727be433c78931c82421da750f7eef",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableSetCodec.java",
      "new_id": "b08a1a1b7e4ff775929c53529c56847d4e6ad460",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableSetCodec.java"
    },
    {
      "type": "modify",
      "old_id": "a28b7efbf33c1e831cb65cc4ed980153fc1cd092",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableSortedSetCodec.java",
      "new_id": "088e50b5d9881805202680c2dbd20ea63e913421",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableSortedSetCodec.java"
    },
    {
      "type": "modify",
      "old_id": "434fe0c7ac6d0e043c988e049e9bed2a2e9ec2cd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableTableCodec.java",
      "new_id": "8945e92407bb6b574db26d52e4a8bd4757b2c84c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableTableCodec.java"
    },
    {
      "type": "modify",
      "old_id": "5f8fd2f2a99dd6ba602c2d891db0f3e50f1cb8cc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/InterningObjectCodec.java",
      "new_id": "16205d8c048005b754c6a074208c5f41f0e8f0cb",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/InterningObjectCodec.java"
    },
    {
      "type": "modify",
      "old_id": "bc8490e07685bc206080f607f694362ff0be6f58",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/LambdaCodec.java",
      "new_id": "567b0736a7cfdd3455efb73794094cfbc5a61eb0",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/LambdaCodec.java"
    },
    {
      "type": "modify",
      "old_id": "e434cd97fafabc353e08e618eaa3f4c17d63699e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/MapHelpers.java",
      "new_id": "a407a59ac70b2a382ceb73db4df32c64a3740a9e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/MapHelpers.java"
    },
    {
      "type": "modify",
      "old_id": "9a7b47ce2bce6c534d208994e39f6b9208ac6c5f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/MultimapCodecs.java",
      "new_id": "202ceeb18c0210f35fa5d7da76d750f8d5afa5fd",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/MultimapCodecs.java"
    },
    {
      "type": "modify",
      "old_id": "e89c621a08c754baa4faac8867e98372424a426d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/InterningObjectCodecFieldGenerators.java",
      "new_id": "f0e3c76e1191b199bba74960bdb02696b76d875b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/InterningObjectCodecFieldGenerators.java"
    },
    {
      "type": "modify",
      "old_id": "4cafb45eabd20ad6af39fd8a88f1cd0beae62e15",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/InterningObjectCodecGenerator.java",
      "new_id": "7647f9525d79f727040a8356427cf550213dc65d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/InterningObjectCodecGenerator.java"
    }
  ]
}
