Browse Source
bpo-43868: Remove PyOS_ReadlineFunctionPointer from the stable ABI list (GH-25442)
The inclusion of PyOS_ReadlineFunctionPointer in python3dll.c was a mistake.
According to PEP 384:
> functions expecting FILE* are not part of the ABI, to avoid depending
> on a specific version of the Microsoft C runtime DLL on Windows.
https://bugs.python.org/issue43868
pull/5162/merge
Petr Viktorin
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
10 additions and
2 deletions
Doc/whatsnew/3.10.rst
Include/cpython/pythonrun.h
Include/pythonrun.h
Misc/NEWS.d/next/C API/2021-04-16-18-15-56.bpo-43868.twQ7KH.rst
PC/python3dll.c
@ -1740,6 +1740,12 @@ Removed
Use Python :mod: `symtable` module instead.
(Contributed by Victor Stinner in :issue: `43244` .)
* Remove :c:func: `PyOS_ReadlineFunctionPointer` from the limited C API headers
and from `` python3.dll `` , the library that provides the stable ABI on
Windows. Since the function takes a `` FILE* `` argument, its ABI stability
cannot be guaranteed.
(Contributed by Petr Viktorin in :issue: `43868` .)
* Remove `` ast.h `` , `` asdl.h `` , and `` Python-ast.h `` header files.
These functions were undocumented and excluded from the limited C API.
Most names defined by these header files were not prefixed by `` Py `` and so
@ -118,3 +118,4 @@ PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject
/* Stuff with no proper home (yet) */
PyAPI_FUNC ( char * ) PyOS_Readline ( FILE * , FILE * , const char * ) ;
PyAPI_DATA ( PyThreadState * ) _PyOS_ReadlineTState ;
PyAPI_DATA ( char ) * ( * PyOS_ReadlineFunctionPointer ) ( FILE * , FILE * , const char * ) ;
@ -16,7 +16,6 @@ PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *);
/* Stuff with no proper home (yet) */
PyAPI_DATA ( int ) ( * PyOS_InputHook ) ( void ) ;
PyAPI_DATA ( char ) * ( * PyOS_ReadlineFunctionPointer ) ( FILE * , FILE * , const char * ) ;
/* Stack size, in "pointers" (so we get extra safety margins
on 64 - bit platforms ) . On a 32 - bit platform , this translates
@ -0,0 +1,3 @@
:c:func: `PyOS_ReadlineFunctionPointer` is no longer exported by limited C API
headers and by `` python3.dll `` on Windows. Like any function that takes
`` FILE* `` , it is not part of the stable ABI.
@ -808,7 +808,6 @@ EXPORT_DATA(PyODictIter_Type)
EXPORT_DATA ( PyODictKeys_Type )
EXPORT_DATA ( PyODictValues_Type )
EXPORT_DATA ( PyOS_InputHook )
EXPORT_DATA ( PyOS_ReadlineFunctionPointer )
EXPORT_DATA ( PyProperty_Type )
EXPORT_DATA ( PyRange_Type )
EXPORT_DATA ( PyRangeIter_Type )