M.-A. Lemburg schrieb am 19.12.18 um 23:17:
On 19.12.2018 12:18, Nick Coghlan wrote:
On Tue, 18 Dec 2018 at 22:34, M.-A. Lemburg wrote:
please do consider the fact that the "Limited ABI" has essentially failed to meet expectations. It's hardly used and not really needed anymore.
This simply isn't true - the last time this was asserted, the SIP developers pointed out that PyQT binary extensions rely on the stable ABI to maintain compatibility across Python 3 versions, with only SIP itself needing to be recompiled each release.
Remember that we don't hear from happy users of a feature - we only hear from users for whom the feature is incomplete.
I did not say that it isn't used, but the effort it takes to maintain it and keep it working does not match up to the few gains it has for a few extension writers.
That makes me wonder if it could be maintained as a separate shared library on top of CPython's own API. Not sure if that's beneficial in terms of maintenance work-load, but it could at least make it easier to detect accidental breakages. And it would introduce a well defined API layer between both implementations that is less likely to break for either side.
It turns out that CPython's habit of embedding version numbers in filesystem paths causes additional problems in that regard, and the long life of Python 2.7 meant that folks were needing to build for at least Py2 and Py3 anyway, and hence the opportunity for simplification offered by the stable ABI was limited in practice.
I've been building binaries for several systems and several of my extensions for years, but never found it attractive to have limitations in APIs in return for perhaps being able to leave out a few compiler runs in the release process (most of those ran in parallel anyway, so were not causing major issues).
Dito. Nick, I owe you (and others) a lot for your efforts to invent wheels, and then bring them to Linux. Since then, compiling and distributing binaries is really a solved problem. As CI testing with all supported CPython versions is a development time requirement anyway, building separate release wheels for them is almost for free.
Stefan