Antoine Pitrou, 20.03.2011 12:40:
On Sun, 20 Mar 2011 07:32:34 -0400 Jesse Noller wrote:

The reason why there was no mention is probably because no one
intimately familiar with Cython was there, and if they were - it was
not brought up. If Cython supports PyPy - and Jython, and IronPython,
your proposal makes sense. The reason for "pure" python implementation
is so that other implementations can share the exact same standard
library we have today.

Well, realistically, they don't. Some functionality just isn't
satisfied with a slow Python implementation. The io module is a primary
example of that.

Agreed.


(but I don't think a Cython version of io would be fast enough, either)

I assume you mean a compiled version of the pure Python implementation? No, that likely won't be faster and would certainly be much slower than the current C implementation. There's not much Cython can optimise in Python code that mostly does Python-level I/O operations.

However, I'd argue that if the C implementation of the "io" module had been written in Cython code instead of C, it would have ended up being about as fast (or maybe slightly faster due to the reduced calling overhead in Cython), but substantially shorter, more readable and accessible for Python users and consequently easier to maintain. Likely also easier to write in the first place, as most of the code had already been written for the pure Python version, which makes it a "copy&optimise" rather than a "read&rewrite".

Maybe that would make a good topic for the GSoC: rewrite some of the C modules in CPython in Cython, either in pure Python with Cython type annotations, or in Cython code, depending on the type of module and its speed requirements. Rewriting C code in Cython usually goes quite quickly, so the outcome would likely be several modules for one GSoC participant.

IMHO, taking modules that currently only have a C implementation due to performance constraints and rewriting them in Cython is a much more worthwhile thing to do than adding an alternative pure Python implementation that other Python runtimes wouldn't use anyway. And at least IronPython could soon benefit directly from a Cython implementation as well.

Stefan

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to