[issue4258] Use 30-bit digits instead of 15-bit digits for Python integers.
STINNER Victor
report at bugs.python.org
Wed Nov 5 01:29:09 CET 2008
STINNER Victor <victor.stinner at haypocalc.com> added the comment:
> Note that to avoid "bad marshal data" errors,
> you'll probably need to do a 'make distclean'
> before rebuilding with this patch.
I saw that you choosed to use the base 2^30 for marshal. For a better
portability (be able to use .pyc generated without your patch), you
may keep the base 2^15. I implemented that in my GMP patch (manual
conversion from/to base 2^15).
If we change the marshal format of long, the magic number should be
different (we might use a tag like the "full unicode" tag used in
Python3 magic number) and/or the bytecode (actual bytecode is 'l').
The base should be independent of the implementation, like Python does
with text: UTF-8 for files and UCS-4 in memory. We may use the base
2^8 (256) or another power or 2^8 (2^16, 2^32, 2^64?). The base 256
sounds interresting because any CPU is able to process 8 bits digits.
Cons: Use a different bases makes Python slower for loading/writing
from/to .pyc.
----------
nosy: +haypo
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4258>
_______________________________________
More information about the Python-bugs-list
mailing list