)]}'
{
  "commit": "e511e25d11198f468e4c03e18d7b5406c8d06bae",
  "tree": "070249077e5e04ff6e98de39a6bd33c864728fee",
  "parents": [
    "c85a426ab7035e0c86d4493e461a1bfbaf5c9b0c"
  ],
  "author": {
    "name": "Stella Laurenzo",
    "email": "stellaraccident@gmail.com",
    "time": "Fri Feb 05 01:41:22 2021 +0000"
  },
  "committer": {
    "name": "Stella Laurenzo",
    "email": "stellaraccident@gmail.com",
    "time": "Fri Feb 05 01:48:34 2021 +0000"
  },
  "message": "Retain the backing device with python mapped array memory.\n\n* Fixes #3381\n* While many programs didn\u0027t suffer from this, any time references to the array memory escape to the generational collector, a subsequent collection has a high likelihood of freeing the device prior to the buffer allocated against it.\n* JAX internally seems to have a heuristic that caches a bunch of things and manually invokes the generational gc.\n* There were many other things I would like to improve about this code but I held off and just did a targeted bug fix.\n* The prior attempt (#3450) failed because with multiple results, it would have tried to get a weak reference to a tuple, which is not permitted. This more manual intervention stitches the keep-alive onto the actual objects that need it.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2621501806242e20d39ba966d8fd23ce4ea2e23a",
      "old_mode": 33188,
      "old_path": "bindings/python/pyiree/rt/function_abi.cc",
      "new_id": "f13b305ef514e0b1cb26c0d227922151bf7e265c",
      "new_mode": 33188,
      "new_path": "bindings/python/pyiree/rt/function_abi.cc"
    },
    {
      "type": "modify",
      "old_id": "997585aa16c637b9bbb9f6002e9996608a4c6ea7",
      "old_mode": 33188,
      "old_path": "bindings/python/pyiree/rt/host_types.cc",
      "new_id": "2bca5fe0fc6b457d234a20b5b2ecad34271b04cc",
      "new_mode": 33188,
      "new_path": "bindings/python/pyiree/rt/host_types.cc"
    },
    {
      "type": "modify",
      "old_id": "80c9ec3e0379f9f1c2c5b4701f97f54e408d0e36",
      "old_mode": 33188,
      "old_path": "bindings/python/pyiree/rt/host_types.h",
      "new_id": "2bc1973b6cea15ae834e73732a13b488f5995d6b",
      "new_mode": 33188,
      "new_path": "bindings/python/pyiree/rt/host_types.h"
    }
  ]
}
