[Python-Dev] [PEP 576/580] Reserve one type slot for Cython

Jeroen Demeyer J.Demeyer at UGent.be
Mon Jul 30 10:40:00 EDT 2018


On 2018-07-30 15:35, INADA Naoki wrote:
> As repeatedly said, PEP 580 is very complicated protocol
> when just implementing callable object.

Can you be more concrete what you find complicated? Maybe I can improve 
the PEP to explain it more. Also, I'm open to suggestions to make it 
less complicated.

> It is optimized for implementing custom method object, although
> almost only Cython want the custom method type.

For the record, Numba also seems interested in the PEP:
https://groups.google.com/a/continuum.io/d/msg/numba-users/2G6k2R92MIM/P-cFKW7xAgAJ

> I'm not sure adding such complicated protocol almost only for Cython.
> If CyFunction can be implemented behind PEP 576, it may be better.

I recall my post 
https://mail.python.org/pipermail/python-dev/2018-July/154238.html 
explaining the main difference between PEP 576 and PEP 580.

I would like to stress that PEP 580 was designed for maximum 
performance, both today and for future extensions (such as calling with 
native C types).

> * PEP 576 and 580 are not strictly mutually exclusive; PEP 576 may be
>    accepted in addition to PEP 580

I don't think that this is a good idea: you will mostly end up with the 
disadvantages of both approaches.


Jeroen.


More information about the Python-Dev mailing list