<br><div class="gmail_quote">On Sun, Jan 15, 2012 at 8:46 AM, Stefan Behnel <span dir="ltr"><<a href="mailto:stefan_ml@behnel.de">stefan_ml@behnel.de</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It also seems to me that the wording "has a hash value which never changes<br>
during its lifetime" makes it pretty clear that the lifetime of the hash<br>
value is not guaranteed to supersede the lifetime of the object (although<br>
that's a rather muddy definition - memory lifetime? or pickle-unpickle as<br>
well?).<br></blockquote><div><br></div><div>Lifetime to me means of that specific instance of the object. I would not expect that to survive pickle-unpickle.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
However, this entry in the glossary only seems to have appeared with Py2.6,<br>
likely as a result of the abc changes. So it won't help in defending a<br>
change to the hash function.<br></blockquote><div><br></div><div>Ugh, I really hope there is no code out there depending on the hash function being the same across a pickle and unpickle boundary. Unfortunately the hash function was last changed in 1996 in <a href="http://hg.python.org/cpython/rev/839f72610ae1">http://hg.python.org/cpython/rev/839f72610ae1</a> so it is possible someone somewhere has written code blindly assuming that non-guarantee is true.</div>
<div><br></div><div>-gps</div><div><br></div></div>