Commit 9afdaffa authored by Raymond Hettinger's avatar Raymond Hettinger

Clarify the reasons why pickle is almost always better than marshal

parent 9b12e001
......@@ -26,7 +26,9 @@ mainly to support reading and writing the ``pseudo-compiled'' code for
Python modules of \file{.pyc} files. Therefore, the Python
maintainers reserve the right to modify the marshal format in backward
incompatible ways should the need arise. If you're serializing and
de-serializing Python objects, use the \module{pickle} module instead.
de-serializing Python objects, use the \module{pickle} module instead
--- the performance is comparable, version independence is guaranteed,
and pickle supports a substantially wider range of objects than marshal.
\refstmodindex{pickle}
\refstmodindex{shelve}
\obindex{code}
......@@ -47,6 +49,12 @@ dictionaries are only supported as long as the values contained
therein are themselves supported; and recursive lists and dictionaries
should not be written (they will cause infinite loops).
\begin{notice}[warning]
Some unsupported types such as subclasses of builtins will appear to marshal
and unmarshal correctly, but in fact, their type will change and the
additional subclass functionality and instance attributes will be lost.
\end{notice}
\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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment