)]}'
{
  "commit": "40e87a38294217350286de86d1c793eb3be4fb3a",
  "tree": "b8d82ebbe400b0beb7a20bf80d14447b612543b5",
  "parents": [
    "76ad1f35644a1cc39f95e97024128245dedc6a5c"
  ],
  "author": {
    "name": "Henry Schreiner",
    "email": "HenrySchreinerIII@gmail.com",
    "time": "Sat Oct 03 13:56:11 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Oct 03 13:56:11 2026 -0400"
  },
  "message": "[feat/precompile-class] feat: move type_caster_base.h non-template definitions to type_caster_base-inl.h (#6134)\n\n* feat: move type_caster_base.h non-template definitions to type_caster_base-inl.h\n\nMoves the free functions (type-info lookup and registration, instance\nlayout, isinstance_generic, cpp_conduit_method, type_info_description),\nthe loader_life_support members (the function-local thread_local stack\nstays per-module in both modes), and the two heavy type_caster_generic\nmembers (the type_info constructor and the main cast overload).\nTemplates, including load_impl\u003c\u003e, stay in the header.\n\nAssisted-by: ClaudeCode:claude-fable-5\n\n* fix: make gil.h self-contained for PyPy/GraalPy and silence -Wredundant-decls\n\ngil.h evaluated PYBIND11_SIMPLE_GIL_MANAGEMENT before including common.h,\nwhich defines it on PyPy/GraalPy. Every existing TU included common.h\nfirst through pybind11.h, so this only surfaced when src/type_caster_base.cpp\nreached gil.h directly. Also suppress GCC -Wredundant-decls for the\nisinstance_generic declaration duplicated in pytypes.h.\n\nAssisted-by: ClaudeCode:claude-fable-5",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3157a57e1d8def778a1a6a398742d40af0d01463",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "35b003526764453b052b35ab59a448c77244d0d0",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f94f39dc627a0e28667ee9acefcf7f61a97dcc57",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/type_caster_base-inl.h"
    },
    {
      "type": "modify",
      "old_id": "e7300073880421cc313108ffe0cd4fac29d28e2b",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/type_caster_base.h",
      "new_id": "7d9c58d78ccaed702e0441f5db470a35fc425ceb",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/type_caster_base.h"
    },
    {
      "type": "modify",
      "old_id": "9e799b3cf760f0f75907597363d46280df40987f",
      "old_mode": 33188,
      "old_path": "include/pybind11/gil.h",
      "new_id": "e43d4cb2e9228c38f6d8b6258f42c9c378a82da8",
      "new_mode": 33188,
      "new_path": "include/pybind11/gil.h"
    },
    {
      "type": "modify",
      "old_id": "2bfe127509a1c905b06aa94e6dd0d4ac398f7d52",
      "old_mode": 33188,
      "old_path": "src/pybind11_combined.cpp",
      "new_id": "718ddc82911323b96b6a2e48d2358161508a8ceb",
      "new_mode": 33188,
      "new_path": "src/pybind11_combined.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9119044dc28c60d8d8018fae6a80d9a989daf16",
      "new_mode": 33188,
      "new_path": "src/type_caster_base.cpp"
    },
    {
      "type": "modify",
      "old_id": "840df80ac21cde9406077b117bd94dd0030bcfaf",
      "old_mode": 33188,
      "old_path": "tests/extra_python_package/test_files.py",
      "new_id": "79af6f679e5c253922cbaadfbe4f7f9b6aeb3b90",
      "new_mode": 33188,
      "new_path": "tests/extra_python_package/test_files.py"
    }
  ]
}
