I think stable ABI keeps symbols, signatures, and memory layouts. I don't think stable ABI keeps all behaviors.
For example, Py_CompileString() is stable ABI. When we add `async` keyword, Py_CompileString() starts raising an Error for source code using `async` name. Is it ABI change? I don't think so. I want to drop Py_UNICODE support in Python 3.12. It is another incompatible change in PyArg_Parse*() *API*. Users can not use "u" format after it. It is an incompatible *API* change, but not an *ABI* change. I suspect we had made many incompatible *API* changes in stable ABIs already. If I am wrong, can we stop keeping stable ABI at Python 3.12? Python 4.0 won't come in foreseeable future. Stable ABI blocks Python evolution. Regards, -- Inada Naoki <songofaca...@gmail.com> _______________________________________________ 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/T7CPD4LHAVU5TMMCZ7CXNMOUL3D7ZR5O/ Code of Conduct: http://python.org/psf/codeofconduct/