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 Mark.Shannon
Recipients Mark.Shannon, petr.viktorin, vstinner
Date 2020-03-16.14:09:28
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1584367768.43.0.96665023225.issue39978@roundup.psfhosted.org>
In-reply-to
Content
The implementation of `PyObject_Vectorcall` adds unnecessary overhead to PEP 590, which undermines its purpose.
The implementation was changed in https://github.com/python/cpython/pull/17052, which I objected to at the time.

The change has a negative impact on performance as it add calls to both 
`PyThreadState_GET()` and `_Py_CheckFunctionResult()`.

This is practically an invitation for callers to skip `PyObject_Vectorcall` and access the underlying function pointer directly, making `PyObject_Vectorcall` pointless.

https://github.com/python/cpython/pull/17052 should be reverted.
History
Date User Action Args
2020-03-16 14:09:28Mark.Shannonsetrecipients: + Mark.Shannon, vstinner, petr.viktorin
2020-03-16 14:09:28Mark.Shannonsetmessageid: <1584367768.43.0.96665023225.issue39978@roundup.psfhosted.org>
2020-03-16 14:09:28Mark.Shannonlinkissue39978 messages
2020-03-16 14:09:28Mark.Shannoncreate