[Python-Dev] struct module docs vs reality (original) (raw)

Gregory P. Smith greg at krypto.org
Wed Jan 23 22:53:53 CET 2008


On 1/23/08, Thomas Heller <theller at ctypes.org> wrote:

Gregory P. Smith schrieb: > The documentation for the struct module says: > > http://docs.python.org/dev/library/struct.html#module-struct > _> "short is 2 bytes; int and long are 4 bytes; long long (int64 on Windows) > is 8 bytes" > > and lists 'l' and 'L' as the pack code for a C long. > > As its implemented today, the documentation is incorrect. On an LP64 host > (pretty much any 64-bit linux, bsd or unixish thing) a long is 8 bytes. > > I assume this means there is existing code out there that expects the > current not-as-documented behavior. There is also code out there that > expects the documented behavior but behaves wrong when a 64bit Python is > used. > > I assume I should just fix the documentation and anything in Lib that uses > the struct module incorrectly (zipfile for example) rather than change the > behavior? +1 (actually +100) from me. Thomas

Ok, its a pretty big diff. Much of the standard library is completely broken when used on LP64 platforms. I added it to the bug. I'm running unit tests now. These fixes should go into 2.5.2.

The diff could use some eyes on it, especially the Mac API stuff that I know nothing about but am assuming relies on 32bit values.

http://bugs.python.org/issue1789

Greg -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/python-dev/attachments/20080123/d52b5990/attachment-0001.htm



More information about the Python-Dev mailing list