On 07. 12. 21 20:58, Guido van Rossum wrote:
On Tue, Dec 7, 2021 at 11:02 AM Christian Heimes <christ...@python.org <mailto:christ...@python.org>> wrote:

    On 07/12/2021 19.28, Guido van Rossum wrote:
     > I assume it would be insensitive to ask whether we could just get
    rid of
     > the stable ABI altogether and focus on the limited API? Just tell
     > everyone they have to rebuild binary wheels for every Python feature
     > release. Presumably the deprecation of the stable ABI itself would
     > require a two-release waiting period. But maybe it would be worth
    it,
     > given how subtle it is to do the historical research about even a
    single
     > function.

    The stable ABI is useful for Python packages that ship binary wheels.

    Take PyCA cryptography [1] as an example. Alex and Paul already build,
    upload, and ship 12 abi3 wheels for each release and combinations of
    CPU
    arch, platform, and libc ABI. Without a stable ABI they would have to
    create a total of 60 binary abi3 wheels for Python 3.6 to 3.10. The
    number will only increase over time. Python 3.6 is very common on
    LTS/Enterprise Linux distros.


Thanks, that's a very useful example.

    If the current stable ABI makes performance improvements too complex
    then we should consider to define a new stable ABI with less symbols.


But then we will run into backwards compatibility concerns. Suppose we want to delete *one* functions from the stable ABI. How many releases do we have to wait before we can actually delete (as opposed to just deprecate) it? It sounds like you're saying it would take 5 releases, i.e. if we deprecate it in 3.11, we can delete it in 3.16. It would probably be easier to just not bother with the deprecation.

That really depends on what function we'd want to remove. There are usually alternatives to deleting things, but the options depend on the function. If we run out of other options we can make the function always fail or make it leak memory. And the regular backwards compatibility policy gives us 2 years to figure something out :)


It is possible that we'll need a new stable ABI for nogil, though, since refcounting is one of the few areas where even the stable ABI uses direct struct access rather than functions.
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/WN7TBSV6LM24X6CIEQQDG63OYPIR5ZLU/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to