File tree Expand file tree Collapse file tree 6 files changed +15
-10
lines changed Expand file tree Collapse file tree 6 files changed +15
-10
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ Backward compatibility
5
5
++++++++++++++++++++++
6
6
7
7
To reduce the risk of failure, :ref: `changing the C API <new-c-api >` should be
8
- as much as possible compatible with the :ref: `Python 3.7 C API <c-api >`. One
8
+ as much as possible compatible with the :ref: `Python 3.7 C API <old- c-api >`. One
9
9
solution for that is to provide a backward compatible header file and/or
10
10
library.
11
11
Original file line number Diff line number Diff line change 33
33
34
34
roadmap
35
35
runtimes
36
- c_api
36
+ old_c_api
37
37
bad_api
38
38
new_api
39
39
private_c_api
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ Design goals
20
20
* Reduce the size of the ABI, especially export less symbols.
21
21
22
22
The :ref: `backward compatibility <back-compat >` issue is partially solved by
23
- keeping the existing :ref: `old C API <c-api >` available as an opt-in option:
23
+ keeping the existing :ref: `old C API <old- c-api >` available as an opt-in option:
24
24
see the :ref: `Regular runtime <regular-runtime >`.
25
25
26
26
Non-goal
@@ -86,5 +86,5 @@ C extensions must be modified to use functions to access fields.
86
86
87
87
In the worst case, there will be no way to access to hidden field from the
88
88
public C API. For these users, the only option will be to stick at the
89
- :ref: `old C API <c-api >` which remains backward compatible and still expose
89
+ :ref: `old C API <old- c-api >` which remains backward compatible and still expose
90
90
implementation details like C structure fields.
Original file line number Diff line number Diff line change 1
- .. _ c -api :
1
+ .. _ old-c -api :
2
2
3
- ++++++++++++++++
4
- Python 3.7 C API
5
- ++++++++++++++++
3
+ +++++++++
4
+ Old C API
5
+ +++++++++
6
+
7
+ The "Old C API" is the Python 3.7 API which "leaks" implementation details like
8
+ ``PyObject.ob_refcnt `` through :ref: `Py_INCREF() <incref >`. This API will
9
+ remain available for CPython internals but also for specific use cases like
10
+ Cython (for best performances) and debugging tools.
6
11
7
12
See also :ref: `Calling conventensions <calling-conventions >`.
8
13
Original file line number Diff line number Diff line change @@ -17,7 +17,7 @@ Roadmap
17
17
Decide what to do.
18
18
* Step 4: if step 3 gone fine and most people are still ok to continue, make
19
19
the :ref: `new C API <new-c-api >` as the default in CPython and add an option
20
- for **opt-out ** to stick with the :ref: `old C API <c-api >`.
20
+ for **opt-out ** to stick with the :ref: `old C API <old- c-api >`.
21
21
22
22
Status
23
23
======
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ Regular Python: /usr/bin/python3
20
20
* Python compiled in release mode
21
21
* This runtime still provides ``Py_INCREF() `` macro:
22
22
modify ``PyObject.ob_refcnt `` at the ABI level.
23
- * Should be fully compatible with :ref: `Python 3.7 C API <c-api >`
23
+ * Should be fully compatible with :ref: `Python 3.7 C API <old- c-api >`
24
24
* Should be fully compatible with Python 3.7 stable **ABI ** (it may become
25
25
incompatible with the Python 3.7 full ABI).
26
26
You can’t perform that action at this time.
0 commit comments