Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Properly fix Python 3.13 stable ABI linking
This fixes vim#15460 properly. There was an attempt to fix it in v9.1.0668, but it did it by manually copy and pasting definitions from Python 3.13 headers, which is problematic as it makes Vim dependent on low-level implementation details which are subject to change. That change also pulls in dependencies to private APIs (`_Py_IncRef`) which is a very bad idea as the next version of Python could very well remove that. The core issue was simply that `Py_INCREF` and similar functions are not part of the stable API. We are supposed to be using `Py_IncRef` instead which performs null-check (similar to `Py_XINCREF`) and is available as a linkable function. We simply need to call it instead of the macro. We simply remap `Py_INCREF` (and friends) to the function version in limited API similar to how we mapped other functions.
- Loading branch information