From: Sting <sti...@gm...> - 2008-03-05 03:02:12
|
Hi, I got a very strange result when use struct.pack(). Please see the following code segment: import struct dataunits = struct.pack('!HHIIIBBHQ', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000, 0x1234) print len(dataunits) dataunits = struct.pack('!HHIIIBBH', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000) print len(dataunits) s = struct.pack('!Q', 0x1234) print len(s) In jython, the result is: 32, 20, 8 while in python, the result is: 28, 20, 8. Is it a bug? -- Best regards! -Sting |
From: David H. <Dav...@sa...> - 2008-03-05 16:05:51
|
Sure looks like a bug. It looks like Jython is putting in 4 bytes of padding before that last 64-bit number ("Q") to align it on a 64-bit boundary. But this doc: http://docs.python.org/lib/module-struct.html clearly states that with the "!" mode, sign and alignment are "standard", meaning no padding is added to align objects. David H From: jyt...@li... [mailto:jyt...@li...] On Behalf Of Sting Sent: Tuesday, March 04, 2008 10:02 PM To: jyt...@li... Subject: [Jython-users] A strange result on struct.pack() in jython 2.2.1 Hi, I got a very strange result when use struct.pack(). Please see the following code segment: import struct dataunits = struct.pack('!HHIIIBBHQ', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000, 0x1234) print len(dataunits) dataunits = struct.pack('!HHIIIBBH', 0x20, 0x1c, 0xffffffff, 0x00000000, 0x0233, 0x05, 0x00, 0x0000) print len(dataunits) s = struct.pack('!Q', 0x1234) print len(s) In jython, the result is: 32, 20, 8 while in python, the result is: 28, 20, 8. Is it a bug? -- Best regards! -Sting |
From: Frank W. <fwi...@gm...> - 2008-03-05 16:17:53
|
On Wed, Mar 5, 2008 at 11:05 AM, David Handy <Dav...@sa...> wrote: > Sure looks like a bug. It looks like Jython is putting in 4 bytes of padding > before that last 64-bit number ("Q") to align it on a 64-bit boundary. But > this doc: Would someone mind filing this as a bug at http://bugs.jython.org/ so it gets looked into in detail (and doesn't get lost)? It's a new bug tracker based on Roundup and hosted by the python.org guys by the way. -Frank |
From: David H. <dav...@gm...> - 2008-03-05 16:19:08
|
I filed a bug: http://bugs.jython.org/issue1003 Interestingly, there is already a bug noting that the implementation of long long is incorrect and causes the struct tests to fail. However, the bug is closed: http://bugs.jython.org/issue577728 - David |
From: Frank W. <fwi...@gm...> - 2008-03-05 16:23:26
|
On Wed, Mar 5, 2008 at 11:19 AM, David Huebel <dav...@gm...> wrote: > I filed a bug: http://bugs.jython.org/issue1003 Thanks! > Interestingly, there is already a bug noting that the implementation > of long long is incorrect and causes the struct tests to fail. > However, the bug is closed: http://bugs.jython.org/issue577728 Hmmm interesting. It looks like there was a patch accepted on that bug in 2002. Perhaps it was only a partial fix or something has changed. Probably best to have a new bug report so we can take another look. -Frank |