_PyObject_FastCall() (added in the issue #27128) already supports keyword arguments for C functions, but not Python functions.
Attached patch adds support for keyword arguments in _PyFunction_FastCall(), to allow to use _PyObject_FastCall() in more cases.
Examples of functions that can be modified to _PyObject_FastCall() with this change:
* builtin_sorted()
* builtin___build_class__()
* init_subclass()
* PyEval_CallObjectWithKeywords(func, NULL, kwargs)
* methoddescr_call(), classmethoddescr_call(), wrapperdescr_call()
* PyFile_GetLine()
Moreover, supporting keywords is required for another more important step: add a new METH_CALL calling convention for C functions. |