[issue29548] deprecate PyEval_Call*() functions.

STINNER Victor report at bugs.python.org
Tue Feb 14 05:16:29 EST 2017


STINNER Victor added the comment:

> Please note that the two sets of APIs are not identical, e.g. you cannot simply replace PyEval_CallObject() with PyObject_Call(), since the former applies a few extra checks and defaults, which the latter doesn't.

IMHO these checks are too expensive at runtime for little benefit. If you pass non-tuple to PyObject_Call(), Python immediately crash. You are immediately noticied of the bug :-) I don't think that such bugs are common enough to justify the overhead.

Any idea of the popularity of the undocumented PyEval_xxx() functions? Are they used by Cython for example? By a single random extension module in the world?

I'm more in favor of modifying PyEval_xxx() to call PyObject_xxx() and deprecate them.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue29548>
_______________________________________


More information about the Python-bugs-list mailing list