[Cython] Rewriting/compiling parts of CPython's stdlib in Cython

Stefan Behnel stefan_ml at behnel.de
Fri Mar 25 14:42:39 CET 2011


Sturla Molden, 25.03.2011 14:03:
> Den 24.03.2011 20:38, skrev Robert Bradshaw:
>> I started a list at http://wiki.cython.org/Unsupported . I'd say we
>> can be as compatible as Jython/IronPython is, and more than CPython is
>> between minor versions. I would be happy with a short, well-justified
>> list of differences. This will be clearer once the community (which
>> we're a part of) defines what Python vs. implementation details means.
>
> Looking at Guido's comment, Cython must be able to compile all valid Python
> if this will have any chance of success.

I think there are two levels of required compatibility, the lower one of 
which applies to a reimplementation of C modules in Cythen. That's the 
reason why I see that as the more worthwhile goal for now.


> Is the plan to include Cython in the standard library? I don't think a
> large external dependency like Cython will be accepted unless it's a part
> of the CPython distribution.

It was the plan a while ago, but the problem is that Cython's evolution 
(and stability) isn't very much in line with that of CPython. I'm not as 
pessimistic as you seem to be, though. From the POV of CPython, Cython is 
basically just a build tool. We could try to come up with a release series 
that we consider stable enough to base CPython on it. If we agree to 
maintain that for the whole lifetime of the corresponding CPython 
release(s), it wouldn't necessarily have to be part of CPython itself 
(although it could...)


> Why stop with the standard library? Why not implement the whole CPython
> interpreter in Cython?

No-one said we'd stop there. ;)

However, going down that route will quickly turn into a problem of 
boot-strapping. How would you run Cython without a Python interpreter? 
Would you need an old interpreter installed in order to run Cython to build 
a new one? Currently, you only need a C compiler and cmmi tools. I could 
easily understand anyone who'd reject entering into such a recursive 
dependency.

Stefan


More information about the cython-devel mailing list