)]}'
{
  "commit": "18275949e1528cadd21ccea0611575ef058e12e7",
  "tree": "40f5119b9935cdbcb39be10865ad89d67738109d",
  "parents": [
    "615a9553d5d2c814001e914e9023f0bff77d5cef"
  ],
  "author": {
    "name": "Dmitri Prime",
    "email": "bolms@google.com",
    "time": "Sat Dec 21 10:18:31 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Dec 21 10:18:31 2024 -0800"
  },
  "message": "Handle very large `.emb` files. (#215)\n\nThis change switches parse tree handling to use iteration (with an\r\nexplicit stack) instead of recursion, which:\r\n\r\n*   Allows large (\u003e~1000 entity) `.emb` files to be formatted.\r\n*   Allows very large (\u003e~16k entity) `.emb` files to be compiled.\r\n\r\nThe difference in sizes in the previous code was due to `module_ir.py`\r\nhackily increasing the recursion limit: while this more or less worked,\r\nit was a little dangerous (it ran the risk of blowing out the C stack,\r\ndepending on platform) and only increased the limit.  This change\r\nremoves the limit entirely (at least, up to the available memory on the\r\nsystem).",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "efcec3efe9937a20e7168e15d484cfbe1810fb43",
      "old_mode": 33188,
      "old_path": "compiler/front_end/BUILD",
      "new_id": "5128a7791e8a061b772533d4dcc1972230a3b9b0",
      "new_mode": 33188,
      "new_path": "compiler/front_end/BUILD"
    },
    {
      "type": "modify",
      "old_id": "fc7bf94e0b49ee52c0309af94a89d84516ec95c9",
      "old_mode": 33188,
      "old_path": "compiler/front_end/format_emb.py",
      "new_id": "f0b0137afca13a4d86de997a28007b9f264c1798",
      "new_mode": 33188,
      "new_path": "compiler/front_end/format_emb.py"
    },
    {
      "type": "modify",
      "old_id": "3d5331eb2cdfdf4e7480c70f19b9d94d148b64d6",
      "old_mode": 33188,
      "old_path": "compiler/front_end/format_emb_test.py",
      "new_id": "42d8a26bd269e58c5b677ca022677aa1097912b3",
      "new_mode": 33188,
      "new_path": "compiler/front_end/format_emb_test.py"
    },
    {
      "type": "modify",
      "old_id": "145bba349e56da0eb072858785b5106c68e0952d",
      "old_mode": 33188,
      "old_path": "compiler/front_end/module_ir.py",
      "new_id": "633c1b84cce1c24526e83390147edebd0363e709",
      "new_mode": 33188,
      "new_path": "compiler/front_end/module_ir.py"
    },
    {
      "type": "modify",
      "old_id": "1931bab5c8442a139662af3050bd6447088da81e",
      "old_mode": 33188,
      "old_path": "compiler/front_end/module_ir_test.py",
      "new_id": "fa8db9cdde9031f1fbde4705ca66e181ec22edca",
      "new_mode": 33188,
      "new_path": "compiler/front_end/module_ir_test.py"
    },
    {
      "type": "modify",
      "old_id": "b0a29a35e4f333dfd937cfa45dd5c1f6b6030a05",
      "old_mode": 33188,
      "old_path": "compiler/util/BUILD",
      "new_id": "4a444fd541627d4df48c9f9d9bd2375d4b2fd726",
      "new_mode": 33188,
      "new_path": "compiler/util/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c95f70ae670e9888fa0dd368334eaf65e791b928",
      "new_mode": 33188,
      "new_path": "compiler/util/parser_util.py"
    }
  ]
}
