)]}'
{
  "commit": "cdf010b10c673e1ec4faaf3f8f9be39237986880",
  "tree": "05885397c078552e1468f6abc66a4190188fca22",
  "parents": [
    "b00a14018172652226bd6efb517af021bd03aa88"
  ],
  "author": {
    "name": "he_tao",
    "email": "53343436+hetaozdh@users.noreply.github.com",
    "time": "Sun Oct 18 14:36:02 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Oct 18 14:36:02 2026"
  },
  "message": "gh-158816: Skip useless hash table probe when deleting from split dicts (#158819)\n\ndelitem_common() unconditionally called lookdict_index() to locate the index slot in dk_indices that points at the entry being removed.\n\nThat slot is only used by the combined branch, to overwrite it with DKIX_DUMMY.  In split tables the whole probe sequence was redundant work.\n\nMove the call into the combined branch and drop the now-pointless assert() for split tables.\n\nMicrobenchmark (free-threaded build, -Og, no PGO; deleting keys from materialized instance dicts; medians over 12 alternating runs):\n\n    del d[k]           71.2 -\u003e 69.2 ns/op   (-2.8%)\n    d.pop(k)           98.9 -\u003e 96.1 ns/op   (-2.8%)\n    colliding hashes   78.0 -\u003e 74.4 ns/op   (-4.6%)",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fd9997afb3e1d34fdfd04d73f5fb89907c801a6e",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Core_and_Builtins/2026-10-04-20-04-55.gh-issue-158816.9ulhWb.rst"
    },
    {
      "type": "modify",
      "old_id": "13c9e2e4b395abd5d3ddfd9d91a914015f4e626d",
      "old_mode": 33188,
      "old_path": "Objects/dictobject.c",
      "new_id": "168a5a4118f596ca9ecdb1044b17f0e0b7d8a79b",
      "new_mode": 33188,
      "new_path": "Objects/dictobject.c"
    }
  ]
}
