)]}'
{
  "commit": "514b1c91b8651e8ab9129a34b7482033d2fd4e5b",
  "tree": "11a091856f2b7f3ec65009b5b9de4e424a2a79bc",
  "parents": [
    "206f73dc5f1b4c3c81119808aa7fd9038661cf90"
  ],
  "author": {
    "name": "Eric Snow",
    "email": "ericsnowcurrently@gmail.com",
    "time": "Tue Feb 13 21:56:49 2024"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Feb 13 21:56:49 2024"
  },
  "message": "gh-76785: Improved Subinterpreters Compatibility with 3.12 (gh-115424)\n\nFor the most part, these changes make is substantially easier to backport subinterpreter-related code to 3.12, especially the related modules (e.g. _xxsubinterpreters). The main motivation is to support releasing a PyPI package with the 3.13 capabilities compiled for 3.12.\r\n\r\nA lot of the changes here involve either hiding details behind macros/functions or splitting up some files.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fdd5918228455d7f986d5098f0053f94aaea1645",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_code.h",
      "new_id": "855361621320729515d0ebd37716a867ff623dfb",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_code.h"
    },
    {
      "type": "modify",
      "old_id": "d6e297a7e8e6dbca4c7dde4b7c9e9cd6d0211e79",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_crossinterp.h",
      "new_id": "63abef864ff87fe53812f8c1f011c0973d439c30",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_crossinterp.h"
    },
    {
      "type": "modify",
      "old_id": "77a1dc59163d212511e2b4bd85f9c220c0e1ee0f",
      "old_mode": 33188,
      "old_path": "Include/internal/pycore_tstate.h",
      "new_id": "3e8fcf5b6ec1fa22c59aa2c429115c57e0e703ab",
      "new_mode": 33188,
      "new_path": "Include/internal/pycore_tstate.h"
    },
    {
      "type": "modify",
      "old_id": "d3b18acad61ce5aa651b54c4b9360133e0a47e77",
      "old_mode": 33188,
      "old_path": "Makefile.pre.in",
      "new_id": "4b9d9c171b9efb347442ac2f9e2ae22eee3c232d",
      "new_mode": 33188,
      "new_path": "Makefile.pre.in"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5661a26d8790d18b0d4d94d395efb288a1c233fc",
      "new_mode": 33188,
      "new_path": "Modules/_interpreters_common.h"
    },
    {
      "type": "modify",
      "old_id": "4e9b8a82a3f630bde6e840082513cdb84512e9a6",
      "old_mode": 33188,
      "old_path": "Modules/_xxinterpchannelsmodule.c",
      "new_id": "a2974aced12ca06e0a89998d0f3adea7c4d33877",
      "new_mode": 33188,
      "new_path": "Modules/_xxinterpchannelsmodule.c"
    },
    {
      "type": "modify",
      "old_id": "537ba9188055dd151da3abd77f9135159ce74b91",
      "old_mode": 33188,
      "old_path": "Modules/_xxinterpqueuesmodule.c",
      "new_id": "7d8c67f49fefb8538b3f4005062f289b8c47e80c",
      "new_mode": 33188,
      "new_path": "Modules/_xxinterpqueuesmodule.c"
    },
    {
      "type": "modify",
      "old_id": "4e9e13457a9eb3f9dccdde6a3f70cd8537f9b8c6",
      "old_mode": 33188,
      "old_path": "Modules/_xxsubinterpretersmodule.c",
      "new_id": "b4004d165078f71c2a548caeab253be48c06a21b",
      "new_mode": 33188,
      "new_path": "Modules/_xxsubinterpretersmodule.c"
    },
    {
      "type": "modify",
      "old_id": "c6ed7daeb1074a8bc6023a14008d56951675de83",
      "old_mode": 33188,
      "old_path": "Python/crossinterp.c",
      "new_id": "143b261f9a53960a369975749b51c8aaab3acbdd",
      "new_mode": 33188,
      "new_path": "Python/crossinterp.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "863919ad42fb97a29d52b45fffd70410418fe249",
      "new_mode": 33188,
      "new_path": "Python/crossinterp_data_lookup.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e418cf91d4a7af60f4715f8810c5086068ef694b",
      "new_mode": 33188,
      "new_path": "Python/crossinterp_exceptions.h"
    },
    {
      "type": "modify",
      "old_id": "1d9576d083d8dc7e196539fff02b14c4c4b4bb4f",
      "old_mode": 33188,
      "old_path": "Tools/c-analyzer/cpython/globals-to-fix.tsv",
      "new_id": "5c5016f71371640d4e8125b2f569d13324be6ffd",
      "new_mode": 33188,
      "new_path": "Tools/c-analyzer/cpython/globals-to-fix.tsv"
    }
  ]
}
