)]}'
{
  "commit": "e0f7c1097e19b6f5c2399e19f283c9fb373c243f",
  "tree": "535c10ea22a621cd71efefe496725557de45a431",
  "parents": [
    "966fc8153141ef41885dc36ab3522487657c06fe"
  ],
  "author": {
    "name": "Sam Gross",
    "email": "colesbury@gmail.com",
    "time": "Tue Mar 17 18:24:44 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Mar 17 18:24:44 2026"
  },
  "message": "gh-145779: Improve classmethod/staticmethod scaling in free-threaded build (#145826)\n\nAdd special cases for classmethod and staticmethod descriptors in\n_PyObject_GetMethodStackRef() to avoid calling tp_descr_get, which\navoids reference count contention on the bound method and underlying\ncallable. This improves scaling when calling classmethods and\nstaticmethods from multiple threads.\n\nAlso refactor method_vectorcall in classobject.c into a new _PyObject_VectorcallPrepend() helper so that it can be used by\nPyObject_VectorcallMethod as well.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4f4cf02f64b8284b19a432c468bf8bc7f61e7954",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_call.h",
      "new_id": "e544b4cf49d1fbc527272affe1e1070c8f1be29d",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_call.h"
    },
    {
      "type": "modify",
      "old_id": "9c2121f59a4a0c14d20c343174412cae570d2152",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_function.h",
      "new_id": "99dacaf0fe7c545cb31582d271bdbae0781b2bae",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_function.h"
    },
    {
      "type": "modify",
      "old_id": "8c241c7707d074a8dddbc0c57ea34a79d0a22335",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_object.h",
      "new_id": "96685af02cd0e3b233415d7a6f0a3f6fa69aef8b",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_object.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9cd0263a107f16e7818477eba25b9a8657c71629",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Core_and_Builtins/2026-03-10-22-38-40.gh-issue-145779.5375381d80.rst"
    },
    {
      "type": "modify",
      "old_id": "4b1b4bd52a2e5683351797e1e0f3d96ecd82091b",
      "old_mode": 33188,
      "old_path": "Objects/call.c",
      "new_id": "9718642473103cfcff619ae9b0656eac1fc5badd",
      "new_mode": 33188,
      "new_path": "Objects/call.c"
    },
    {
      "type": "modify",
      "old_id": "4c99c194df53a573f15d18cfe6f7adc3d676c466",
      "old_mode": 33188,
      "old_path": "Objects/classobject.c",
      "new_id": "238f1c1dad7d866f3f360ffded396e1c7a498347",
      "new_mode": 33188,
      "new_path": "Objects/classobject.c"
    },
    {
      "type": "modify",
      "old_id": "a7a3d9c78ef3d0bbf94319904d6a29bd60030128",
      "old_mode": 33188,
      "old_path": "Objects/funcobject.c",
      "new_id": "585c7b9a85412c60b73b9ef5c9c6cfe1b9a8bc99",
      "new_mode": 33188,
      "new_path": "Objects/funcobject.c"
    },
    {
      "type": "modify",
      "old_id": "e405963614689ff0ad4137038e15bbb57ba6e86a",
      "old_mode": 33188,
      "old_path": "Objects/object.c",
      "new_id": "ae6ad558ff6c378b67522b0b65cef230b27e025b",
      "new_mode": 33188,
      "new_path": "Objects/object.c"
    },
    {
      "type": "modify",
      "old_id": "da41851e7448a6af0751e189b649e950b5d0059f",
      "old_mode": 33188,
      "old_path": "Python/ceval.c",
      "new_id": "29f81317722a80714ce5c723d9c41c5258973645",
      "new_mode": 33188,
      "new_path": "Python/ceval.c"
    },
    {
      "type": "modify",
      "old_id": "8d8bbc88e7f30ab26316291a8542de58dd936d49",
      "old_mode": 33188,
      "old_path": "Tools/ftscalingbench/ftscalingbench.py",
      "new_id": "bcbd61f601a7d38a5491de3b77746b47f0602cf7",
      "new_mode": 33188,
      "new_path": "Tools/ftscalingbench/ftscalingbench.py"
    }
  ]
}
