summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2024-03-21 16:07:00 (GMT)
committerGitHub <noreply@github.com>2024-03-21 16:07:00 (GMT)
commit8bea6c411d65cd987616b4ecdb86373e4f21f1c6 (patch)
tree962f984417dab800fbf4d21048a1fd8ba39202f0 /Misc
parent5a76d1be8ef371b75ca65166726923c249b5f615 (diff)
downloadcpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.zip
cpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.tar.gz
cpython-8bea6c411d65cd987616b4ecdb86373e4f21f1c6.tar.bz2
gh-115754: Add Py_GetConstant() function (#116883)
Add Py_GetConstant() and Py_GetConstantBorrowed() functions. In the limited C API version 3.13, getting Py_None, Py_False, Py_True, Py_Ellipsis and Py_NotImplemented singletons is now implemented as function calls at the stable ABI level to hide implementation details. Getting these constants still return borrowed references. Add _testlimitedcapi/object.c and test_capi/test_object.py to test Py_GetConstant() and Py_GetConstantBorrowed() functions.
Diffstat (limited to 'Misc')
-rw-r--r--Misc/NEWS.d/next/C API/2024-03-15-23-55-24.gh-issue-115754.xnzc__.rst3
-rw-r--r--Misc/NEWS.d/next/C API/2024-03-15-23-57-33.gh-issue-115754.zLdv82.rst5
-rw-r--r--Misc/stable_abi.toml4
3 files changed, 12 insertions, 0 deletions
diff --git a/Misc/NEWS.d/next/C API/2024-03-15-23-55-24.gh-issue-115754.xnzc__.rst b/Misc/NEWS.d/next/C API/2024-03-15-23-55-24.gh-issue-115754.xnzc__.rst
new file mode 100644
index 0000000..d76c98e
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2024-03-15-23-55-24.gh-issue-115754.xnzc__.rst
@@ -0,0 +1,3 @@
+Add :c:func:`Py_GetConstant` and :c:func:`Py_GetConstantBorrowed` functions to
+get constants. For example, ``Py_GetConstant(Py_CONSTANT_ZERO)`` returns a
+:term:`strong reference` to the constant zero. Patch by Victor Stinner.
diff --git a/Misc/NEWS.d/next/C API/2024-03-15-23-57-33.gh-issue-115754.zLdv82.rst b/Misc/NEWS.d/next/C API/2024-03-15-23-57-33.gh-issue-115754.zLdv82.rst
new file mode 100644
index 0000000..feff0c0
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2024-03-15-23-57-33.gh-issue-115754.zLdv82.rst
@@ -0,0 +1,5 @@
+In the limited C API version 3.13, getting ``Py_None``, ``Py_False``,
+``Py_True``, ``Py_Ellipsis`` and ``Py_NotImplemented`` singletons is now
+implemented as function calls at the stable ABI level to hide implementation
+details. Getting these constants still return borrowed references. Patch by
+Victor Stinner.
diff --git a/Misc/stable_abi.toml b/Misc/stable_abi.toml
index c68adf8..6d6e484 100644
--- a/Misc/stable_abi.toml
+++ b/Misc/stable_abi.toml
@@ -2500,3 +2500,7 @@
added = '3.13'
[function.PyType_GetModuleName]
added = '3.13'
+[function.Py_GetConstant]
+ added = '3.13'
+[function.Py_GetConstantBorrowed]
+ added = '3.13'