[Python-Dev] PEP 399: Pure Python/C Accelerator Module Compatibiilty Requirements

Stefan Behnel stefan_ml at behnel.de
Tue Apr 19 12:01:44 CEST 2011


Nick Coghlan, 19.04.2011 10:57:
> On Tue, Apr 19, 2011 at 3:06 PM, Stefan Behnel wrote:
>> I think this social problem of the PEP can only be solved if the CPython
>> project stops doing the major share of the stdlib maintenance, thus freeing
>> its own developer capacities to focus on CPython related improvements and
>> optimisations, just like the other implementations currently do. I'm not
>> sure we want that at this point.
>
> We've made a start on that aspect by granting CPython access to
> several of the core developers on the other VMs. The idea being that
> they can update the pure Python versions of modules directly rather
> than having to wait for one of us to do it on their behalf.
>
> Of course, as Maciej pointed out, that is currently hindered by the
> fact that the other VMs aren't targeting 3.3 yet, and that's where the
> main CPython development is happening.

A related question is: when other Python VM projects try to port a given C 
module, would they actually invest the time to write a pure Python version 
that may or may not run within acceptable performance bounds for them, or 
would they prefer saving time by writing only a native implementation 
directly for their VM for performance reasons? Maybe both, maybe not. If 
they end up writing a native version after prototyping in Python, is the 
prototype worth including in the shared stdlib, even if its performance is 
completely unacceptable for everyone? Or, if they write a partial module 
and implement another part of it natively, would the incomplete 
implementation qualify as a valid addition to the shared stdlib?

Implementing a 100% compatible and "fast enough" Python version of a module 
is actually a rather time consuming task. I think we are expecting some 
altruism here that is easily sacrificed for time constraints, in any of the 
Python VM projects. CPython is just in the unlucky position of representing 
the status-quo.

Stefan



More information about the Python-Dev mailing list