[Python-Dev] Not all public names in C API have the "Py" prefix

Brett Cannon brett at python.org
Mon Mar 27 14:48:48 EDT 2017


On Mon, 27 Mar 2017 at 03:23 Serhiy Storchaka <storchaka at gmail.com> wrote:

> A number of public typedef names without the "Py" prefix survived the
> Grand Renaming [1]. A couple of new names without the "Py" prefix were
> added after the Grand Renaming (e.g. getter and setter [2]).
>
> That names were included in the Stable ABI. The long list of such names
> can be found in PEP 384 [3]:
>
> unaryfunc binaryfunc ternaryfunc inquiry lenfunc ssizeargfunc
> ssizessizeargfunc ssizeobjargproc ssizessizeobjargproc objobjargproc
> objobjproc visitproc traverseproc destructor getattrfunc getattrofunc
> setattrfunc setattrofunc reprfunc hashfunc richcmpfunc getiterfunc
> iternextfunc descrgetfunc descrsetfunc initproc newfunc allocfunc getter
> setter
>
> And I suppose new names were added since Python 3.2.
>
> A couple of underscored name without the "_Py" prefix (e.g. _object,
> _typeobject) are defined when include "Python.h".
>
> Should we to do something with this? Maybe add Py-prefixed aliases and
> temporary keep old names for compatibility (but allow to hide them if
> define a special macro)?
>

I think we should at least add aliases somehow. Maybe in a Py4k world we
can update the stable ABI and drop names that re not properly prefixed.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170327/a6f85825/attachment.html>


More information about the Python-Dev mailing list