# This file lists the contents of the Limited API and Stable ABI.
# Please append new items at the end.

# The syntax of this file is not fixed.
# It is designed to be read only by Tools/stable_abi.py, which can change
# without notice.

# For the history of the stable ABI prior to this file,
# see the history of PC/python3dll.c and before that, PC/python3.def,
# and PC/pythonXYstub.def


# The current format is a simple line-based one with significant indentation.
# Anything after a hash is a comment.

# There are these kinds of top-level "items":
# - struct: A C struct. Currently this file does not distinguish between:
#   - opaque structs, which the Limited API only handles via pointers
#     (so these can change at any time)
#   - structs where only certain members are part of the stable ABI (e.g.
#     PyObject)
#   - structs which must not be changed at all (e.g. PyType_Slot, which is
#     fully defined and used in arrays)
# - function: A function that must be kept available (and exported, i.e. not
#   converted to a macro).
# - const: A simple value, defined with `#define`.
# - macro: A preprocessor macro more complex than a simple `const` value.
# - data: An exported object, which must continue to be available but its exact
#   value may change.
# - typedef: A C typedef which is used in other definitions in the limited API.
#   Its size/layout/signature must not change.

# Each top-level item can have details defined below it:
# - added: The version in which the item was added to the stable ABI.
# - ifdef: A feature macro: the item is only available if this macro is defined
# - abi_only: If present, the item is not part of the Limited API, but it *is*
#   part of the stable ABI. The item will not show up in user-facing docs.
#   Typically used for:
#   - private functions called by public macros, e.g. _Py_BuildValue_SizeT
#   - items that were part of the limited API in the past, and must remain part
#     of the stable ABI.
#   - a combination of the above (functions that were called by macros that
#     were public in the past)

# For structs, one of the following must be set:
# - opaque: The struct name is available in the Limited API, but its members
#   are not. Users must manipulate it via pointers.
# - members: Space-separated list of members which are part of the
#   Limited API and Stable ABI.
#   Members that aren't listed are not accessible to applications.
# - full-abi: The entire struct -- all its members and its size -- is part of
#   the Stable ABI, and must not change.

# Removing items from this file is generally not allowed, and additions should
# be considered with that in mind. See the devguide for exact rules:
#    https://devguide.python.org/c-api/#limited-api

# User-facing docs are at:
#    https://docs.python.org/3/c-api/stable.html#stable


# Mentioned in PEP 384:

struct PyObject
    added 3.2
    members ob_refcnt ob_type
struct PyVarObject
    added 3.2
    members ob_base ob_size
struct PyMethodDef
    added 3.2
    full-abi
struct PyMemberDef
    added 3.2
    full-abi
struct PyGetSetDef
    added 3.2
    full-abi
struct PyModuleDef_Base
    added 3.2
    full-abi
struct PyModuleDef
    added 3.2
    full-abi
struct PyStructSequence_Field
    added 3.2
    full-abi
struct PyStructSequence_Desc
    added 3.2
    full-abi
struct PyType_Slot
    added 3.2
    full-abi
struct PyType_Spec
    added 3.2
    full-abi
struct PyThreadState
    added 3.2
    opaque
struct PyInterpreterState
    added 3.2
    opaque
struct PyFrameObject
    added 3.2
    opaque
struct symtable
    added 3.2
    opaque
struct PyWeakReference
    added 3.2
    opaque
struct PyLongObject
    added 3.2
    opaque
struct PyTypeObject
    added 3.2
    opaque

function PyType_FromSpec
    added 3.2

const Py_tp_dealloc
    added 3.2
const Py_tp_getattr
    added 3.2
const Py_tp_setattr
    added 3.2
const Py_tp_repr
    added 3.2
const Py_tp_hash
    added 3.2
const Py_tp_call
    added 3.2
const Py_tp_str
    added 3.2
const Py_tp_getattro
    added 3.2
const Py_tp_setattro
    added 3.2
const Py_tp_doc
    added 3.2
const Py_tp_traverse
    added 3.2
const Py_tp_clear
    added 3.2
const Py_tp_richcompare
    added 3.2
const Py_tp_iter
    added 3.2
const Py_tp_iternext
    added 3.2
const Py_tp_methods
    added 3.2
const Py_tp_base
    added 3.2
const Py_tp_descr_get
    added 3.2
const Py_tp_descr_set
    added 3.2
const Py_tp_init
    added 3.2
const Py_tp_alloc
    added 3.2
const Py_tp_new
    added 3.2
const Py_tp_members
    added 3.2
const Py_tp_getset
    added 3.2
const Py_tp_free
    added 3.2
const Py_tp_is_gc
    added 3.2
const Py_tp_bases
    added 3.2
const Py_tp_del
    added 3.2
const Py_nb_add
    added 3.2
const Py_nb_subtract
    added 3.2
const Py_nb_multiply
    added 3.2
const Py_nb_remainder
    added 3.2
const Py_nb_divmod
    added 3.2
const Py_nb_power
    added 3.2
const Py_nb_negative
    added 3.2
const Py_nb_positive
    added 3.2
const Py_nb_absolute
    added 3.2
const Py_nb_bool
    added 3.2
const Py_nb_invert
    added 3.2
const Py_nb_lshift
    added 3.2
const Py_nb_rshift
    added 3.2
const Py_nb_and
    added 3.2
const Py_nb_xor
    added 3.2
const Py_nb_or
    added 3.2
const Py_nb_int
    added 3.2
const Py_nb_float
    added 3.2
const Py_nb_inplace_add
    added 3.2
const Py_nb_inplace_subtract
    added 3.2
const Py_nb_inplace_multiply
    added 3.2
const Py_nb_inplace_remainder
    added 3.2
const Py_nb_inplace_power
    added 3.2
const Py_nb_inplace_lshift
    added 3.2
const Py_nb_inplace_rshift
    added 3.2
const Py_nb_inplace_and
    added 3.2
const Py_nb_inplace_xor
    added 3.2
const Py_nb_inplace_or
    added 3.2
const Py_nb_floor_divide
    added 3.2
const Py_nb_true_divide
    added 3.2
const Py_nb_inplace_floor_divide
    added 3.2
const Py_nb_inplace_true_divide
    added 3.2
const Py_nb_index
    added 3.2
const Py_sq_length
    added 3.2
const Py_sq_concat
    added 3.2
const Py_sq_repeat
    added 3.2
const Py_sq_item
    added 3.2
const Py_sq_ass_item
    added 3.2
const Py_sq_contains
    added 3.2
const Py_sq_inplace_concat
    added 3.2
const Py_sq_inplace_repeat
    added 3.2
const Py_mp_length
    added 3.2
const Py_mp_subscript
    added 3.2
const Py_mp_ass_subscript
    added 3.2

typedef Py_uintptr_t
    added 3.2
typedef Py_intptr_t
    added 3.2
typedef Py_ssize_t
    added 3.2
typedef unaryfunc
    added 3.2
typedef binaryfunc
    added 3.2
typedef ternaryfunc
    added 3.2
typedef inquiry
    added 3.2
typedef lenfunc
    added 3.2
typedef ssizeargfunc
    added 3.2
typedef ssizessizeargfunc
    added 3.2
typedef ssizeobjargproc
    added 3.2
typedef ssizessizeobjargproc
    added 3.2
typedef objobjargproc
    added 3.2
typedef objobjproc
    added 3.2
typedef visitproc
    added 3.2
typedef traverseproc
    added 3.2
typedef destructor
    added 3.2
typedef getattrfunc
    added 3.2
typedef getattrofunc
    added 3.2
typedef setattrfunc
    added 3.2
typedef setattrofunc
    added 3.2
typedef reprfunc
    added 3.2
typedef hashfunc
    added 3.2
typedef richcmpfunc
    added 3.2
typedef getiterfunc
    added 3.2
typedef iternextfunc
    added 3.2
typedef descrgetfunc
    added 3.2
typedef descrsetfunc
    added 3.2
typedef initproc
    added 3.2
typedef newfunc
    added 3.2
typedef allocfunc
    added 3.2
typedef PyCFunction
    added 3.2
typedef PyCFunctionWithKeywords
    added 3.2
typedef PyCapsule_Destructor
    added 3.2
typedef getter
    added 3.2
typedef setter
    added 3.2
typedef PyOS_sighandler_t
    added 3.2
typedef PyGILState_STATE
    added 3.2
typedef Py_UCS4
    added 3.2

macro Py_BEGIN_ALLOW_THREADS
    added 3.2
macro Py_BLOCK_THREADS
    added 3.2
macro Py_UNBLOCK_THREADS
    added 3.2
macro Py_END_ALLOW_THREADS
    added 3.2

# The following were added in PC/python3.def in the initial stable ABI commit,
# 4d0d471a8031de90a2b1ce99c4ac4780e60b3bc9,
# and later amendments in 3.2:
# 0d012f284be829c6217f60523db0e1671b7db9d9
# c83bc3c1fbed14d27a5de3032e24d2cf006a7c4b

function PyArg_Parse
    added 3.2
function PyArg_ParseTuple
    added 3.2
function PyArg_ParseTupleAndKeywords
    added 3.2
function PyArg_UnpackTuple
    added 3.2
function PyArg_VaParse
    added 3.2
function PyArg_VaParseTupleAndKeywords
    added 3.2
function PyArg_ValidateKeywordArguments
    added 3.2
data PyBaseObject_Type
    added 3.2
function PyBool_FromLong
    added 3.2
data PyBool_Type
    added 3.2
data PyByteArrayIter_Type
    added 3.2
function PyByteArray_AsString
    added 3.2
function PyByteArray_Concat
    added 3.2
function PyByteArray_FromObject
    added 3.2
function PyByteArray_FromStringAndSize
    added 3.2
function PyByteArray_Resize
    added 3.2
function PyByteArray_Size
    added 3.2
data PyByteArray_Type
    added 3.2
data PyBytesIter_Type
    added 3.2
function PyBytes_AsString
    added 3.2
function PyBytes_AsStringAndSize
    added 3.2
function PyBytes_Concat
    added 3.2
function PyBytes_ConcatAndDel
    added 3.2
function PyBytes_DecodeEscape
    added 3.2
function PyBytes_FromFormat
    added 3.2
function PyBytes_FromFormatV
    added 3.2
function PyBytes_FromObject
    added 3.2
function PyBytes_FromString
    added 3.2
function PyBytes_FromStringAndSize
    added 3.2
function PyBytes_Repr
    added 3.2
function PyBytes_Size
    added 3.2
data PyBytes_Type
    added 3.2
function PyCFunction_Call
    added 3.2
function PyCFunction_GetFlags
    added 3.2
function PyCFunction_GetFunction
    added 3.2
function PyCFunction_GetSelf
    added 3.2
function PyCFunction_NewEx
    added 3.2
data PyCFunction_Type
    added 3.2
function PyCallIter_New
    added 3.2
data PyCallIter_Type
    added 3.2
function PyCallable_Check
    added 3.2
function PyCapsule_GetContext
    added 3.2
function PyCapsule_GetDestructor
    added 3.2
function PyCapsule_GetName
    added 3.2
function PyCapsule_GetPointer
    added 3.2
function PyCapsule_Import
    added 3.2
function PyCapsule_IsValid
    added 3.2
function PyCapsule_New
    added 3.2
function PyCapsule_SetContext
    added 3.2
function PyCapsule_SetDestructor
    added 3.2
function PyCapsule_SetName
    added 3.2
function PyCapsule_SetPointer
    added 3.2
data PyCapsule_Type
    added 3.2
data PyClassMethodDescr_Type
    added 3.2
function PyCodec_BackslashReplaceErrors
    added 3.2
function PyCodec_Decode
    added 3.2
function PyCodec_Decoder
    added 3.2
function PyCodec_Encode
    added 3.2
function PyCodec_Encoder
    added 3.2
function PyCodec_IgnoreErrors
    added 3.2
function PyCodec_IncrementalDecoder
    added 3.2
function PyCodec_IncrementalEncoder
    added 3.2
function PyCodec_KnownEncoding
    added 3.2
function PyCodec_LookupError
    added 3.2
function PyCodec_Register
    added 3.2
function PyCodec_RegisterError
    added 3.2
function PyCodec_ReplaceErrors
    added 3.2
function PyCodec_StreamReader
    added 3.2
function PyCodec_StreamWriter
    added 3.2
function PyCodec_StrictErrors
    added 3.2
function PyCodec_XMLCharRefReplaceErrors
    added 3.2
function PyComplex_FromDoubles
    added 3.2
function PyComplex_ImagAsDouble
    added 3.2
function PyComplex_RealAsDouble
    added 3.2
data PyComplex_Type
    added 3.2
function PyDescr_NewClassMethod
    added 3.2
function PyDescr_NewGetSet
    added 3.2
function PyDescr_NewMember
    added 3.2
function PyDescr_NewMethod
    added 3.2
data PyDictItems_Type
    added 3.2
data PyDictIterItem_Type
    added 3.2
data PyDictIterKey_Type
    added 3.2
data PyDictIterValue_Type
    added 3.2
data PyDictKeys_Type
    added 3.2
function PyDictProxy_New
    added 3.2
data PyDictProxy_Type
    added 3.2
data PyDictValues_Type
    added 3.2
function PyDict_Clear
    added 3.2
function PyDict_Contains
    added 3.2
function PyDict_Copy
    added 3.2
function PyDict_DelItem
    added 3.2
function PyDict_DelItemString
    added 3.2
function PyDict_GetItem
    added 3.2
function PyDict_GetItemString
    added 3.2
function PyDict_GetItemWithError
    added 3.2
function PyDict_Items
    added 3.2
function PyDict_Keys
    added 3.2
function PyDict_Merge
    added 3.2
function PyDict_MergeFromSeq2
    added 3.2
function PyDict_New
    added 3.2
function PyDict_Next
    added 3.2
function PyDict_SetItem
    added 3.2
function PyDict_SetItemString
    added 3.2
function PyDict_Size
    added 3.2
data PyDict_Type
    added 3.2
function PyDict_Update
    added 3.2
function PyDict_Values
    added 3.2
data PyEllipsis_Type
    added 3.2
data PyEnum_Type
    added 3.2
function PyErr_BadArgument
    added 3.2
function PyErr_BadInternalCall
    added 3.2
function PyErr_CheckSignals
    added 3.2
function PyErr_Clear
    added 3.2
function PyErr_Display
    added 3.2
function PyErr_ExceptionMatches
    added 3.2
function PyErr_Fetch
    added 3.2
function PyErr_Format
    added 3.2
function PyErr_GivenExceptionMatches
    added 3.2
function PyErr_NewException
    added 3.2
function PyErr_NewExceptionWithDoc
    added 3.2
function PyErr_NoMemory
    added 3.2
function PyErr_NormalizeException
    added 3.2
function PyErr_Occurred
    added 3.2
function PyErr_Print
    added 3.2
function PyErr_PrintEx
    added 3.2
function PyErr_ProgramText
    added 3.2
function PyErr_Restore
    added 3.2
function PyErr_SetFromErrno
    added 3.2
function PyErr_SetFromErrnoWithFilename
    added 3.2
function PyErr_SetFromErrnoWithFilenameObject
    added 3.2
function PyErr_SetInterrupt
    added 3.2
function PyErr_SetNone
    added 3.2
function PyErr_SetObject
    added 3.2
function PyErr_SetString
    added 3.2
function PyErr_SyntaxLocation
    added 3.2
function PyErr_WarnEx
    added 3.2
function PyErr_WarnExplicit
    added 3.2
function PyErr_WarnFormat
    added 3.2
function PyErr_WriteUnraisable
    added 3.2
function PyEval_AcquireLock
    added 3.2
function PyEval_AcquireThread
    added 3.2
function PyEval_CallFunction
    added 3.2
function PyEval_CallMethod
    added 3.2
function PyEval_CallObjectWithKeywords
    added 3.2
function PyEval_EvalCode
    added 3.2
function PyEval_EvalCodeEx
    added 3.2
function PyEval_EvalFrame
    added 3.2
function PyEval_EvalFrameEx
    added 3.2
function PyEval_GetBuiltins
    added 3.2
function PyEval_GetFrame
    added 3.2
function PyEval_GetFuncDesc
    added 3.2
function PyEval_GetFuncName
    added 3.2
function PyEval_GetGlobals
    added 3.2
function PyEval_GetLocals
    added 3.2
function PyEval_InitThreads
    added 3.2
function PyEval_ReleaseLock
    added 3.2
function PyEval_ReleaseThread
    added 3.2
function PyEval_RestoreThread
    added 3.2
function PyEval_SaveThread
    added 3.2
function PyEval_ThreadsInitialized
    added 3.2
data PyExc_ArithmeticError
    added 3.2
data PyExc_AssertionError
    added 3.2
data PyExc_AttributeError
    added 3.2
data PyExc_BaseException
    added 3.2
data PyExc_BaseExceptionGroup
    added 3.11
data PyExc_BufferError
    added 3.2
data PyExc_BytesWarning
    added 3.2
data PyExc_DeprecationWarning
    added 3.2
data PyExc_EOFError
    added 3.2
data PyExc_EnvironmentError
    added 3.2
data PyExc_Exception
    added 3.2
data PyExc_FloatingPointError
    added 3.2
data PyExc_FutureWarning
    added 3.2
data PyExc_GeneratorExit
    added 3.2
data PyExc_IOError
    added 3.2
data PyExc_ImportError
    added 3.2
data PyExc_ImportWarning
    added 3.2
data PyExc_IndentationError
    added 3.2
data PyExc_IndexError
    added 3.2
data PyExc_KeyError
    added 3.2
data PyExc_KeyboardInterrupt
    added 3.2
data PyExc_LookupError
    added 3.2
data PyExc_MemoryError
    added 3.2
data PyExc_NameError
    added 3.2
data PyExc_NotImplementedError
    added 3.2
data PyExc_OSError
    added 3.2
data PyExc_OverflowError
    added 3.2
data PyExc_PendingDeprecationWarning
    added 3.2
data PyExc_ReferenceError
    added 3.2
data PyExc_RuntimeError
    added 3.2
data PyExc_RuntimeWarning
    added 3.2
data PyExc_StopIteration
    added 3.2
data PyExc_SyntaxError
    added 3.2
data PyExc_SyntaxWarning
    added 3.2
data PyExc_SystemError
    added 3.2
data PyExc_SystemExit
    added 3.2
data PyExc_TabError
    added 3.2
data PyExc_TypeError
    added 3.2
data PyExc_UnboundLocalError
    added 3.2
data PyExc_UnicodeDecodeError
    added 3.2
data PyExc_UnicodeEncodeError
    added 3.2
data PyExc_UnicodeError
    added 3.2
data PyExc_UnicodeTranslateError
    added 3.2
data PyExc_UnicodeWarning
    added 3.2
data PyExc_UserWarning
    added 3.2
data PyExc_ValueError
    added 3.2
data PyExc_Warning
    added 3.2
data PyExc_ZeroDivisionError
    added 3.2
function PyException_GetCause
    added 3.2
function PyException_GetContext
    added 3.2
function PyException_GetTraceback
    added 3.2
function PyException_SetCause
    added 3.2
function PyException_SetContext
    added 3.2
function PyException_SetTraceback
    added 3.2
function PyFile_FromFd
    added 3.2
function PyFile_GetLine
    added 3.2
function PyFile_WriteObject
    added 3.2
function PyFile_WriteString
    added 3.2
data PyFilter_Type
    added 3.2
function PyFloat_AsDouble
    added 3.2
function PyFloat_FromDouble
    added 3.2
function PyFloat_FromString
    added 3.2
function PyFloat_GetInfo
    added 3.2
function PyFloat_GetMax
    added 3.2
function PyFloat_GetMin
    added 3.2
data PyFloat_Type
    added 3.2
function PyFrozenSet_New
    added 3.2
data PyFrozenSet_Type
    added 3.2
function PyGC_Collect
    added 3.2
function PyGILState_Ensure
    added 3.2
function PyGILState_GetThisThreadState
    added 3.2
function PyGILState_Release
    added 3.2
data PyGetSetDescr_Type
    added 3.2
function PyImport_AddModule
    added 3.2
function PyImport_AppendInittab
    added 3.2
function PyImport_ExecCodeModule
    added 3.2
function PyImport_ExecCodeModuleEx
    added 3.2
function PyImport_ExecCodeModuleWithPathnames
    added 3.2
function PyImport_GetImporter
    added 3.2
function PyImport_GetMagicNumber
    added 3.2
function PyImport_GetMagicTag
    added 3.2
function PyImport_GetModuleDict
    added 3.2
function PyImport_Import
    added 3.2
function PyImport_ImportFrozenModule
    added 3.2
function PyImport_ImportModule
    added 3.2
function PyImport_ImportModuleLevel
    added 3.2
function PyImport_ImportModuleNoBlock
    added 3.2
function PyImport_ReloadModule
    added 3.2
function PyInterpreterState_Clear
    added 3.2
function PyInterpreterState_Delete
    added 3.2
function PyInterpreterState_New
    added 3.2
function PyIter_Next
    added 3.2
data PyListIter_Type
    added 3.2
data PyListRevIter_Type
    added 3.2
function PyList_Append
    added 3.2
function PyList_AsTuple
    added 3.2
function PyList_GetItem
    added 3.2
function PyList_GetSlice
    added 3.2
function PyList_Insert
    added 3.2
function PyList_New
    added 3.2
function PyList_Reverse
    added 3.2
function PyList_SetItem
    added 3.2
function PyList_SetSlice
    added 3.2
function PyList_Size
    added 3.2
function PyList_Sort
    added 3.2
data PyList_Type
    added 3.2
data PyLongRangeIter_Type
    added 3.2
function PyLong_AsDouble
    added 3.2
function PyLong_AsLong
    added 3.2
function PyLong_AsLongAndOverflow
    added 3.2
function PyLong_AsLongLong
    added 3.2
function PyLong_AsLongLongAndOverflow
    added 3.2
function PyLong_AsSize_t
    added 3.2
function PyLong_AsSsize_t
    added 3.2
function PyLong_AsUnsignedLong
    added 3.2
function PyLong_AsUnsignedLongLong
    added 3.2
function PyLong_AsUnsignedLongLongMask
    added 3.2
function PyLong_AsUnsignedLongMask
    added 3.2
function PyLong_AsVoidPtr
    added 3.2
function PyLong_FromDouble
    added 3.2
function PyLong_FromLong
    added 3.2
function PyLong_FromLongLong
    added 3.2
function PyLong_FromSize_t
    added 3.2
function PyLong_FromSsize_t
    added 3.2
function PyLong_FromString
    added 3.2
function PyLong_FromUnsignedLong
    added 3.2
function PyLong_FromUnsignedLongLong
    added 3.2
function PyLong_FromVoidPtr
    added 3.2
function PyLong_GetInfo
    added 3.2
data PyLong_Type
    added 3.2
data PyMap_Type
    added 3.2
function PyMapping_Check
    added 3.2
function PyMapping_GetItemString
    added 3.2
function PyMapping_HasKey
    added 3.2
function PyMapping_HasKeyString
    added 3.2
function PyMapping_Items
    added 3.2
function PyMapping_Keys
    added 3.2
function PyMapping_Length
    added 3.2
function PyMapping_SetItemString
    added 3.2
function PyMapping_Size
    added 3.2
function PyMapping_Values
    added 3.2
function PyMem_Free
    added 3.2
function PyMem_Malloc
    added 3.2
function PyMem_Realloc
    added 3.2
data PyMemberDescr_Type
    added 3.2
function PyMemoryView_FromObject
    added 3.2
function PyMemoryView_GetContiguous
    added 3.2
data PyMemoryView_Type
    added 3.2
data PyMethodDescr_Type
    added 3.2
function PyModule_AddIntConstant
    added 3.2
function PyModule_AddObject
    added 3.2
function PyModule_AddStringConstant
    added 3.2
function PyModule_Create2
    added 3.2
function PyModule_GetDef
    added 3.2
function PyModule_GetDict
    added 3.2
function PyModule_GetFilename
    added 3.2
function PyModule_GetFilenameObject
    added 3.2
function PyModule_GetName
    added 3.2
function PyModule_GetState
    added 3.2
function PyModule_New
    added 3.2
data PyModule_Type
    added 3.2
function PyNumber_Absolute
    added 3.2
function PyNumber_Add
    added 3.2
function PyNumber_And
    added 3.2
function PyNumber_AsSsize_t
    added 3.2
function PyNumber_Check
    added 3.2
function PyNumber_Divmod
    added 3.2
function PyNumber_Float
    added 3.2
function PyNumber_FloorDivide
    added 3.2
function PyNumber_InPlaceAdd
    added 3.2
function PyNumber_InPlaceAnd
    added 3.2
function PyNumber_InPlaceFloorDivide
    added 3.2
function PyNumber_InPlaceLshift
    added 3.2
function PyNumber_InPlaceMultiply
    added 3.2
function PyNumber_InPlaceOr
    added 3.2
function PyNumber_InPlacePower
    added 3.2
function PyNumber_InPlaceRemainder
    added 3.2
function PyNumber_InPlaceRshift
    added 3.2
function PyNumber_InPlaceSubtract
    added 3.2
function PyNumber_InPlaceTrueDivide
    added 3.2
function PyNumber_InPlaceXor
    added 3.2
function PyNumber_Index
    added 3.2
function PyNumber_Invert
    added 3.2
function PyNumber_Long
    added 3.2
function PyNumber_Lshift
    added 3.2
function PyNumber_Multiply
    added 3.2
function PyNumber_Negative
    added 3.2
function PyNumber_Or
    added 3.2
function PyNumber_Positive
    added 3.2
function PyNumber_Power
    added 3.2
function PyNumber_Remainder
    added 3.2
function PyNumber_Rshift
    added 3.2
function PyNumber_Subtract
    added 3.2
function PyNumber_ToBase
    added 3.2
function PyNumber_TrueDivide
    added 3.2
function PyNumber_Xor
    added 3.2
function PyOS_AfterFork
    added 3.2
    ifdef HAVE_FORK
data PyOS_InputHook
    added 3.2
function PyOS_InterruptOccurred
    added 3.2
function PyOS_double_to_string
    added 3.2
function PyOS_getsig
    added 3.2
function PyOS_mystricmp
    added 3.2
function PyOS_mystrnicmp
    added 3.2
function PyOS_setsig
    added 3.2
function PyOS_snprintf
    added 3.2
function PyOS_string_to_double
    added 3.2
function PyOS_strtol
    added 3.2
function PyOS_strtoul
    added 3.2
function PyOS_vsnprintf
    added 3.2
function PyObject_ASCII
    added 3.2
function PyObject_AsFileDescriptor
    added 3.2
function PyObject_Bytes
    added 3.2
function PyObject_Call
    added 3.2
function PyObject_CallFunction
    added 3.2
function PyObject_CallFunctionObjArgs
    added 3.2
function PyObject_CallMethod
    added 3.2
function PyObject_CallMethodObjArgs
    added 3.2
function PyObject_CallObject
    added 3.2
function PyObject_ClearWeakRefs
    added 3.2
function PyObject_DelItem
    added 3.2
function PyObject_DelItemString
    added 3.2
function PyObject_Dir
    added 3.2
function PyObject_Format
    added 3.2
function PyObject_Free
    added 3.2
function PyObject_GC_Del
    added 3.2
function PyObject_GC_Track
    added 3.2
function PyObject_GC_UnTrack
    added 3.2
function PyObject_GenericGetAttr
    added 3.2
function PyObject_GenericSetAttr
    added 3.2
function PyObject_GetAttr
    added 3.2
function PyObject_GetAttrString
    added 3.2
function PyObject_GetItem
    added 3.2
function PyObject_GetIter
    added 3.2
function PyObject_HasAttr
    added 3.2
function PyObject_HasAttrString
    added 3.2
function PyObject_Hash
    added 3.2
function PyObject_HashNotImplemented
    added 3.2
function PyObject_Init
    added 3.2
function PyObject_InitVar
    added 3.2
function PyObject_IsInstance
    added 3.2
function PyObject_IsSubclass
    added 3.2
function PyObject_IsTrue
    added 3.2
function PyObject_Length
    added 3.2
function PyObject_Malloc
    added 3.2
function PyObject_Not
    added 3.2
function PyObject_Realloc
    added 3.2
function PyObject_Repr
    added 3.2
function PyObject_RichCompare
    added 3.2
function PyObject_RichCompareBool
    added 3.2
function PyObject_SelfIter
    added 3.2
function PyObject_SetAttr
    added 3.2
function PyObject_SetAttrString
    added 3.2
function PyObject_SetItem
    added 3.2
function PyObject_Size
    added 3.2
function PyObject_Str
    added 3.2
function PyObject_Type
    added 3.2
data PyProperty_Type
    added 3.2
data PyRangeIter_Type
    added 3.2
data PyRange_Type
    added 3.2
data PyReversed_Type
    added 3.2
function PySeqIter_New
    added 3.2
data PySeqIter_Type
    added 3.2
function PySequence_Check
    added 3.2
function PySequence_Concat
    added 3.2
function PySequence_Contains
    added 3.2
function PySequence_Count
    added 3.2
function PySequence_DelItem
    added 3.2
function PySequence_DelSlice
    added 3.2
function PySequence_Fast
    added 3.2
function PySequence_GetItem
    added 3.2
function PySequence_GetSlice
    added 3.2
function PySequence_In
    added 3.2
function PySequence_InPlaceConcat
    added 3.2
function PySequence_InPlaceRepeat
    added 3.2
function PySequence_Index
    added 3.2
function PySequence_Length
    added 3.2
function PySequence_List
    added 3.2
function PySequence_Repeat
    added 3.2
function PySequence_SetItem
    added 3.2
function PySequence_SetSlice
    added 3.2
function PySequence_Size
    added 3.2
function PySequence_Tuple
    added 3.2
data PySetIter_Type
    added 3.2
function PySet_Add
    added 3.2
function PySet_Clear
    added 3.2
function PySet_Contains
    added 3.2
function PySet_Discard
    added 3.2
function PySet_New
    added 3.2
function PySet_Pop
    added 3.2
function PySet_Size
    added 3.2
data PySet_Type
    added 3.2
function PySlice_GetIndices
    added 3.2
function PySlice_GetIndicesEx
    added 3.2
function PySlice_New
    added 3.2
data PySlice_Type
    added 3.2
function PyState_FindModule
    added 3.2
function PyStructSequence_GetItem
    added 3.2
function PyStructSequence_New
    added 3.2
function PyStructSequence_NewType
    added 3.2
function PyStructSequence_SetItem
    added 3.2
data PySuper_Type
    added 3.2
function PySys_AddWarnOption
    added 3.2
function PySys_AddWarnOptionUnicode
    added 3.2
function PySys_FormatStderr
    added 3.2
function PySys_FormatStdout
    added 3.2
function PySys_GetObject
    added 3.2
function PySys_HasWarnOptions
    added 3.2
function PySys_ResetWarnOptions
    added 3.2
function PySys_SetArgv
    added 3.2
function PySys_SetArgvEx
    added 3.2
function PySys_SetObject
    added 3.2
function PySys_SetPath
    added 3.2
function PySys_WriteStderr
    added 3.2
function PySys_WriteStdout
    added 3.2
function PyThreadState_Clear
    added 3.2
function PyThreadState_Delete
    added 3.2
function PyThreadState_DeleteCurrent
    added 3.2
    abi_only
function PyThreadState_Get
    added 3.2
function PyThreadState_GetDict
    added 3.2
function PyThreadState_New
    added 3.2
function PyThreadState_SetAsyncExc
    added 3.2
function PyThreadState_Swap
    added 3.2
function PyTraceBack_Here
    added 3.2
function PyTraceBack_Print
    added 3.2
data PyTraceBack_Type
    added 3.2
data PyTupleIter_Type
    added 3.2
function PyTuple_GetItem
    added 3.2
function PyTuple_GetSlice
    added 3.2
function PyTuple_New
    added 3.2
function PyTuple_Pack
    added 3.2
function PyTuple_SetItem
    added 3.2
function PyTuple_Size
    added 3.2
data PyTuple_Type
    added 3.2
function PyType_ClearCache
    added 3.2
function PyType_GenericAlloc
    added 3.2
function PyType_GenericNew
    added 3.2
function PyType_GetFlags
    added 3.2
function PyType_IsSubtype
    added 3.2
function PyType_Modified
    added 3.2
function PyType_Ready
    added 3.2
data PyType_Type
    added 3.2
function PyUnicodeDecodeError_Create
    added 3.2
function PyUnicodeDecodeError_GetEncoding
    added 3.2
function PyUnicodeDecodeError_GetEnd
    added 3.2
function PyUnicodeDecodeError_GetObject
    added 3.2
function PyUnicodeDecodeError_GetReason
    added 3.2
function PyUnicodeDecodeError_GetStart
    added 3.2
function PyUnicodeDecodeError_SetEnd
    added 3.2
function PyUnicodeDecodeError_SetReason
    added 3.2
function PyUnicodeDecodeError_SetStart
    added 3.2
function PyUnicodeEncodeError_GetEncoding
    added 3.2
function PyUnicodeEncodeError_GetEnd
    added 3.2
function PyUnicodeEncodeError_GetObject
    added 3.2
function PyUnicodeEncodeError_GetReason
    added 3.2
function PyUnicodeEncodeError_GetStart
    added 3.2
function PyUnicodeEncodeError_SetEnd
    added 3.2
function PyUnicodeEncodeError_SetReason
    added 3.2
function PyUnicodeEncodeError_SetStart
    added 3.2
data PyUnicodeIter_Type
    added 3.2
function PyUnicodeTranslateError_GetEnd
    added 3.2
function PyUnicodeTranslateError_GetObject
    added 3.2
function PyUnicodeTranslateError_GetReason
    added 3.2
function PyUnicodeTranslateError_GetStart
    added 3.2
function PyUnicodeTranslateError_SetEnd
    added 3.2
function PyUnicodeTranslateError_SetReason
    added 3.2
function PyUnicodeTranslateError_SetStart
    added 3.2
function PyUnicode_Append
    added 3.2
function PyUnicode_AppendAndDel
    added 3.2
function PyUnicode_AsASCIIString
    added 3.2
function PyUnicode_AsCharmapString
    added 3.2
function PyUnicode_AsDecodedObject
    added 3.2
function PyUnicode_AsDecodedUnicode
    added 3.2
function PyUnicode_AsEncodedObject
    added 3.2
function PyUnicode_AsEncodedString
    added 3.2
function PyUnicode_AsEncodedUnicode
    added 3.2
function PyUnicode_AsLatin1String
    added 3.2
function PyUnicode_AsRawUnicodeEscapeString
    added 3.2
function PyUnicode_AsUTF16String
    added 3.2
function PyUnicode_AsUTF32String
    added 3.2
function PyUnicode_AsUTF8String
    added 3.2
function PyUnicode_AsUnicodeEscapeString
    added 3.2
function PyUnicode_AsWideChar
    added 3.2
function PyUnicode_Compare
    added 3.2
function PyUnicode_Concat
    added 3.2
function PyUnicode_Contains
    added 3.2
function PyUnicode_Count
    added 3.2
function PyUnicode_Decode
    added 3.2
function PyUnicode_DecodeASCII
    added 3.2
function PyUnicode_DecodeCharmap
    added 3.2
function PyUnicode_DecodeFSDefault
    added 3.2
function PyUnicode_DecodeFSDefaultAndSize
    added 3.2
function PyUnicode_DecodeLatin1
    added 3.2
function PyUnicode_DecodeRawUnicodeEscape
    added 3.2
function PyUnicode_DecodeUTF16
    added 3.2
function PyUnicode_DecodeUTF16Stateful
    added 3.2
function PyUnicode_DecodeUTF32
    added 3.2
function PyUnicode_DecodeUTF32Stateful
    added 3.2
function PyUnicode_DecodeUTF8
    added 3.2
function PyUnicode_DecodeUTF8Stateful
    added 3.2
function PyUnicode_DecodeUnicodeEscape
    added 3.2
function PyUnicode_FSConverter
    added 3.2
function PyUnicode_FSDecoder
    added 3.2
function PyUnicode_Find
    added 3.2
function PyUnicode_Format
    added 3.2
function PyUnicode_FromEncodedObject
    added 3.2
function PyUnicode_FromFormat
    added 3.2
function PyUnicode_FromFormatV
    added 3.2
function PyUnicode_FromObject
    added 3.2
function PyUnicode_FromOrdinal
    added 3.2
function PyUnicode_FromString
    added 3.2
function PyUnicode_FromStringAndSize
    added 3.2
function PyUnicode_FromWideChar
    added 3.2
function PyUnicode_GetDefaultEncoding
    added 3.2
function PyUnicode_GetSize
    added 3.2
function PyUnicode_IsIdentifier
    added 3.2
function PyUnicode_Join
    added 3.2
function PyUnicode_Partition
    added 3.2
function PyUnicode_RPartition
    added 3.2
function PyUnicode_RSplit
    added 3.2
function PyUnicode_Replace
    added 3.2
function PyUnicode_Resize
    added 3.2
function PyUnicode_RichCompare
    added 3.2
function PyUnicode_Split
    added 3.2
function PyUnicode_Splitlines
    added 3.2
function PyUnicode_Tailmatch
    added 3.2
function PyUnicode_Translate
    added 3.2
function PyUnicode_BuildEncodingMap
    added 3.2
function PyUnicode_CompareWithASCIIString
    added 3.2
function PyUnicode_DecodeUTF7
    added 3.2
function PyUnicode_DecodeUTF7Stateful
    added 3.2
function PyUnicode_EncodeFSDefault
    added 3.2
function PyUnicode_InternFromString
    added 3.2
function PyUnicode_InternImmortal
    added 3.2
function PyUnicode_InternInPlace
    added 3.2
data PyUnicode_Type
    added 3.2
function PyWeakref_GetObject
    added 3.2
function PyWeakref_NewProxy
    added 3.2
function PyWeakref_NewRef
    added 3.2
data PyWrapperDescr_Type
    added 3.2
function PyWrapper_New
    added 3.2
data PyZip_Type
    added 3.2
function Py_AddPendingCall
    added 3.2
function Py_AtExit
    added 3.2
function Py_BuildValue
    added 3.2
function Py_CompileString
    added 3.2
function Py_DecRef
    added 3.2
function Py_EndInterpreter
    added 3.2
function Py_Exit
    added 3.2
function Py_FatalError
    added 3.2
data Py_FileSystemDefaultEncoding
    added 3.2
function Py_Finalize
    added 3.2
function Py_GetBuildInfo
    added 3.2
function Py_GetCompiler
    added 3.2
function Py_GetCopyright
    added 3.2
function Py_GetExecPrefix
    added 3.2
function Py_GetPath
    added 3.2
function Py_GetPlatform
    added 3.2
function Py_GetPrefix
    added 3.2
function Py_GetProgramFullPath
    added 3.2
function Py_GetProgramName
    added 3.2
function Py_GetPythonHome
    added 3.2
function Py_GetRecursionLimit
    added 3.2
function Py_GetVersion
    added 3.2
data Py_HasFileSystemDefaultEncoding
    added 3.2
function Py_IncRef
    added 3.2
function Py_Initialize
    added 3.2
function Py_InitializeEx
    added 3.2
function Py_IsInitialized
    added 3.2
function Py_Main
    added 3.2
function Py_MakePendingCalls
    added 3.2
function Py_NewInterpreter
    added 3.2
function Py_ReprEnter
    added 3.2
function Py_ReprLeave
    added 3.2
function Py_SetProgramName
    added 3.2
function Py_SetPythonHome
    added 3.2
function Py_SetRecursionLimit
    added 3.2
function Py_VaBuildValue
    added 3.2

function _PyErr_BadInternalCall
    added 3.2
    abi_only
function _PyObject_CallFunction_SizeT
    added 3.2
    abi_only
function _PyObject_CallMethod_SizeT
    added 3.2
    abi_only
function _PyObject_GC_New
    added 3.2
    abi_only
function _PyObject_GC_NewVar
    added 3.2
    abi_only
function _PyObject_GC_Resize
    added 3.2
    abi_only
function _PyObject_New
    added 3.2
    abi_only
function _PyObject_NewVar
    added 3.2
    abi_only
function _PyState_AddModule
    added 3.2
    abi_only
function _PyThreadState_Init
    added 3.2
    abi_only
function _PyThreadState_Prealloc
    added 3.2
    abi_only
data _PyWeakref_CallableProxyType
    added 3.2
    abi_only
data _PyWeakref_ProxyType
    added 3.2
    abi_only
data _PyWeakref_RefType
    added 3.2
    abi_only
function _Py_BuildValue_SizeT
    added 3.2
    abi_only
function _Py_CheckRecursiveCall
    added 3.2
    abi_only
function _Py_Dealloc
    added 3.2
    abi_only
data _Py_EllipsisObject
    added 3.2
    abi_only
data _Py_FalseStruct
    added 3.2
    abi_only
data _Py_NoneStruct
    added 3.2
    abi_only
data _Py_NotImplementedStruct
    added 3.2
    abi_only
data _Py_SwappedOp
    added 3.2
    abi_only
data _Py_TrueStruct
    added 3.2
    abi_only
function _Py_VaBuildValue_SizeT
    added 3.2
    abi_only

# Old buffer protocol support (deprecated)

function PyObject_AsCharBuffer
    added 3.2
function PyObject_AsReadBuffer
    added 3.2
function PyObject_AsWriteBuffer
    added 3.2
function PyObject_CheckReadBuffer
    added 3.2

# Flags are implicitly part of the ABI:

const Py_TPFLAGS_DEFAULT
    added 3.2
const Py_TPFLAGS_BASETYPE
    added 3.2
const Py_TPFLAGS_HAVE_GC
    added 3.2

const METH_VARARGS
    added 3.2
const METH_NOARGS
    added 3.2
const METH_O
    added 3.2
const METH_CLASS
    added 3.2
const METH_STATIC
    added 3.2
const METH_COEXIST
    added 3.2
# METH_STACKLESS is undocumented
# METH_FASTCALL is not part of limited API.

# The following are defined in private headers, but historically
# they were exported as part of the stable ABI.
function PyMarshal_ReadObjectFromString
    added 3.2
    abi_only
function PyMarshal_WriteObjectToString
    added 3.2
    abi_only
function PyMember_GetOne
    added 3.2
    abi_only
function PyMember_SetOne
    added 3.2
    abi_only

# TLS api is deprecated; superseded by TSS API

function PyThread_ReInitTLS
    added 3.2
function PyThread_create_key
    added 3.2
function PyThread_delete_key
    added 3.2
function PyThread_set_key_value
    added 3.2
function PyThread_get_key_value
    added 3.2
function PyThread_delete_key_value
    added 3.2
function PyThread_acquire_lock
    added 3.2
function PyThread_acquire_lock_timed
    added 3.2
function PyThread_allocate_lock
    added 3.2
function PyThread_exit_thread
    added 3.2
function PyThread_free_lock
    added 3.2
function PyThread_get_stacksize
    added 3.2
function PyThread_get_thread_ident
    added 3.2
function PyThread_get_thread_native_id
    ifdef PY_HAVE_THREAD_NATIVE_ID
    added 3.2
function PyThread_init_thread
    added 3.2
function PyThread_release_lock
    added 3.2
function PyThread_set_stacksize
    added 3.2
function PyThread_start_new_thread
    added 3.2

# The following were added in PC/python3.def in Python 3.3:
# 7800f75827b1be557be16f3b18f5170fbf9fae08
# 9c56409d3353b8cd4cfc19e0467bbe23fd34fc92
# 75aeaa9b18667219bbacbc58ba6efecccef9dfbd

function PyState_AddModule
    added 3.3
function PyState_RemoveModule
    added 3.3
function PyType_FromSpecWithBases
    added 3.3
function _PyArg_Parse_SizeT
    added 3.3
    abi_only
function _PyArg_ParseTuple_SizeT
    added 3.3
    abi_only
function _PyArg_ParseTupleAndKeywords_SizeT
    added 3.3
    abi_only
function _PyArg_VaParse_SizeT
    added 3.3
    abi_only
function _PyArg_VaParseTupleAndKeywords_SizeT
    added 3.3
    abi_only
function PyThread_GetInfo
    added 3.3

# The following were added in PC/python3.def in Python 3.4:
# 3ba3a3ee56c142e93d6bbe20ff6bf939212a30f0

function PyCFunction_New
    added 3.4
function PyType_GetSlot
    added 3.4

# The following were added in PC/python3.def in Python 3.5:
# 11d7b1423fc44d764eba7065ea5eba58ed748b21
# f3b73ad51da3097d7915796fdc62608b1ab90c0a

function PyErr_FormatV
    added 3.5
function PyModuleDef_Init
    added 3.5
data PyModuleDef_Type
    added 3.5

# New slots in 3.5:
# d51374ed78a3e3145911a16cdf3b9b84b3ba7d15 - Matrix multiplication (PEP 465)
# 7544508f0245173bff5866aa1598c8f6cce1fc5f - Async iterators (PEP 492)
# 0969a9f8abcf98bb43ea77b1dd050426adcfb4f7 - tp_finalize

const Py_nb_matrix_multiply
    added 3.5
const Py_nb_inplace_matrix_multiply
    added 3.5
const Py_am_await
    added 3.5
const Py_am_aiter
    added 3.5
const Py_am_anext
    added 3.5
const Py_tp_finalize
    added 3.5

# The following were added in PC/python3.def in Python 3.6:

function Py_FinalizeEx
    added 3.6

function PyOS_FSPath
    added 3.6
function PyErr_ResourceWarning
    added 3.6
function PyErr_SetImportErrorSubclass
    added 3.6
data PyExc_ModuleNotFoundError
    added 3.6

# The following were added in PC/python3.def in Python 3.6.1 and 3.5.3/3.5.4:

function PyCodec_NameReplaceErrors
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_GetExcInfo
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_SetExcInfo
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_SetFromErrnoWithFilenameObjects
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_SetImportError
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_SyntaxLocationEx
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_BlockingIOError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_BrokenPipeError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ChildProcessError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ConnectionAbortedError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ConnectionError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ConnectionRefusedError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ConnectionResetError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_FileExistsError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_FileNotFoundError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_InterruptedError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_IsADirectoryError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_NotADirectoryError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_PermissionError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ProcessLookupError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_RecursionError
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_ResourceWarning
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_StopAsyncIteration
    added 3.7  # (and 3.6.1 and 3.5.3)
data PyExc_TimeoutError
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyImport_AddModuleObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyImport_ExecCodeModuleObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyImport_ImportFrozenModuleObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyImport_ImportModuleLevelObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyMem_Calloc
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyMemoryView_FromMemory
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_AddFunctions
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_ExecDef
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_FromDefAndSpec2
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_GetNameObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_NewObject
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyModule_SetDocString
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyNumber_InPlaceMatrixMultiply
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyNumber_MatrixMultiply
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyObject_Calloc
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyObject_GenericSetDict
    added 3.7  # (and 3.6.1 and 3.5.3)
function PySys_AddXOption
    added 3.7  # (and 3.6.1 and 3.5.3)
function PySys_GetXOptions
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_AsUCS4
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_AsUCS4Copy
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_AsWideCharString
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_DecodeLocale
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_DecodeLocaleAndSize
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_EncodeLocale
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_FindChar
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_GetLength
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_ReadChar
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_Substring
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyUnicode_WriteChar
    added 3.7  # (and 3.6.1 and 3.5.3)
function Py_DecodeLocale
    added 3.7  # (and 3.6.1 and 3.5.3)
function Py_EncodeLocale
    added 3.7  # (and 3.6.1 and 3.5.3)
function Py_SetPath
    added 3.7  # (and 3.6.1 and 3.5.3)
function PyErr_SetExcFromWindowsErr
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyErr_SetExcFromWindowsErrWithFilename
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyErr_SetExcFromWindowsErrWithFilenameObject
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyErr_SetExcFromWindowsErrWithFilenameObjects
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyErr_SetFromWindowsErr
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyErr_SetFromWindowsErrWithFilename
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
data PyExc_WindowsError
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyOS_CheckStack
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef USE_STACKCHECK
function PyUnicode_AsMBCSString
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyUnicode_DecodeCodePageStateful
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyUnicode_DecodeMBCS
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyUnicode_DecodeMBCSStateful
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS
function PyUnicode_EncodeCodePage
    added 3.7  # (and 3.6.1 and 3.5.3)
    ifdef MS_WINDOWS

# 3.5.4:
function PySlice_AdjustIndices
    added 3.7  # (and 3.6.1 and 3.5.4)
function PySlice_Unpack
    added 3.7  # (and 3.6.1 and 3.5.4)

# The following were added in PC/python3.def in Python 3.7:

function PyInterpreterState_GetID
    added 3.7
function PyThread_tss_alloc
    added 3.7
function PyThread_tss_create
    added 3.7
function PyThread_tss_delete
    added 3.7
function PyThread_tss_free
    added 3.7
function PyThread_tss_get
    added 3.7
function PyThread_tss_is_created
    added 3.7
function PyThread_tss_set
    added 3.7
function PyOS_BeforeFork
    added 3.7
    ifdef HAVE_FORK
function PyOS_AfterFork_Parent
    added 3.7
    ifdef HAVE_FORK
function PyOS_AfterFork_Child
    added 3.7
    ifdef HAVE_FORK

# New method flags in 3.7 (PEP 590):

const METH_FASTCALL
    added 3.7
const METH_METHOD
    added 3.7

# The following were added in PC/python3.def in Python 3.8:

function PyImport_GetModule
    added 3.8
data Py_UTF8Mode
    added 3.8
function PyExceptionClass_Name
    added 3.8
function PyIndex_Check
    added 3.8
function PyIter_Check
    added 3.8
data PyDictRevIterItem_Type
    added 3.8
data PyDictRevIterKey_Type
    added 3.8
data PyDictRevIterValue_Type
    added 3.8
function PyInterpreterState_GetDict
    added 3.8
function Py_BytesMain
    added 3.8

# New type flag (PEP 590):

const Py_TPFLAGS_METHOD_DESCRIPTOR
    added 3.8

# The following were added in PC/python3.def in Python 3.9:

function Py_EnterRecursiveCall
    added 3.9
function Py_LeaveRecursiveCall
    added 3.9
function Py_GenericAlias
    added 3.9
data Py_GenericAliasType
    added 3.9
function PyCMethod_New
    added 3.9  # Windows: 3.10 & 3.9.2 -- https://bugs.python.org/issue43155
function PyInterpreterState_Get
    added 3.9
function PyObject_GC_IsFinalized
    added 3.9
function PyObject_GC_IsTracked
    added 3.9

# The following were added in PC/python3.def in Python 3.10:

function Py_GetArgcArgv
    added 3.10
    abi_only
function PyIter_Send
    added 3.10
function PyUnicode_AsUTF8AndSize
    added 3.10
function PyObject_GenericGetDict
    added 3.10
function Py_NewRef
    added 3.10
function Py_XNewRef
    added 3.10
function PyModule_AddType
    added 3.10
function PyType_FromModuleAndSpec
    added 3.10
function PyType_GetModule
    added 3.10
function PyType_GetModuleState
    added 3.10
function PyFrame_GetLineNumber
    added 3.10
function PyFrame_GetCode
    added 3.10
function PyObject_CallNoArgs
    added 3.10
function PyThreadState_GetFrame
    added 3.10
function PyThreadState_GetID
    added 3.10
function PyThreadState_GetInterpreter
    added 3.10
function PyModule_AddObjectRef
    added 3.10
data Py_FileSystemDefaultEncodeErrors
    added 3.10
function PyCodec_Unregister
    added 3.10
function PyErr_SetInterruptEx
    added 3.10
function Py_Is
    added 3.10
function Py_IsTrue
    added 3.10
function Py_IsFalse
    added 3.10
function Py_IsNone
    added 3.10
function _Py_IncRef
    added 3.10
    abi_only
function _Py_DecRef
    added 3.10
    abi_only
function PyAIter_Check
    added 3.10
function PyObject_GetAIter
    added 3.10
data PyExc_EncodingWarning
    added 3.10

# Support for Stable ABI in debug builds

data _Py_RefTotal
    added 3.10
    abi_only
    ifdef Py_REF_DEBUG
function _Py_NegativeRefcount
    added 3.10
    abi_only
    ifdef Py_REF_DEBUG

# New slots in 3.10:

const Py_am_send
    added 3.10


# New GC control functions in Py3.10 (https://bugs.python.org/issue28254)

function PyGC_Disable
    added 3.10
function PyGC_Enable
    added 3.10
function PyGC_IsEnabled
    added 3.10

# Add new C API in Python 3.11

function PyType_GetName
    added 3.11
function PyType_GetQualName
    added 3.11
data PyStructSequence_UnnamedField
    added 3.11

# Add stable Py_buffer API in Python 3.11 (https://bugs.python.org/issue45459)
struct Py_buffer
    added 3.11
    full-abi
function PyObject_CheckBuffer
    added 3.11
function PyObject_GetBuffer
    added 3.11
function PyBuffer_GetPointer
    added 3.11
function PyBuffer_SizeFromFormat
    added 3.11
function PyBuffer_ToContiguous
    added 3.11
function PyBuffer_FromContiguous
    added 3.11
function PyObject_CopyData
    added 3.11
function PyBuffer_IsContiguous
    added 3.11
function PyBuffer_FillContiguousStrides
    added 3.11
function PyBuffer_FillInfo
    added 3.11
function PyBuffer_Release
    added 3.11
function PyMemoryView_FromBuffer
    added 3.11

# (Detailed comments aren't really needed for further entries: from here on
#  we can use version control logs.)

data Py_Version
    added 3.11
function PyErr_GetHandledException
    added 3.11
function PyErr_SetHandledException
    added 3.11

