@@ -56,14 +56,55 @@ PyAPI_FUNC(int) PyModule_ExecDef(PyObject *module, PyModuleDef *def);
5656
5757#define Py_CLEANUP_SUPPORTED 0x20000
5858
59- /* The API and ABI versions are left for backwards compatibility.
60- They've not been updated since 2006 and 2010, respectively.
61- API/ABI versioning is now tied to the CPython version.
62- The *_VERSION and *_STRING symbols should define the same value; as
63- number and string literal respectively. Make sure the definitions match.
64- */
6559#define PYTHON_API_VERSION 1013
6660#define PYTHON_API_STRING "1013"
61+ /* The API version is maintained (independently from the Python version)
62+ so we can detect mismatches between the interpreter and dynamically
63+ loaded modules. These are diagnosed by an error message but
64+ the module is still loaded (because the mismatch can only be tested
65+ after loading the module). The error message is intended to
66+ explain the core dump a few seconds later.
67+
68+ The symbol PYTHON_API_STRING defines the same value as a string
69+ literal. *** PLEASE MAKE SURE THE DEFINITIONS MATCH. ***
70+
71+ Please add a line or two to the top of this log for each API
72+ version change:
73+
74+ 22-Feb-2006 MvL 1013 PEP 353 - long indices for sequence lengths
75+
76+ 19-Aug-2002 GvR 1012 Changes to string object struct for
77+ interning changes, saving 3 bytes.
78+
79+ 17-Jul-2001 GvR 1011 Descr-branch, just to be on the safe side
80+
81+ 25-Jan-2001 FLD 1010 Parameters added to PyCode_New() and
82+ PyFrame_New(); Python 2.1a2
83+
84+ 14-Mar-2000 GvR 1009 Unicode API added
85+
86+ 3-Jan-1999 GvR 1007 Decided to change back! (Don't reuse 1008!)
87+
88+ 3-Dec-1998 GvR 1008 Python 1.5.2b1
89+
90+ 18-Jan-1997 GvR 1007 string interning and other speedups
91+
92+ 11-Oct-1996 GvR renamed Py_Ellipses to Py_Ellipsis :-(
93+
94+ 30-Jul-1996 GvR Slice and ellipses syntax added
95+
96+ 23-Jul-1996 GvR For 1.4 -- better safe than sorry this time :-)
97+
98+ 7-Nov-1995 GvR Keyword arguments (should've been done at 1.3 :-( )
99+
100+ 10-Jan-1995 GvR Renamed globals to new naming scheme
101+
102+ 9-Jan-1995 GvR Initial version (incompatible with older API)
103+ */
104+
105+ /* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of
106+ Python 3, it will stay at the value of 3; changes to the limited API
107+ must be performed in a strictly backwards-compatible manner. */
67108#define PYTHON_ABI_VERSION 3
68109#define PYTHON_ABI_STRING "3"
69110
0 commit comments