[issue44727] Stable ABI should avoid `enum`

Petr Viktorin report at bugs.python.org
Fri Jul 23 11:49:43 EDT 2021


Petr Viktorin <encukou at gmail.com> added the comment:

As far as I can see, the current enums in the stable ABI are:

PySendResult from object.h, return value of PyObject_Send:
    typedef enum {
        PYGEN_RETURN = 0,
        PYGEN_ERROR = -1,
        PYGEN_NEXT = 1,
    } PySendResult;
(This is unlikely to change in the future, but added in 3.10, maybe it can be converted to int.)

PyLockStatus from pythread.h, return value of PyThread_acquire_lock_timed:
    typedef enum PyLockStatus {
        PY_LOCK_FAILURE = 0,
        PY_LOCK_ACQUIRED = 1,
        PY_LOCK_INTR
    } PyLockStatus;
(This has been there for a long time so shouldn't be changed now.)

PyGILState_STATE from pystate.h, for PyGILState_Ensure/PyGILState_Release:
    typedef
        enum {PyGILState_LOCKED, PyGILState_UNLOCKED}
        PyGILState_STATE;
(Also is unlikely to change in the future.)

----------
nosy:  -corona10

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44727>
_______________________________________


More information about the Python-bugs-list mailing list