[Numpy-discussion] Status of NumPy and Python 3.3

Ronan Lamy ronan.lamy@gmail....
Mon Jul 30 11:10:53 CDT 2012


Le lundi 30 juillet 2012 à 04:57 +0100, Ronan Lamy a écrit :
> Le lundi 30 juillet 2012 à 02:00 +0100, Ronan Lamy a écrit :
> 
> > 
> > Anyway, I managed to compile (by blanking
> > numpy/distutils/command/__init__.py) and to run the tests. I only see
> > the 2 pickle errors from your latest gist. So that's all good!
> 
> And the cause of these errors is that running the test suite somehow
> corrupts Python's internal cache of bytes objects, causing the
> following:
> >>> b'\x01XXX'[0:1]
> b'\xbb'

The culprit is test_pickle_string_overwrite() in test_regression.py. The
test actually tries to check for that kind of problem, but on Python 3,
it only manages to trigger it without detecting it. Here's a simple way
to reproduce the issue:

>>> a = numpy.array([1], 'b')
>>> b = pickle.loads(pickle.dumps(a))
>>> b[0] = 77
>>> b'\x01  '[0:1]
b'M'

Actually, this problem is probably quite old: I can see it in 1.6.1 w/
Python 3.2.3. 3.3 only makes it more visible. 

I'll open an issue on GitHub ASAP.



More information about the NumPy-Discussion mailing list