On 1/23/08, Thomas Heller <[EMAIL PROTECTED]> 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
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com