This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author amaury.forgeotdarc
Recipients amaury.forgeotdarc, pitrou
Date 2012-07-27.12:50:58
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1343393459.17.0.272006722766.issue15466@psf.upfronthosting.co.za>
In-reply-to
Content
As shown in a patch in issue15431, frozen.c does not output the same data on different platforms.

The first difference looks like this (extracted from the patch):
-    101,73,255,255,255,255,0,0,0,0,40,10,0,0,0,117,
+    101,108,3,0,0,0,255,127,255,127,3,0,40,10,0,0,

On first row, 'I' followed by 0xFFFFFFFF on 8 bytes.
On second row, 'l' followed by 3 followed by 0xFFFFFFFF (in 3 chunks of 15 bits).
The Python number 0xFFFFFFFF is marshalled with TYPE_INT64 when SIZEOF_LONG>4 (Unix 64bit), and with TYPE_LONG on other platforms (32bit, or win64)

The C "long" type has much less importance in 3.x Python, because PyIntObject does not exist anymore.
I suggest to remove this distinction, and allow TYPE_INT64 on all platforms.

I don't see any compatibility issue, on unmarshalling both methods produce the same object.
I'll try to suggest a patch later today.
History
Date User Action Args
2012-07-27 12:50:59amaury.forgeotdarcsetrecipients: + amaury.forgeotdarc, pitrou
2012-07-27 12:50:59amaury.forgeotdarcsetmessageid: <1343393459.17.0.272006722766.issue15466@psf.upfronthosting.co.za>
2012-07-27 12:50:58amaury.forgeotdarclinkissue15466 messages
2012-07-27 12:50:58amaury.forgeotdarccreate