[Python-Dev] PEP 384 status

Antoine Pitrou solipsis at pitrou.net
Sun Aug 29 17:43:14 CEST 2010


On Sun, 29 Aug 2010 22:16:57 +1000
Nick Coghlan <ncoghlan at gmail.com> wrote:
> 
> However, since even platforms other than Windows aren't immune to
> version upgrades of the standard C runtime, I'm still more comfortable
> with the idea that the strict ABI should refuse to pass FILE* pointers
> across extension module boundaries.

I'm not sure what the worry is. Under an Unix-like system, there
shouldn't be any situation where two different versions of the libc are
loaded in the same process. And since FILE* is an opaque pointer
whose referent is only accessed by the libc, things should be fine.

(actually, I'm baffled that Windows has such problems, and I would
suggest that it's not Python's job to shield Windows
application developers from Windows-specific development issues)

> The advantage of the preprocessor
> macro approach is that it allows us to provide assistance with
> operations on FILE* pointers while still obeying that restriction
> regardless of the specific compilers involved in creating the Python
> and extension module binaries.

An inline function should provide the same advantage since it will be
compiled with the calling library/executable, rather than the Python
DLL.

Regards

Antoine.


More information about the Python-Dev mailing list