On 17 Mar 2021, at 19:26, M.-A. Lemburg <mal@egenix.com> wrote:
On 17.03.2021 19:16, Eric Snow wrote:
On Wed, Mar 17, 2021 at 12:08 PM Barry Warsaw <barry@python.org> wrote:
Perhaps an even deeper and more provocative question is whether extension writers should be writing against *any* C API?
Decoupling extensions from the concrete C API could give the interpreter more flexibility for internal change.
Good point! I'm totally on board. :) I suppose that would be a Python 4.0 event and we could have no stable ABI for 4.0. (PEP 384 explicitly applies to Python 3.)
So drop the Python C API which has enabled creating such an elaborate software environment and established the basis for Python's popularity in so many industries ?
This would kill Python's popularity in the (data) science world and beyond, where performance is of essence.
Even with tools like Cython you still need the C API.
I’m fairly sure the proposal is to drop the *stable* ABI, not the entire C API.
Having a stable ABI makes it easier to have packages on PyPI available on day 1 of a new Python release. There’s currently a largish window between a new major Python release and the availability of packages on PyPI. Creating wheels is a lot easier than it was in the past thanks to cloud CI/CD systems and supporting packages, but not all projects use those (and can use those).
That said, the current stable ABI might be too restrictive. Designing an API/ABI that can be kept stable while evolving the implementation is far from trivial, and our current ABI is not there yet.
Ronald —
Twitter / micro.blog: @ronaldoussoren Blog: https://blog.ronaldoussoren.net/