On 26 Sep 2021, at 19:03, Christian Heimes
wrote: On 26/09/2021 13.07, jack.jansen@cwi.nl wrote:
The problem with the stable ABI is that very few developers are targeting it. I’m not sure why not, whether it has to do with incompleteness of the ABI, or with issues targeting it easily and your builds and then having pip/PyPI do the right things with wheels and all that. I’ve been on the capi-sig mailing list since its inception in 2007, but the discussions are really going over my head. I don’t understand what the problems are that keep people from targeting the stable ABI (or the various other attempts at standardising extensions over Python versions).
It takes some effort to port old extensions to stable ABI. Several old APIs are not supported in stable ABI extensions. For example developers have to port static type definitions to heap types. It's not complicated, but it takes some effort.
The stable ABI is also not complete, although it should be complete enough for a lot of projects. A, fairly esoteric, issue I ran into is that it is currently not possible to define a class with a non-default meta class using the type-spec API (AFAIK), see #15870. And as you write “it takes some effort”, that alone likely reduces the amount of projects that migrate to the stable ABI esp. for projects that already have a CI/CD setup that creates binary wheels for you (for example using cibuildwheel). Ronald — Twitter / micro.blog: @ronaldoussoren Blog: https://blog.ronaldoussoren.net/