<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Feb 2, 2010, at 11:59 PM, David Cournapeau wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Travis Oliphant wrote:<br><blockquote type="cite"><br></blockquote><blockquote type="cite">On Feb 2, 2010, at 11:46 PM, David Cournapeau wrote:<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">On Wed, Feb 3, 2010 at 12:23 PM, David Cournapeau <br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">&lt;david@silveregg.co.jp &lt;<a href="mailto:david@silveregg.co.jp">mailto:david@silveregg.co.jp</a>&gt;&gt; wrote:<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">Sorry, my question was badly worded: besides the metadata pointer, is<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">there any other change related to the metadata infratructure which may<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">potentially change changes the publicly exported structures ? I wonder<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">whereas the metadata infrastructure can be kept in 1.4.x independently<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">of the datetime support without breaking the ABI<br></blockquote></blockquote></blockquote><blockquote type="cite"><blockquote type="cite"><br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">FWIW, keeping the metadata pointer, and only removing datetime-related<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">things makes numpy 1.4.x backward compatible, at least as far as scipy<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">is concerned. So it seems the PyArray_Funcs change is the only<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">ABI-incompatible change.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">What do you mean by the "PyArray_Funcs change"? <br></blockquote><br>The change that broke the ABI is in the PyArray_Funcs structure <br>(ndarrayobject.h):<br><br>struct {<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PyArray_VectorUnaryFunc *cast[NPY_NTYPES];<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br><br>Because NPY_NTYPES is bigger after the datetime change.<br><br>If there is a way to have the datetime not expanding NPY_NTYPES, then I <br>think we can keep the ABI. I tried something with datetimes considered <br>as user types, but did not go very far (most certainly because I have <br>never used this part of the code before).<br></div></blockquote><div><br></div>Thanks for reminding me what the ABI problem is. &nbsp;Yes, that will break it (I was very suspicious that we could change the number of basic types without ABI consequence but didn't have time to think about the real problem). &nbsp;</div><div><br></div><div>My intention in adding the datetime data-type was not to try and preserve ABI in the process.&nbsp;</div><div><br></div><div>-Travis</div><div><font class="Apple-style-span" size="3"><span class="Apple-style-span" style="font-size: 12px;"><span class="Apple-style-span" style="font-size: medium;"><br></span></span></font></div><div apple-content-edited="true"><br class="Apple-interchange-newline"> </div><br></body></html>