[Python-Dev] FW: Fixing os.popen on Win32 => is the win32pipe stuff going to be adopted?

M.-A. Lemburg mal@lemburg.com
Thu, 09 Mar 2000 15:42:37 +0100

Trent Mick wrote:
> MAL:
> >     architecture(executable='/usr/local/bin/python', bits='',
> > linkage='') :
> >
> >         Values that cannot be determined are returned as given by the
> >         parameter presets. If bits is given as '', the sizeof(long) is
> >         used as indicator for the supported pointer size.
> Just a heads up, using sizeof(long) will not work on forthcoming WIN64
> (LLP64 data model) to determine the supported pointer size. You would want
> to use the 'P' struct format specifier instead, I think (I am speaking in
> relative ignorance). However, the docs say that a PyInt is used to store 'P'
> specified value, which as a C long, will not hold a pointer on LLP64. Hmmmm.
> The keyword perhaps is "forthcoming".
> This is the code in question in platform.py:
>     # Use the sizeof(long) as default number of bits if nothing
>     # else is given as default.
>     if not bits:
>         import struct
>         bits = str(struct.calcsize('l')*8) + 'bit'

Python < 1.5.2 doesn't support 'P', but anyway, I'll change
those lines according to your suggestion.
Does struct.calcsize('P')*8 return 64 on 64bit-platforms as
it should (probably ;) ?

Marc-Andre Lemburg
Business:                                      http://www.lemburg.com/
Python Pages:                           http://www.lemburg.com/python/