[Python-Dev] On the METH_FASTCALL calling convention (original) (raw)

INADA Naoki songofacandy at gmail.com
Fri Jul 6 00:07:46 EDT 2018


I don't know Serhiy's idea about how METH_FASTCALL | METH_KEYWORDS calling convention can be improved in the future.

When I reading PEP 580, I liked your Py PyCCall_FastCall signature. Maybe, one way to improve METH_FASTCALL | METH_KEYWORDS can be this. kwds can be either tuple or dict.


Anyway, if we don't make METH_FASTCALL | METH_KEYWORDS public for now, can we continue both PEPs without exposing keyword arguments support?

For example, PEP 576 defines new signature:

typedef PyObject (extended_call_ptr)(PyObject callable, PyObject args, int positional_argcount, PyTupleObject kwnames);

PyTupleObject *kwnames can be PyObject *reserved and "should be NULL always" in document?

PEP 580 is more simple. Keeping CCALL_KEYWORDS private.

I think Cython is the most important user of these PEPs. And Cython creates functions supporting keywords easily, like Python. So this can be worthless...

-- INADA Naoki <songofacandy at gmail.com>



More information about the Python-Dev mailing list