)]}'
{
  "commit": "8bbd11ebedc58f5670d781bbd304b75f1f53324d",
  "tree": "442912bb35dc3857a4458a42ea04b9b041ad80e6",
  "parents": [
    "4d24b93cbbcad9c4974dab05a0f5a524fdd35a04"
  ],
  "author": {
    "name": "Craig Tiller",
    "email": "ctiller@google.com",
    "time": "Tue Aug 15 21:44:13 2023 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Aug 15 21:44:13 2023 -0700"
  },
  "message": "[promises] New `Join`, `TryJoin` implementation (#33995)\n\nOur current implementation of Join, TryJoin leverage some complicated\r\ntemplate stuff to work, which makes them hard to maintain. I\u0027ve been\r\nthinking about ways to simplify that for some time and had something\r\nlike this in mind - using a code generator that\u0027s at least a little more\r\nunderstandable to code generate most of the complexity into a file that\r\nis checkable.\r\n\r\nConcurrently - I have a cool optimization in mind - but it requires that\r\nwe can move promises after polling, which is a contract change. I\u0027m\r\ngoing to work through the set of primitives we have in the coming weeks\r\nand change that contract to enable the optimization.\r\n\r\n---------\r\n\r\nCo-authored-by: ctiller \u003cctiller@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0dc27444558e0946319837b26c15683b9688da7e",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "7d1b5e4586ca7a1845210375c2e365b7e8afc83c",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0e45a8978c8415e2b4c7c3e330760d5e83fa0fc6",
      "old_mode": 33188,
      "old_path": "build_autogenerated.yaml",
      "new_id": "cf33e366894f27e6c41c872353b8d7a83a264847",
      "new_mode": 33188,
      "new_path": "build_autogenerated.yaml"
    },
    {
      "type": "modify",
      "old_id": "b6c7590a4fd4746d93173afd5564f19d24db7c9b",
      "old_mode": 33188,
      "old_path": "src/core/BUILD",
      "new_id": "21af805bfe096b3974d6a46b7146e1a9804d8d2d",
      "new_mode": 33188,
      "new_path": "src/core/BUILD"
    },
    {
      "type": "delete",
      "old_id": "bb287b8ffd42b929d1a1ef053dad7a708bc29bef",
      "old_mode": 33188,
      "old_path": "src/core/lib/promise/detail/basic_join.h",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "369d98302a4d1309fbc39219a33c52ddc14b4828",
      "new_mode": 33188,
      "new_path": "src/core/lib/promise/detail/join_state.h"
    },
    {
      "type": "modify",
      "old_id": "8c6878f301157f2b7d7652005ed975b48506a43d",
      "old_mode": 33188,
      "old_path": "src/core/lib/promise/join.h",
      "new_id": "370cb6d294333b536c1a78090c642f1643270e9b",
      "new_mode": 33188,
      "new_path": "src/core/lib/promise/join.h"
    },
    {
      "type": "modify",
      "old_id": "370e8541b4a1416ed6258faab61239096535f4a9",
      "old_mode": 33188,
      "old_path": "src/core/lib/promise/try_join.h",
      "new_id": "96208bdc17a0c4244c61f5493575feb564f6959a",
      "new_mode": 33188,
      "new_path": "src/core/lib/promise/try_join.h"
    },
    {
      "type": "modify",
      "old_id": "1d6abd2023850b46b7a7dd7310cd8b3e232962d3",
      "old_mode": 33188,
      "old_path": "test/core/promise/BUILD",
      "new_id": "beee1522db543754d18b152003e19029edc1dfc3",
      "new_mode": 33188,
      "new_path": "test/core/promise/BUILD"
    },
    {
      "type": "modify",
      "old_id": "017b0e211d26916258e201e422a6f5224c580c78",
      "old_mode": 33188,
      "old_path": "test/core/promise/for_each_test.cc",
      "new_id": "7f93ab59731a2c89d7ac228766456f42762efa84",
      "new_mode": 33188,
      "new_path": "test/core/promise/for_each_test.cc"
    },
    {
      "type": "modify",
      "old_id": "bc62fbb8e78b22fd506f3bf3d58cb8888a16e007",
      "old_mode": 33188,
      "old_path": "test/core/promise/join_test.cc",
      "new_id": "5e6f2bc7ab18dd321cca79b0d01d242e4ca49e87",
      "new_mode": 33188,
      "new_path": "test/core/promise/join_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3b18efc48c9874b6aa3f0cf80006f36bba76ca2e",
      "old_mode": 33188,
      "old_path": "test/core/promise/latch_test.cc",
      "new_id": "b1af24bd4bfa84b236085bf3b4dfb82b2b02eccc",
      "new_mode": 33188,
      "new_path": "test/core/promise/latch_test.cc"
    },
    {
      "type": "modify",
      "old_id": "5e30627938b5296c6e86648e2b6c1ae8cf96cb6d",
      "old_mode": 33188,
      "old_path": "test/core/promise/map_pipe_test.cc",
      "new_id": "53a7d60a38277c2084a2276508fba8e183838f54",
      "new_mode": 33188,
      "new_path": "test/core/promise/map_pipe_test.cc"
    },
    {
      "type": "modify",
      "old_id": "19733df3d848af4e5a7b6b3a93510df4a8c19a70",
      "old_mode": 33188,
      "old_path": "test/core/promise/pipe_test.cc",
      "new_id": "e91178cf9fe618a16254bd7ce3cf00ae8baab9b0",
      "new_mode": 33188,
      "new_path": "test/core/promise/pipe_test.cc"
    },
    {
      "type": "modify",
      "old_id": "bf20d3f47173ad5a5331e2ed5fa4e6f8e013da02",
      "old_mode": 33188,
      "old_path": "test/core/promise/promise_fuzzer.cc",
      "new_id": "413524d35d12e2bc202a40306b36f3bc5a9e1611",
      "new_mode": 33188,
      "new_path": "test/core/promise/promise_fuzzer.cc"
    },
    {
      "type": "modify",
      "old_id": "d2889477e9d64f2f9c4e80e17dd9d3ecee359bad",
      "old_mode": 33188,
      "old_path": "test/core/promise/try_join_test.cc",
      "new_id": "28143aa72fe8e6f3e7aaf4194432fb4c58bcd544",
      "new_mode": 33188,
      "new_path": "test/core/promise/try_join_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2eab628da5567704cb7c0796fd7bcf537e3925d9",
      "old_mode": 33188,
      "old_path": "test/core/transport/promise_endpoint_test.cc",
      "new_id": "09478d0dd27de2b5bd3180e4aae5b7e07066556e",
      "new_mode": 33188,
      "new_path": "test/core/transport/promise_endpoint_test.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab081e4af8fcb52f6fe0ae6a293291876ef46853",
      "new_mode": 33261,
      "new_path": "tools/codegen/core/gen_join.py"
    }
  ]
}
