On Tue, Oct 6, 2015 at 6:14 PM, Nathaniel Smith <n...@pobox.com> wrote:
> On Tue, Oct 6, 2015 at 10:10 AM, David Cournapeau <courn...@gmail.com> > wrote: > > > > > > On Tue, Oct 6, 2015 at 6:07 PM, Nathaniel Smith <n...@pobox.com> wrote: > >> > >> On Tue, Oct 6, 2015 at 10:00 AM, Antoine Pitrou <solip...@pitrou.net> > >> wrote: > >> > On Tue, 6 Oct 2015 09:40:43 -0700 > >> > Nathaniel Smith <n...@pobox.com> wrote: > >> >> > >> >> If you need some npy_* function it'd be much better to let us know > >> >> what it is and let us export it in an intentional way, instead of > just > >> >> relying on whatever stuff we accidentally exposed? > >> > > >> > Ok, we seem to be using only the complex math functions (npy_cpow and > >> > friends, I could make a complete list if required). > >> > >> And how are you getting at them? Are you just relying the way that on > >> ELF systems, if two libraries are loaded into the same address space > >> then they automatically get access to each other's symbols, even if > >> they aren't linked to each other? What do you do on Windows? > > > > > > It is possible (and documented) to use any of the npy_ symbols from > npymath > > from outside numpy: > > > http://docs.scipy.org/doc/numpy-dev/reference/c-api.coremath.html#linking-against-the-core-math-library-in-an-extension > > > > The design is not perfect (I was young and foolish :) ), but it has > worked > > fairly well and has been used in at least scipy since the 1.4/1.5 days > IIRC > > (including windows). > > Okay, so just to confirm, it looks like this does indeed implement the > static linking thing I just suggested (so perhaps I am also young and > foolish ;-)) -- from looking at the output of get_info("npymath"), it > seems to add -I.../numpy/core/include to the compiler flags, add > -lnpymath -L.../numpy/core/lib to the linker flags, and then > .../numpy/core/lib contains only libnpymath.a, so it's static linking. > Yes, I was not trying to argue otherwise. If you thought I was, blame it on my poor English (which sadly does not get better as I get less young...). My proposal is to extend this technique for *internal* API, but with the following differences: * the declarations are not put in any public header * we don't offer any way to link to this library, and name it something scary enough that people would have to be foolish (young or not) to use it. David > -n > > -- > Nathaniel J. Smith -- http://vorpus.org > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > https://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion