Skip to content

Commit cb0309f

Browse files
committed
Restore changelog / comments for PYTHON_API_VERSION
1 parent 2644080 commit cb0309f

File tree

1 file changed

+47
-6
lines changed

1 file changed

+47
-6
lines changed

Include/modsupport.h

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)