]> granicus.if.org Git - python/commitdiff
Update the warning about transporting marshals across boxes with different
authorTim Peters <tim.peters@gmail.com>
Fri, 14 Sep 2001 20:40:13 +0000 (20:40 +0000)
committerTim Peters <tim.peters@gmail.com>
Fri, 14 Sep 2001 20:40:13 +0000 (20:40 +0000)
ideas about sizeof(long).

Doc/lib/libmarshal.tex

index 56864516e4f1ecbdfe643dc96f62f31b799bded4..cd38a8c96d551e154327b2834d151045fc44b265 100644 (file)
@@ -39,19 +39,14 @@ therein are themselves supported; and recursive lists and dictionaries
 should not be written (they will cause infinite loops).
 
 \strong{Caveat:} On machines where C's \code{long int} type has more than
-32 bits (such as the DEC Alpha), it
-is possible to create plain Python integers that are longer than 32
-bits.  Since the current \module{marshal} module uses 32 bits to
-transfer plain Python integers, such values are silently truncated.
-This particularly affects the use of very long integer literals in
-Python modules --- these will be accepted by the parser on such
-machines, but will be silently be truncated when the module is read
-from the \file{.pyc} instead.\footnote{
-  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.}
+32 bits (such as the DEC Alpha), it is possible to create plain Python
+integers that are longer than 32 bits.
+If such an integer is marshaled and read back in on a machine where
+C's \code{long int} type has only 32 bits, a Python long integer object
+is returned instead.  While of a different type, the numeric value is
+the same.  (This behavior is new in Python 2.2.  In earlier versions,
+all but the least-significant 32 bits of the value were lost, and a
+warning message was printed.)
 
 There are functions that read/write files as well as functions
 operating on strings.