This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author methane
Recipients eitan.adler, methane, pitrou, serhiy.storchaka, vstinner, yselivanov
Date 2018-05-30.12:41:24
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAEfz+TzAAJWogHtxKe8A5KeXpqsO+vGLNadp6ezAxuZ29TuPfw@mail.gmail.com>
In-reply-to <1527675268.09.0.682650639539.issue33597@psf.upfronthosting.co.za>
Content
On Wed, May 30, 2018 at 7:14 PM STINNER Victor <report@bugs.python.org>
wrote:

> STINNER Victor <vstinner@redhat.com> added the comment:

> I asked if this change breaks the stable ABI. Steve Dower replied:

> "Looks like it breaks the 3.7 ABI, which is certainly not allowed at this
time. But it’s not a limited API structure, so no problem for 3.8."

> https://mail.python.org/pipermail/python-dev/2018-May/153745.html

> I didn't understand the answer. It breaks the ABI but it doesn't break
the API?

It breaks ABI, but it is not part of the "stable" ABI.
So we can't commit it on 3.7, but we can commit it on 3.8.

> It seems like PyObject.ob_refcnt is part of the "Py_LIMITED_API" and so
an extension module using the stable API/ABI can access directly the field
with no function call. For example, Py_INCREF() modifies directly the field
at the ABI level.

> *But* PyGC_Head is a strange thing since it's stored "before" the usual
PyObject* pointer, so fields starting at PyObject* address are not affected
by this change, no?

I think so.

> Hopefully, PyGC_Head seems to be excluded from PyGC_Head, and so it seems
like the PR 7043 doesn't break the stable *ABI*.

s/from PyGC_Head/from PyObject/
I think so.
History
Date User Action Args
2018-05-30 12:41:24methanesetrecipients: + methane, pitrou, vstinner, serhiy.storchaka, yselivanov, eitan.adler
2018-05-30 12:41:24methanelinkissue33597 messages
2018-05-30 12:41:24methanecreate