On Mon, Dec 6, 2021 at 9:54 PM Guido van Rossum <
gu...@python.org> wrote:
> Also, it looks like Mark is proposing to *remove* _PyObject_GC_Malloc from stable_abi.txt
In Python 3.2, _PyObject_GC_Malloc() is implemented as a function.
PyObject_GC_New() macro calls _PyObject_GC_New() function. Internally,
PyType_GenericAlloc() and _PyObject_GC_New() call
_PyObject_GC_Malloc().
=> IMO _PyObject_GC_Malloc() doesn't need to be part of Python 3.2 stable ABI
In Python 3.11, _PyObject_GC_Malloc() is still implemented as a
function. It's not used in the C API header files, it's only used in
the implementation of other functions.
=> IMO again, IMO _PyObject_GC_Malloc() doesn't need to be part of
Python 3.11 stable ABI
It would be nice if someone could double check my analysis.
In Python 3.7, there was still "#undef _PyObject_GC_Malloc" in
Modules/gcmodule.c with the comment:
/* extension modules might be compiled with GC support so these
functions must always be available */
This code comes from an old commit made for ABI compatibility with...
Python 2.2!
https://github.com/python/cpython/commit/fec4eb1be1bb193ab3db0645a2c084c34868401c
---
commit fec4eb1be1bb193ab3db0645a2c084c34868401c
Author: Neil Schemenauer <
nasc...@enme.ucalgary.ca>
Date: Fri Apr 12 02:41:03 2002 +0000
Allow PyObject_Del to be used as a function designator. Provide binary
compatibility function.
Make PyObject_GC_Track and PyObject_GC_UnTrack functions instead of
trivial macros wrapping functions. Provide binary compatibility
functions.
---
I don't think that Python 3.2 needs to provide ABI compatibility with
Python 2.2.
Victor
--
Night gathers, and now my watch begins. It shall not end until my death.
Message archived at
https://mail.python.org/archives/list/pytho...@python.org/message/4SUSFYA2P3CLCP3ULYSXETM2QEBNUWQG/