)]}'
{
  "commit": "325ddcd6b9f2d3cd88355661f621f7ac499ce27f",
  "tree": "a55e2bf0d5925c97010fd9bdb2afb1dc3bdcb9fc",
  "parents": [
    "02a472a0dbb7d21810ef2c56626eba2113e5a049"
  ],
  "author": {
    "name": "Jukka Lehtosalo",
    "email": "jukka.lehtosalo@iki.fi",
    "time": "Sat Jul 12 12:54:52 2025 +0100"
  },
  "committer": {
    "name": "Jukka Lehtosalo",
    "email": "jukka.lehtosalo@iki.fi",
    "time": "Wed Jul 16 14:49:04 2025 +0100"
  },
  "message": "Micro-optimization: Make ArgKind a regular class instead of enum\n\nMypyc doesn\u0027t generate very efficient code for enums, so switch to a\nregular class. We can later revert the change if/when we can improve\nenum support in mypyc.\n\nOperations related to ArgKind were pretty prominent in the op trace\nlog (#19457).\n\nBy itself this improves performance by ~1.7%, based on\n`perf_compare.py`, which is significant:\n```\nmaster                    4.168s (0.0%) | stdev 0.037s\nHEAD                      4.098s (-1.7%) | stdev 0.028s\n```\n\nThis is a part of a set of micro-optimizations that improve self check\nperformance by ~5.5%.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8223ccfe4ca080f4115576423a2c902d6d8c4b78",
      "old_mode": 33188,
      "old_path": "mypy/checkexpr.py",
      "new_id": "a8740d4a09afbc0dfdb420c128954463923d1b31",
      "new_mode": 33188,
      "new_path": "mypy/checkexpr.py"
    },
    {
      "type": "modify",
      "old_id": "fc2656ce2130ebcfbb29fd6d30187dc0e2f548e5",
      "old_mode": 33188,
      "old_path": "mypy/nodes.py",
      "new_id": "d61e112d55bbe1052d3230b92d2c477f803ff998",
      "new_mode": 33188,
      "new_path": "mypy/nodes.py"
    },
    {
      "type": "modify",
      "old_id": "c8b370f15e6d382670aac36b88099d0268946a47",
      "old_mode": 33188,
      "old_path": "mypy/plugins/functools.py",
      "new_id": "ef62cf49e904be9910defa495e248f32439c215b",
      "new_mode": 33188,
      "new_path": "mypy/plugins/functools.py"
    },
    {
      "type": "modify",
      "old_id": "01b7f4989d800fc29549c91461ff8894da5de8f7",
      "old_mode": 33188,
      "old_path": "mypy/semanal.py",
      "new_id": "14604f951b3d5f29eaf7a77048b0d33daf753eb4",
      "new_mode": 33188,
      "new_path": "mypy/semanal.py"
    },
    {
      "type": "modify",
      "old_id": "05b02acc68c00d59f628070b11da02c7934ae72c",
      "old_mode": 33188,
      "old_path": "mypy/types.py",
      "new_id": "51f9c1bbce89145ee1a7efe65ae2b003b84450a5",
      "new_mode": 33188,
      "new_path": "mypy/types.py"
    },
    {
      "type": "modify",
      "old_id": "cd1684255855a39faa7f6f391fe56ed4b704fb6f",
      "old_mode": 33188,
      "old_path": "mypyc/codegen/emitwrapper.py",
      "new_id": "ec91ff492f2e6bf0f729fdd59328d5f6b41d76bc",
      "new_mode": 33188,
      "new_path": "mypyc/codegen/emitwrapper.py"
    },
    {
      "type": "modify",
      "old_id": "881ac5939c27563198ae2dce064804dac7b29ebd",
      "old_mode": 33188,
      "old_path": "mypyc/ir/func_ir.py",
      "new_id": "83c0712f405db4147678254cd750c274698a4dc5",
      "new_mode": 33188,
      "new_path": "mypyc/ir/func_ir.py"
    },
    {
      "type": "modify",
      "old_id": "90506adde672cd2d99aa7cfc80ed9dd4b401ed5e",
      "old_mode": 33188,
      "old_path": "mypyc/irbuild/function.py",
      "new_id": "ac4b844a4635dd7f5972746cf0449e3700b239a7",
      "new_mode": 33188,
      "new_path": "mypyc/irbuild/function.py"
    }
  ]
}
