New submission from Amaury Forgeot d'Arc <amaur...@gmail.com>:

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.

----------
messages: 166559
nosy: amaury.forgeotdarc, pitrou
priority: high
severity: normal
status: open
title: Python/importlib.h is different on 32bit and 64bit

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue15466>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to