<br><br><div class="gmail_quote">On Tue, Jan 26, 2010 at 9:50 PM, Charles R Harris <span dir="ltr"><<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div class="gmail_quote"><div class="im">On Tue, Jan 26, 2010 at 9:24 PM, David Cournapeau <span dir="ltr"><<a href="mailto:david@silveregg.co.jp" target="_blank">david@silveregg.co.jp</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
I have investigated further the ABI issues reported for numpy 1.4.0. I<br>
can confirm that we have broken the ABI for 1.4.0 compared to 1.3.0<br>
(besides the "trivial" cython issue). The good new is that I have found<br>
the issue, the bad news is that I don't know how to (cleanly) fix it.<br>
<br>
The problem was caused by the new datetime support, in particular the<br>
structure PyArray_ArrFuncs which has been modified in a ABI-incompatible<br>
way (the first member cast is bigger because NTYPES is bigger).<br>
<br></blockquote></div><div><br>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.<br>

<br>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...<br><br></div>
</div></blockquote><div><br>Thinking a bit more, for 1.4.1 I think we should just remove the function.<br><br>Chuck<br></div></div>