[Python-Dev] Micro-benchmarks for PEP 580

Jeroen Demeyer J.Demeyer at UGent.be
Wed Jul 11 15:45:25 EDT 2018


On 2018-07-11 10:27, Antoine Pitrou wrote:
> I agree PEP 580 is extremely complicated and it's not obvious what the
> maintenance burden will be in the long term.

But the status quo is also very complicated! If somebody would write a 
PEP describing the existing implementation of builtin_function_or_method 
and method_descriptor with all its optimizations, probably you would 
also find it complicated.

Have you actually looked at the existing implementation in 
Python/ceval.c and Object/call.c for calling objects? One of the things 
that PEP 580 offers is replacing 5 (yes, five!) functions 
_PyCFunction_FastCallKeywords, _PyCFunction_FastCallDict, 
_PyMethodDescr_FastCallKeywords, _PyMethodDef_RawFastCallKeywords, 
_PyMethodDef_RawFastCallDict by a single function PyCCall_FASTCALL.

Anyway, it would help if you could say why you (and others) think that 
it's complicated. Sure, there are many details to be considered (for 
example, the section about Descriptor behavior), but those are not 
essential to understand what the PEP does. I wrote the PEP as a complete 
specification, give full details. Maybe I should add a section just 
explaining the core ideas without details?


Jeroen.


More information about the Python-Dev mailing list