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 vstinner
Recipients methane, python-dev, serhiy.storchaka, vstinner
Date 2017-01-18.01:24:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1484702716.13.0.663890274902.issue29259@psf.upfronthosting.co.za>
In-reply-to
Content
Ok, I fixed all remaining issues. The new patch version 3 is now waiting for your review ;-)


Patch version 3:

* Add Py_TPFLAGS_HAVE_FINALIZE and Py_TPFLAGS_HAVE_FASTCALL to Py_TPFLAGS_DEFAULT
* Don't read or write tp_fastcall if the type doesn't have the Py_TPFLAGS_HAVE_FASTCALL feature
* fastcall_wrapper() looks into base classes to find a tp_fastcall field: use the first base class with the Py_TPFLAGS_HAVE_FASTCALL feature
* Fix how tp_call and tp_fastcall are inherited
* Use designated initializers for  tp_fastcall, as asked by Naoki (and discussed on python-dev)
* Rebase the change and revert now uselesss or unwanted changes
* No more FIXME ;-)

About the stable ABI: since the version 3, it should just work thanks to the change on Py_TPFLAGS_DEFAULT. Code compiled with Python 3.7 benefit directly of tp_fastcall. Code compiled with Python 3.6 or older will get fastcall_wrapper() which finds tp_fastcall in base classes.
History
Date User Action Args
2017-01-18 01:25:16vstinnersetrecipients: + vstinner, methane, python-dev, serhiy.storchaka
2017-01-18 01:25:16vstinnersetmessageid: <1484702716.13.0.663890274902.issue29259@psf.upfronthosting.co.za>
2017-01-18 01:25:15vstinnerlinkissue29259 messages
2017-01-18 01:25:13vstinnercreate