[Numpy-discussion] Fixing numpy 1.4.0 ABI breakage, and a plea for self-contained, small commits

David Cournapeau david at silveregg.co.jp
Tue Jan 26 23:24:29 EST 2010


I have investigated further the ABI issues reported for numpy 1.4.0. I 
can confirm that we have broken the ABI for 1.4.0 compared to 1.3.0 
(besides the "trivial" cython issue). The good new is that I have found 
the issue, the bad news is that I don't know how to (cleanly) fix it.

The problem was caused by the new datetime support, in particular the 
structure PyArray_ArrFuncs which has been modified in a ABI-incompatible 
way (the first member cast is bigger because NTYPES is bigger).

I don't know how to fix this cleanly - the only solution I can see is to 
to split cast into two parts, the first part the same size as before and 
the second part at the end of the structure, with a double-case test 
everytime the cast member is accessed inside the relevant functions....

As an aside, I would like to reiterate my advice for *small* commits. It 
took me nearly 2 hours to find this because the offending commit was > 
4000 LOC, and it would have been very easy to find this were the code 
committed as a set of small self-contained commits.



More information about the NumPy-Discussion mailing list