[Catalog-sig] RFC: PEP 243: Module Repository Upload Mechanism

Martin v. Loewis martin@loewis.home.cs.tu-berlin.de
Sun, 25 Mar 2001 19:40:00 +0200


> On Sat, Mar 24, 2001 at 01:54:04PM +0100, Martin v. Loewis wrote:
> >mounted, or is missing from the kernel configuration. IMO, the right
> >behaviour in this case is to produce an exception at run-time (whether
> 
> Sure, but how do you do that for C extension modules which use OS features
> you don't have (like LFS)?

I'm not sure I understand the question. The Python core enables or
disables large file API usage at configuration time, by calling
ftell64 instead of ftell, or using long objects to represent inode
numbers instead of integers. That is of no concern for extension
modules.

Even if an extension module would use the transitional large file API
(i.e. the *64 functions), that is foremost a concern of the C library,
not the operating system kernel. E.g. on Linux, ftell64 is always
available (atleast since glibc 2, and perhaps longer), no matter
whether the kernel supports it or not. If the C extension module might
expect a feature not to work properly (e.g. the Unicode API on Win98),
it can perform run-time checks and fall-back, or just raise an
exception if the C library function fails.

Regards,
Martin