
On Wed, Feb 2, 2022 at 3:41 PM Eric Snow <ericsnowcurrently@gmail.com> wrote:
I'd also like to actually get rid of _Py_IDENTIFIER(), along with other related API including ~14 (private) C-API functions.
FTR, here is the (private/internal) C-API affected by getting rid of _Py_IDENTIFIER(): * 21 C-API functions with `_Py_Identifer` parameters - would be dropped + _PyUnicode_FromId() + _PyUnicode_EqualToASCIIId() + _PyObject_CallMethodId() + _PyObject_CallMethodId_SizeT() + _PyObject_CallMethodIdObjArgs() + _PyObject_VectorcallMethodId() + _PyObject_CallMethodIdNoArgs() + _PyObject_CallMethodIdOneArg() + _PyEval_GetBuiltinId() + _PyDict_GetItemId() + _PyDict_SetItemId() + _PyDict_DelItemId() + _PyDict_ContainsId() + _PyImport_GetModuleId() + _PyType_LookupId() + _PyObject_LookupSpecial() + _PyObject_GetAttrId() + _PyObject_SetAttrId() + _PyObject_LookupAttrId() + _PySys_GetObjectId() + _PySys_SetObjectId() * 7 new internal functions to replace the _Py*Id() functions that didn't already have a normal counterpart + _PyObject_CallMethodObj() + _PyObject_IsSingleton() + _PyEval_GetBuiltin() + _PySys_SetAttr() + _PyObject_LookupSpecial() (with PyObject* param) + _PyDict_GetItemWithError() + _PyObject_CallMethod() * the runtime state related to identifiers - would be dropped * _Py_Identifier, _Py_IDENTIFIER(), _Py_static_string() - would be dropped -eric