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

Charles R Harris charlesr.harris at gmail.com
Tue Jan 26 23:50:46 EST 2010


On Tue, Jan 26, 2010 at 9:24 PM, David Cournapeau <david at silveregg.co.jp>wrote:

> Hi,
>
> 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).
>
>
Hmm, nasty. I don't like that structure anyway, it should be a pointer to a
structure, or somehow not there in the first place. Yeah, it's a
catastrophic "solution". Probably the only compatible fixes are: 1) remove
the new function, 2) put it at the end of the enclosing structure, 3) live
with the ABI breakage. The last is the easiest way to go for us, if not for
others. The first solves the problem, but pretty much vitiates the datetime
work. And moving the function leads to all sorts of nasty work arounds and
code fixes.

Whatever we do, it would be good to figure out some way to avoid this
problem in the future. We could hide access to the array, for instance. But
again, that would require a lot of other code mods. Hmm...

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20100126/7541ffb6/attachment.html>


More information about the NumPy-Discussion mailing list