Steve Dower wrote:
> The advice I've been given on FILE* is that there's probably no way to make it
> work correctly due to its internal buffering. Unfortunately, there are more
> places where this leaks through than just the APIs using them - extensions 
> that
> call os.dup(fd), PyNumber_AsSsize_t() and pass the result to _fdopen() (for
> example, numpy) are simply going to break with mismatched fd's and there's no
> way to detect it at compile time. It's hard to tell how wide-ranging this sort
> of issue is going to be, but it certainly has the potential to break badly...

After thinking about this and looking into it, I think the breakage caused by 
this sort of code is so bad that we should be discouraging it. The internal 
buffering, especially on stdin/stdout/stderr, will wreak havoc on any 
extensions that use them, and code that casts fds to ints within Python will 
simply crash. The loss of confidence here may be irrecoverable - I don't think 
we should be making it easy for people to get into this situation.

We could make it opt-in for extension modules, but I think that situation is 
worse than the current one. The best solution is always going to be for users 
to install VS 2008, or at least VC9 (I'm working on making this easier, but it 
requires getting the attention of a lot of busy people...).

Any thoughts?

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

Reply via email to