summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Viktorin <encukou@gmail.com>2021-05-25 11:42:03 (GMT)
committerGitHub <noreply@github.com>2021-05-25 11:42:03 (GMT)
commitd16856960e33bc5f64fc5b842f132058becafa37 (patch)
tree9fb11b501ada3bebcccb6936aaacd9d5dd1c7737
parent63f17c252ab1b9357c5f022296213c42d9629458 (diff)
downloadcpython-d16856960e33bc5f64fc5b842f132058becafa37.zip
cpython-d16856960e33bc5f64fc5b842f132058becafa37.tar.gz
cpython-d16856960e33bc5f64fc5b842f132058becafa37.tar.bz2
bpo-43795: Remove Py_FrozenMain from the Limited API & Stable ABI (GH-26241)
Py_FrozenMain was added to the Limited C API in [bpo-42591]() (3.10.0a4); but to fix that issue it would be enough to add it to the regular C API. The function is undocumented, tests were added very recently ([bpo-44131]()), and most importantly, it is not present in all builds of Python, as the linker sometimes omits it as unused. It should be added back when these issues are fixed. Note that this does not affect Python's regular C API.
-rw-r--r--Doc/data/stable_abi.dat1
-rw-r--r--Doc/whatsnew/3.10.rst4
-rw-r--r--Include/cpython/pylifecycle.h4
-rw-r--r--Include/pylifecycle.h3
-rw-r--r--Misc/NEWS.d/next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst1
-rw-r--r--Misc/stable_abi.txt2
-rwxr-xr-xPC/python3dll.c1
7 files changed, 9 insertions, 7 deletions
diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat
index d582204..50207ac 100644
--- a/Doc/data/stable_abi.dat
+++ b/Doc/data/stable_abi.dat
@@ -783,7 +783,6 @@ var,Py_FileSystemDefaultEncodeErrors,3.10,
var,Py_FileSystemDefaultEncoding,3.2,
function,Py_Finalize,3.2,
function,Py_FinalizeEx,3.6,
-function,Py_FrozenMain,3.10,
function,Py_GenericAlias,3.9,
function,Py_GenericAliasType,3.9,
function,Py_GetBuildInfo,3.2,
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index a006eb4..233ee8b 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -1927,6 +1927,10 @@ Porting to Python 3.10
instead.
(Contributed by Victor Stinner and Erlend E. Aasland in :issue:`43908`.)
+* The undocumented function ``Py_FrozenMain`` has been removed from the
+ limited API. The function is mainly useful for custom builds of Python.
+ (Contributed by Petr Viktorin in :issue:`26241`)
+
Deprecated
----------
diff --git a/Include/cpython/pylifecycle.h b/Include/cpython/pylifecycle.h
index 6fe46a5..bb5b07e 100644
--- a/Include/cpython/pylifecycle.h
+++ b/Include/cpython/pylifecycle.h
@@ -2,6 +2,10 @@
# error "this header file must not be included directly"
#endif
+/* Py_FrozenMain is kept out of the Limited API until documented and present
+ in all builds of Python */
+PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv);
+
/* Only used by applications that embed the interpreter and need to
* override the standard encoding determination mechanism
*/
diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h
index 7925eaf..9b2dd08 100644
--- a/Include/pylifecycle.h
+++ b/Include/pylifecycle.h
@@ -31,9 +31,6 @@ PyAPI_FUNC(void) _Py_NO_RETURN Py_Exit(int);
/* Bootstrap __main__ (defined in Modules/main.c) */
PyAPI_FUNC(int) Py_Main(int argc, wchar_t **argv);
-
-PyAPI_FUNC(int) Py_FrozenMain(int argc, char **argv);
-
PyAPI_FUNC(int) Py_BytesMain(int argc, char **argv);
/* In pathconfig.c */
diff --git a/Misc/NEWS.d/next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst b/Misc/NEWS.d/next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst
new file mode 100644
index 0000000..23db233
--- /dev/null
+++ b/Misc/NEWS.d/next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst
@@ -0,0 +1 @@
+The undocumented function :c:func:`Py_FrozenMain` is removed from the Limited API.
diff --git a/Misc/stable_abi.txt b/Misc/stable_abi.txt
index a78bcb7..adee1a9 100644
--- a/Misc/stable_abi.txt
+++ b/Misc/stable_abi.txt
@@ -2079,8 +2079,6 @@ function PyType_GetModule
added 3.10
function PyType_GetModuleState
added 3.10
-function Py_FrozenMain
- added 3.10
function PyFrame_GetLineNumber
added 3.10
function PyFrame_GetCode
diff --git a/PC/python3dll.c b/PC/python3dll.c
index 200d1d1..be85f27 100755
--- a/PC/python3dll.c
+++ b/PC/python3dll.c
@@ -55,7 +55,6 @@ EXPORT_FUNC(Py_Exit)
EXPORT_FUNC(Py_FatalError)
EXPORT_FUNC(Py_Finalize)
EXPORT_FUNC(Py_FinalizeEx)
-EXPORT_FUNC(Py_FrozenMain)
EXPORT_FUNC(Py_GenericAlias)
EXPORT_FUNC(Py_GenericAliasType)
EXPORT_FUNC(Py_GetArgcArgv)