[Python-Dev] Not all public names in C API have the "Py" prefix
Serhiy Storchaka
storchaka at gmail.com
Mon Mar 27 06:22:01 EDT 2017
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)?
[1] https://python-history.blogspot.com/2009/03/great-or-grand-renaming.html
[2]
https://github.com/python/cpython/commit/6d6c1a35e08b95a83dbe47dbd9e6474daff00354
[3] https://www.python.org/dev/peps/pep-0384/
More information about the Python-Dev
mailing list