On Tue, Sep 22, 2015 at 10:19 PM, Nathaniel Smith <n...@pobox.com> wrote:
> On Tue, Sep 22, 2015 at 3:43 PM, Charles R Harris > <charlesr.har...@gmail.com> wrote: > > > > > > On Mon, Sep 21, 2015 at 10:23 PM, Nathaniel Smith <n...@pobox.com> wrote: > [...] > >> When it comes to evolving these APIs in general: one unfortunate thing > >> about the PyArrayObject changes in 1.7 is that because they were > >> implemented using *inline* functions (/macros) they haven't affected > > > > > > One thing we might consider along the way is separating numpy.multiarray > and > > friends into an actual library plus a module. That way the new numpy api > > would be exposed in the library rather than by importing an array of > > pointers from the module. > > > > I'm not sure whether we'll be able to pull this off at the technical > level? Partly because anything involving cross-platform linker > behavior is a recipe for unpleasantness, but mostly because doing > sliding-window API/ABI tracking requires that we have some way to > check which of multiple APIs a given third-party package is > requesting, and provide a nice error if the one they want isn't > available, and I'm not certain how to accomplish that via the regular > linker. But sure, something to look into when we reach that point :-) > I'd recommend the Henry Ford approach, "Any customer can have a car painted any color that he wants so long as it is *black*". Essentially, an ABI break split between a backward compatible layer on top, and a bare metal layer below, with the latter recommended. We would still need to solve the 'hide the structure" problem, but that is probably unavoidable whatever approach we take. In any case, it might be worthwhile making a list of the functions such a library would expose. I'm not sure how big a problem linking would be, likely Windows would continue to be the largest source of problems if we go the shared library route. Chuck
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion