Le 28/07/2019 à 01:49, Wes McKinney a écrit :
> On Sat, Jul 27, 2019 at 4:38 PM Uwe L. Korn <uw...@xhochy.com> wrote:
>>
>> The PIMPL is a thing I would trade a bit of performance as it brings ABI 
>> stability. This is something that will help us making Arrow usage in 
>> thirdparty code much simpler.
>>
> 
> I question whether ABI stability (at the level of the shared library
> ABI version) will ever be practical in this project. In the case of
> NumPy, there are very few C data structures that could actually
> change. In this library we have a great deal more data structures, I
> would guess 100s of distinct objects taking into account each C++
> class in the library. It's one thing to be API forward compatible from
> major version to major version (with warnings to allow for graceful
> deprecations) but such forward compatibility strategies are not so
> readily available when talking about the composition of C++ classes
> (considering that virtual function tables are part of the ABI).
> 
> In any case, as a result of this, I'm not comfortable basing technical
> decisions on the basis of ABI stability considerations.

We could at some point define a "stable ABI subset" (for example the
core classes Array, ArrayData, etc.).  But I'm not sure whether that
would be sufficient for users.

Also in any case it would need someone to maintain the regular toolkit
and continuous integration hooks to prevent ABI breakage.  Otherwise
it's pointless promising something that we can't efficiently monitor.

Regards

Antoine.

Reply via email to