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 <rep...@bugs.python.org>
<http://bugs.python.org/issue29548>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to