On 21May2018 0708, Paul Moore wrote:
On 21 May 2018 at 14:42, Serhiy Storchaka <storch...@gmail.com> wrote:
Is it even acceptable to add a symbol into the limited ABI? I thought
the idea was that if I linked with python3.dll, my code would work
with any version of Python 3? By introducing new symbols, code linked
with the python3.dll shipped with (say) Python 3.8 would fail to run
if executed with the python3.dll from Python 3.5.

The limited API is versioned. If you use only Python 3.5 API (define
Py_LIMITED_API to 0x03050000), the built code will be expected to work on
3.5 and later. In theory.

Thanks, I'd missed that point (I need to go and check my build
process, in that case :-)).

The fact that the headers and python3.def claim different functions are in the limited API basically breaks any ability to use this. You really do need to build with the oldest possible version.

Alternatively, we can try again to get everyone to agree that since their APIs shipped as stable in earlier versions that we need to actually make them stable (or take a breaking backwards incompatible change to make them non-stable). Last time Zach and I attempted this we got nowhere. (There's a bug on bpo somewhere with details and helper scripts, as well as unrecorded discussions from the sprints a couple years ago.)

Sorry to be the bearer of bad news.

Cheers,
Steve
_______________________________________________
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

Reply via email to