Message280856
| Author |
vstinner |
| Recipients |
Don Hatch, Finkregh, benjamin.peterson, dankegel, doko, draghuram, eric.araujo, ggenellina, jary, marhar, mjpieters, nvetoshkin, r_mosaic, ralph.corderoy, vstinner |
| Date |
2016年11月15日.14:53:02 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1479221582.7.0.181004298398.issue1633941@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
I don't see any simple solution to get a 100% reliable I/O stack on Python 2.
Python 3.5 contains a pure Python implementation of the io module: _pyio.FileIO uses os.read() and os.write(). In Python 3.4 and older, the _pyio still used io.FileIO (implemented in C). But try to recall Python 3.0 which had *very* bad I/O performance because its io module was fully implemented in pure Python!
The uvloop project proved that Python can be very efficient for (network) I/O using code written with Cython. But I also know that Mercurial cares of PyPy which is not really Cython-friendly.
Even if fread() bugs are fixed in Python 2.7.x+1, you will still hit bugs on Python 2.7.x and older.
Maybe it can be a strong motivation to pursue your Python 3 efforts :-) |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2016年11月15日 14:53:02 | vstinner | set | recipients:
+ vstinner, doko, mjpieters, ggenellina, draghuram, marhar, r_mosaic, benjamin.peterson, eric.araujo, ralph.corderoy, nvetoshkin, Finkregh, jary, dankegel, Don Hatch |
| 2016年11月15日 14:53:02 | vstinner | set | messageid: <1479221582.7.0.181004298398.issue1633941@psf.upfronthosting.co.za> |
| 2016年11月15日 14:53:02 | vstinner | link | issue1633941 messages |
| 2016年11月15日 14:53:02 | vstinner | create |
|