On Wed, May 2, 2018 at 6:55 PM, Nathaniel Smith <n...@pobox.com> wrote: > On Wed, May 2, 2018, 09:51 Gregory Szorc <gregory.sz...@gmail.com> wrote: >> >> Correct me if I'm wrong, but aren't there downsides with regards to C >> extension compatibility to not having a shared libpython? Or does all the >> packaging tooling "just work" without a libpython? (It's possible I have my >> wires crossed up with something else regarding a statically linked Python.) > > > IIRC, the rule on Linux is that if you build an extension on a statically > built python, then it can be imported on a shared python, but not > vice-versa. Manylinux wheels are therefore always built on a static python > so that they'll work everywhere. (We should probably clean this up upstream > at some point, but there's not a lot of appetite for touching this stuff – > very obscure, very easy to break things without realizing it, not much > upside.) > > On Windows I don't think there is such a thing as a static build, because > extensions have to link to the python dll to work at all. And on MacOS I'm > not sure, though from knowing how their linker works my guess is that all > extensions act like static extensions do on Linux.
Yes, on Windows there's always a python?.dll. macOS is an interesting one. For Anaconda 5.0 I read somewhere (how's that for a useless reference - and perhaps I got the wrong end of the stick) that Python for all Unixen should use a statically linked interpreter so I happily went ahead and did that. Of course I tested it against a good few wheels at the time and everything seemed fine (well, no worse than the usual binary compatibility woes at least) so I went ahead with it. Now that Python 3.7 is around the corner we have a chance to re-evaluate this decision. We have received no binary compat. bugs whatsoever due to this change (we got a few bugs where people used python-config incorrectly either directly or via swig or CMake), were we just lucky? Anyway, it is obviously safer for us to do what upstream does and I will try to post some benchmarks of static vs shared to the list so we can discuss it. I guess it is a little late in the release schedule to propose any such change for 3.7? If not I will try to prepare something. I will discuss it in depth with the rest of the AD team soon too. > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/mingw.android%40gmail.com >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com