Michael Foord wrote:
Pickle on IronPython doesn't preserve sufficient information to unpickle floats accurately:

CPython:
 >>> a = 1 /3.0
 >>> import cPickle as pickle
 >>> pickle.loads(pickle.dumps(a)) == a
(Michael meant to say that this was True)

IronPython:
 >>> import cPickle as pickle
 >>> a = 1 /3.0
 >>> pickle.loads(pickle.dumps(a)) == a
False

This is actually causing us numerical errors in Resolver One. CPython is actually very careful about its string representation of floats so that this is possible.

I think it's because IP cPickle is relying on the .NET Double.ToString which isn't as truthful as cPython's repr.

The issue's covered here: http://www.python.org/doc/current/tut/node16.html

xtian


--
Christian Muirhead
Resolver Systems
[EMAIL PROTECTED]
We're hiring! http://www.resolversystems.com/jobs/


Resolver Systems Ltd
17a Clerkenwell Road, London EC1M 5RD, UK
VAT No.: GB 893 5643 79 Registered in England and Wales as company number 5467329.
Registered address: 843 Finchley Road, London NW11 8NA, UK
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to