)]}'
{
  "commit": "c4d0956ebdc01f13ab0ddd85221113f2bc5fdad4",
  "tree": "37195ff361f628e4aed6b56b4fb76cb0813ae195",
  "parents": [
    "457234d0289692b5fe6e4fd7ff170f78b35adbdd"
  ],
  "author": {
    "name": "Eric Rahm",
    "email": "erahm@google.com",
    "time": "Mon Apr 15 13:06:40 2024 -0700"
  },
  "committer": {
    "name": "Eric Rahm",
    "email": "erahm@google.com",
    "time": "Wed Jun 12 08:36:27 2024 -0700"
  },
  "message": "Convert `ir_data` to a `dataclass`\n\nThis converts `ir_data` over to a `dataclasses.dataclass` and adds\nvarious `FieldSpec` helpers to support that conversion. The `builder`,\n`reader`, `IrDataSerializer`, `copy`, and `update` stubs are fully\nimplemented to support dataclasses as well.\n\nThis change results in a 38% speedup against a 75KB test file.\n\nFixes #118.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b214107e810e65a5a54f56e9bcea9b023de5c043",
      "old_mode": 33188,
      "old_path": "compiler/front_end/constraints_test.py",
      "new_id": "cf738a48674085575f924195c6b38cfd78ce1cec",
      "new_mode": 33188,
      "new_path": "compiler/front_end/constraints_test.py"
    },
    {
      "type": "modify",
      "old_id": "57d5f4c25d29b4e3f7c732afaf8d13a267f2e2c0",
      "old_mode": 33188,
      "old_path": "compiler/front_end/module_ir_test.py",
      "new_id": "dba5523885e54ccafc5feaf9c1a6d0eedb0cf970",
      "new_mode": 33188,
      "new_path": "compiler/front_end/module_ir_test.py"
    },
    {
      "type": "modify",
      "old_id": "5990f13295d6f7120019ead2e90b760f0e7bbe8a",
      "old_mode": 33188,
      "old_path": "compiler/front_end/symbol_resolver.py",
      "new_id": "9328e8f5bdfac832eb6bef446f27f8a6c6fab994",
      "new_mode": 33188,
      "new_path": "compiler/front_end/symbol_resolver.py"
    },
    {
      "type": "modify",
      "old_id": "42b3cff32233db21206ce2255d141991b8cd0726",
      "old_mode": 33188,
      "old_path": "compiler/front_end/synthetics.py",
      "new_id": "73be2946148cd796daef012876ecfd0437176046",
      "new_mode": 33188,
      "new_path": "compiler/front_end/synthetics.py"
    },
    {
      "type": "modify",
      "old_id": "5946dcb61e6de68b44b90da18b7e494ba48c1cb7",
      "old_mode": 33188,
      "old_path": "compiler/util/BUILD",
      "new_id": "ab5334456d3f04006cf424fd72d6aa77ab2a2941",
      "new_mode": 33188,
      "new_path": "compiler/util/BUILD"
    },
    {
      "type": "modify",
      "old_id": "c85d8fc09da514aa19486d4f7001512590a4fbda",
      "old_mode": 33188,
      "old_path": "compiler/util/error.py",
      "new_id": "e408c71252eed557ac6a4a7cf164bf18ac7d5117",
      "new_mode": 33188,
      "new_path": "compiler/util/error.py"
    },
    {
      "type": "modify",
      "old_id": "6ee0b476b003e2102e947dfec29fb555a93468ca",
      "old_mode": 33188,
      "old_path": "compiler/util/ir_data.py",
      "new_id": "170af0755a3869ce4d8e7ce162045821e433640c",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_data.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8db01f20a0663cc8d281b99374769eedbdeb22c8",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_data_fields.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9e275367eaa5e92de52615b554e96e0798379a90",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_data_fields_test.py"
    },
    {
      "type": "modify",
      "old_id": "ac02bb0d67144e46944dd6191da0a1945f42896c",
      "old_mode": 33188,
      "old_path": "compiler/util/ir_data_utils.py",
      "new_id": "e681f5e630ed5592a252be0c55395218b921b378",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_data_utils.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "951444a386127af221f05a891c47177f0e496806",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_data_utils_test.py"
    },
    {
      "type": "modify",
      "old_id": "02dc6473a01a025e9174a3dfb600ab94f2f4875a",
      "old_mode": 33188,
      "old_path": "compiler/util/ir_util.py",
      "new_id": "603c0c0ccf42b214b9a2e7c898930a7ebdd2dc3a",
      "new_mode": 33188,
      "new_path": "compiler/util/ir_util.py"
    },
    {
      "type": "modify",
      "old_id": "0d33600ed0755276d34272356e15669aa9ec0c41",
      "old_mode": 33188,
      "old_path": "compiler/util/test_util.py",
      "new_id": "02ac9a39e431985c9fdcd7ed8f99f90c0d9f9189",
      "new_mode": 33188,
      "new_path": "compiler/util/test_util.py"
    },
    {
      "type": "modify",
      "old_id": "78efe467c3c63f0ef29367eebab85d4eb7844f33",
      "old_mode": 33188,
      "old_path": "compiler/util/traverse_ir.py",
      "new_id": "93ffdc80fec3f0c108d1e3ffdfbb1c9850c147d5",
      "new_mode": 33188,
      "new_path": "compiler/util/traverse_ir.py"
    }
  ]
}
