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 methane
Recipients methane, python-dev, vstinner, yselivanov
Date 2017-02-02.01:17:23
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1485998246.37.0.792073597156.issue29263@psf.upfronthosting.co.za>
In-reply-to
Content
LOAD_METHOD support was based on tp_fastcall.

Without LOAD_METHOD support, methoddescr_get is called and
stack layout after LOAD_METHOD is:

  NULL, (bound)PyCFunction, arg1, arg2, ... argN

With LOAD_METHOD support, stack layout is:

  PyMethodDescrObject, self, arg1, ... argN

And tp_call (or tp_fastcall) of method descriptor is called when CALL_METHOD.

Without tp_fastcall, it means pack&unpack tuple happens.
It is more heavy than creating temporary PyCFunction.

---

Other ideas to support LOAD_METHOD for C function are:

* Add _PyMethodDescr_FastCallKeywords and call it in call_function.
* Create unbound PyCFunction and cache it
History
Date User Action Args
2017-02-02 01:17:26methanesetrecipients: + methane, vstinner, python-dev, yselivanov
2017-02-02 01:17:26methanesetmessageid: <1485998246.37.0.792073597156.issue29263@psf.upfronthosting.co.za>
2017-02-02 01:17:26methanelinkissue29263 messages
2017-02-02 01:17:23methanecreate