07.06.21 06:05, Inada Naoki пише:
Since Python 3.8, PyArg_Parse*() APIs and Py_BuildValue() APIs emitted DeprecationWarning when '#' format is used without PY_SSIZE_T_CLEAN defined. In Python 3.10, they raise a RuntimeError, not a warning. Extension modules can not use '#' format with int.
So how about making PY_SSIZE_T_CLEAN not mandatory in Python 3.11? Extension modules can use '#' format with ssize_t, without PY_SSIZE_T_CLEAN defined.
Or should we wait one more version?
Many users still use 3.6 or 3.7. Jumping from 3.7 to 3.11 could break extensions in bad way (crash, truncated data, leaked sensitive information, execution of arbitrary code). Also, deprecation warnings in 3.8 and 3.9 can be easily ignored.
I propose to wait until both of conditions became true:
* 3.7 no longer maintained * 3.10 reaches security-only mode.