On Mon, Apr 23, 2012 at 9:16 PM, Chris Barker <chris.barker@noaa.gov> wrote:
> On Mon, Apr 23, 2012 at 12:57 PM, Nathaniel Smith <njs@pobox.com> wrote:
>> Right, this part is specifically about ABI compatibility, not API
>> compatibility -- segfaults would only occur for extension libraries
>> that were compiled against one version of numpy and then used with a
>> different version.
>> Which makes me think -- the ABI will have changed by adding three new
> pointers to the end of the main struct, yes?
No, re-read the original message :-). AFAICT the only place that
*adding* the pointers will break backwards ABI compatibility is for C
subclasses of ndarray, and it's not clear if any exist.
> Of the options on the table, do any of the others involve adding three
> new pointers? What I'm getting at is that while the API and symantics
> may change with a different NA system -- maybe the ABI won't change as
> much (even if those pointers mean something different, but the size of
> the struct could be constant).
If the size of the struct stays the same but the meaning of the
pointers changes, then that's probably not going to lead to any good
results for code which tries to manipulate those pointers using the
wrong semantics. Usually ABI changes are strictly greater than API
changes... though of course it depends on how big exactly the change
is.
-- Nathaniel