Victor Stinner wrote:
First, PyPy tried to only implement a subset of the C API and promote cffi for incompatible C extensions. This approach failed.
Just to be clear: I don't think any of the PyPy devs assumed the huge Python c-extension ecosystem would suddenly run to adopt CFFI, so calling our effort to emulate the C-API a consequence of any failure is a bit of an exaggeration.
So PyPy decided to be as compatible as possible with CPython for the C API. Now PyPy basically supports the whole C API and doesn't want to drop support for the C extensions "abusing" the C API, like using macros as l-value.
I think it would be more accurate to say that PyPy, as a small project in the huge Python ecosystem, is trying to support any C-API used widely by the community. If there is a common PyPy voice (after all, we are also a project with many opinions), we don't "not want to drop support" nor "want to drop support" for any commonly used C-API interfaces, rather we want to stay out of this argument and promote alternatives such as CFFI, cppyy, and HPy instead.
Victor
Matti