uqfoundation / dill

serialize all of Python

Home Page:http://dill.rtfd.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cross-dill-version function serialization problems

benclifford opened this issue · comments

I've encountered a few issues along with the Globus Compute developers where functions pickled with one version of dill will not unpickle with another version (0.3.5.1 vs 0.3.6) -- I'm unclear whether this is an intended incompatibility or a bug.

If it's intended incompatibility, we'll use that to inform our future packaging and user requirements; if it's a bug, I'll put some more effort into debugging it and update this issue.

Serialized objects should be compatible across different versions of dill. This is the case, and has been generally the case across all versions. There have been a few exceptions where certain objects break across version change. This has been generally due to a change from a PR that removes (or otherwise modifies) a dill internal helper function or variable which is used to (un)pickle an object.

As it started getting harder and harder to preserve all dill internals across bug fixes and feature improvements, the dill._shims mechanism that provides a way to "shim" in legacy-version dependent behavior. So, in theory, there shouldn't be any breakage across current and future dill versions, and if breakage is found, one can add a shim.

Feel free to reopen this if needed.