mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
Update the warning about transporting marshals across boxes with different
ideas about sizeof(long).
This commit is contained in:
parent
c785f4841c
commit
ad2dc3fc44
1 changed files with 8 additions and 13 deletions
|
@ -39,19 +39,14 @@ therein are themselves supported; and recursive lists and dictionaries
|
||||||
should not be written (they will cause infinite loops).
|
should not be written (they will cause infinite loops).
|
||||||
|
|
||||||
\strong{Caveat:} On machines where C's \code{long int} type has more than
|
\strong{Caveat:} On machines where C's \code{long int} type has more than
|
||||||
32 bits (such as the DEC Alpha), it
|
32 bits (such as the DEC Alpha), it is possible to create plain Python
|
||||||
is possible to create plain Python integers that are longer than 32
|
integers that are longer than 32 bits.
|
||||||
bits. Since the current \module{marshal} module uses 32 bits to
|
If such an integer is marshaled and read back in on a machine where
|
||||||
transfer plain Python integers, such values are silently truncated.
|
C's \code{long int} type has only 32 bits, a Python long integer object
|
||||||
This particularly affects the use of very long integer literals in
|
is returned instead. While of a different type, the numeric value is
|
||||||
Python modules --- these will be accepted by the parser on such
|
the same. (This behavior is new in Python 2.2. In earlier versions,
|
||||||
machines, but will be silently be truncated when the module is read
|
all but the least-significant 32 bits of the value were lost, and a
|
||||||
from the \file{.pyc} instead.\footnote{
|
warning message was printed.)
|
||||||
A solution would be to refuse such literals in the parser,
|
|
||||||
since they are inherently non-portable. Another solution would be to
|
|
||||||
let the \module{marshal} module raise an exception when an integer
|
|
||||||
value would be truncated. At least one of these solutions will be
|
|
||||||
implemented in a future version.}
|
|
||||||
|
|
||||||
There are functions that read/write files as well as functions
|
There are functions that read/write files as well as functions
|
||||||
operating on strings.
|
operating on strings.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue