From d16856960e33bc5f64fc5b842f132058becafa37 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Tue, 25 May 2021 13:42:03 +0200 Subject: [PATCH] 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. --- Doc/data/stable_abi.dat | 1 - Doc/whatsnew/3.10.rst | 4 ++++ Include/cpython/pylifecycle.h | 4 ++++ Include/pylifecycle.h | 3 --- .../next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst | 1 + Misc/stable_abi.txt | 2 -- PC/python3dll.c | 1 - 7 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 Misc/NEWS.d/next/C API/2021-05-19-15-09-47.bpo-43795.WAHRxt.rst diff --git a/Doc/data/stable_abi.dat b/Doc/data/stable_abi.dat index d582204f5626..50207ac91ec8 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 a006eb4d6c53..233ee8b201f0 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 6fe46a544016..bb5b07ef5901 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 7925eafc6604..9b2dd0868eb2 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 000000000000..23db2330ac39 --- /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 a78bcb76b41d..adee1a9fe730 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 200d1d14e294..be85f27e72ac 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) -- 2.47.3