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.
This commit is contained in:
Petr Viktorin 2021-05-25 13:42:03 +02:00 committed by GitHub
parent 63f17c252a
commit d16856960e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 9 additions and 7 deletions

View file

@ -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,

View file

@ -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
----------

View file

@ -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
*/

View file

@ -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 */

View file

@ -0,0 +1 @@
The undocumented function :c:func:`Py_FrozenMain` is removed from the Limited API.

View file

@ -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

View file

@ -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)