)]}'
{
  "commit": "d8a8bc0e38dd60afa9d285766f688beb6edf4969",
  "tree": "0fa1b87b1943185c0f3fc9cb368b4cd0515292fb",
  "parents": [
    "e8e210d8f9aaa04aea2ac73f6829611f67c999f4"
  ],
  "author": {
    "name": "Rohan McGovern",
    "email": "rohan@mcgovern.id.au",
    "time": "Tue Mar 08 17:03:58 2022 +1000"
  },
  "committer": {
    "name": "Rohan McGovern",
    "email": "rohan@mcgovern.id.au",
    "time": "Tue Mar 08 18:50:28 2022 +1000"
  },
  "message": "Flatten outputs for chained boolean operations where possible\n\nAdd special-case handling to flatten the data structure when chaining\nmultiple AND/OR together; for example, make f_and(f_and(x, y), z)\nwork approximately in the same way as f_and(x, y, z).\n\nThe goal here is to avoid a stack overflow when using a pattern which\ncan chain a large number of futures. Previously, an overflow could start\nto happen if the chain was a few hundred futures deep, since each\nfuture\u0027s completion callback would set the result on the next future\nwhich would invoke another completion callback and so on throughout the\nchain.\n\nFixes #320\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "422d38b6612ac506169b0145b3278cd1fbe43bef",
      "old_mode": 33188,
      "old_path": "more_executors/_impl/futures/bool.py",
      "new_id": "8d3a8d4b3937591ded263099fd6c6e9252858f00",
      "new_mode": 33188,
      "new_path": "more_executors/_impl/futures/bool.py"
    },
    {
      "type": "modify",
      "old_id": "44f2c7bf67f4200cf5c19aae575219bbb3c81bff",
      "old_mode": 33188,
      "old_path": "tests/futures/test_and.py",
      "new_id": "2418000c44d9c88f45b29004a39c83d0bca28391",
      "new_mode": 33188,
      "new_path": "tests/futures/test_and.py"
    },
    {
      "type": "modify",
      "old_id": "c61894d8dc2f390b008ba8467347403f8f0bcc47",
      "old_mode": 33188,
      "old_path": "tests/futures/test_or.py",
      "new_id": "ae04870c87d29f395d4870700d1dd6947816c9a1",
      "new_mode": 33188,
      "new_path": "tests/futures/test_or.py"
    }
  ]
}
