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 <nasch...@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.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/4SUSFYA2P3CLCP3ULYSXETM2QEBNUWQG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to