Victor Stinner schrieb am 07.09.2018 um 19:08:
I added FASTCALL to Python 3.6. I chose to make it private on purpose, we didn't have enough feedback to know if the whole idea of FASTCALL was a good idea or not. It took one or two years to cleanup the code and the exact API. METH_FASTCALL changed deeply in Python 3.7: it doesn't include keyword arguments anymore.
About Cython: the fact that it was private didn't prevent Cython to use METH_FASTCALL since Python 3.6, and so Cython was broken in Python 3.7. Well, it's a deliberate choice of Cython, and I'm fine with that.
It wasn't quite as deliberate as that. We have our own copy of PyObject_Call() which we use internally, and thus the new flag *had* to be supported there. We're not actually using FASTCALL for our own generated functions yet (which would be the deliberate choice).
I'm also interested to help to keep Cython up to date :-)
So am I. :)
Stefan