[Python-Dev] RE: [Patches] [Patch #102915] xreadlines : readlines :: xrange : range
Guido van Rossum
guido@python.org
Tue, 02 Jan 2001 17:53:14 -0500
> [Guido]
> > Quite apart from whether we should enable xreadlines(), could you look
> > into doing a similar thing for MSVC stdio? For most Unix platforms, a
> > cop-out answer is "use glibc" -- but for Windows it may pay to do our
> > own hack.
>
> There's no question about whether it would pay on Windows, because it pays
> big for Perl on Windows. The question is about cost. There's no way to
> *do* it short of the way Perl does it, which is to write a large pile of
> Windows-specific code (roughly the same size and complexity as the glibc
> getline implementation -- check it out, it's not trivial, and glibc exploits
> compiler inlining to make it bearable) relying on reverse-engineered
> accidents of how MS happens to use all the fields from this undocumented
> struct (from MS's stdio.h):
>
> struct _iobuf {
> char *_ptr;
> int _cnt;
> char *_base;
> int _flag;
> int _file;
> int _charbuf;
> int _bufsiz;
> char *_tmpfname;
> };
> typedef struct _iobuf FILE;
>
> in their stdio implementation. Else it won't play correctly with MS's
> stdio. That's A Project. Last year I tried extracting the relevant code
> from Perl, but, as is usual, gave up after unraveling the third (whatever)
> layer of mystery macros with no end in sight. I bet it would take me a
> week. Is it worth that much to you and DC? Since the real Windows experts
> are hanging out at ActiveState, I bet one of them will volunteer to do it
> tonight <wink>.
Yeah. That's too much. Too bad. I'm not holding my breath for
ActiveState though. :-)
--Guido van Rossum (home page: http://www.python.org/~guido/)