<br><br><div class="gmail_quote">On Sat, May 9, 2009 at 11:45 PM, David Cournapeau <span dir="ltr"><<a href="mailto:cournape@gmail.com">cournape@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;">
Hi,<br>
<br>
I worked on some code to detect C API mismatches both for developers<br>
and for users:<br>
<br>
<a href="http://github.com/cournape/numpy/tree/runtime_feature" target="_blank">http://github.com/cournape/numpy/tree/runtime_feature</a><br>
<br>
It adds the following:<br>
 - if a numpy or ufunc function is added in the C API without the<br>
NPY_FEATURE_VERSION to be updated, a warning is generated at built<br>
time (the warning is turned into an exception for release)<br>
 - I added a function PyArray_GetNDArrayCFeatureVersion which returns<br>
the C API version, and the version is checked in import_array. If the<br>
compile-time version > import-time version, an import error is raised,<br>
so the following happens (assuming the ABI is not changed).<br>
<br>
So we keep backward compatibility (building an extension with say<br>
numpy 1.2.1 will still work after installing numpy 1.3), and forward<br>
incompatibility is detected (building an extension with numpy 1.3.0<br>
and importing it with installed numpy 1.2.1 will fail).<br>
<br>
Ironically, adding the function means that we have to add one function<br>
to the C API, so this will not be useful for numpy < 1.4, but I don't<br>
think it is possible to do it without modifying the C API.<br>
</blockquote><div><br>Why not just use the current API to get the number? That looks easy to do, what is the problem? I'll fix it up if you want.<br><br>Chuck <br></div><br></div><br>