Martin v. Löwis added the comment:

I think the approach taken in this script is incorrect. It leads to false 
modifications of the stable ABI, making it in fact unstable. Four examples:

PyAST_FromNode does not belong to the stable ABI, because "struct _node" 
doesn't belong to the stable ABI (see PEP 384 for a list of structures that 
belong to the stable ABI). In fact, ast.h isn't even a header file that 
extension modules should regularly include.

All deletions are (e.g. PyCFunction_New) are certainly incorrect: functions 
must never be removed from the stable ABI. In fact, Objects/methodobject.c 
preserves PyCFunction_New just for the sake of the stable ABI (despite there 
being no longer a declaration in the header file).

PyErr_SetFromWindowsErrWithFilename could belong to the stable ABI, or not, 
depending on the intention of stability in its addition. Since it was there 
since 3.0, and had not been in the stable ABI back then, I'd claim that it 
doesn't belong to the stable ABI (apparently, nobody has missed it). OTOH

PyExc_BrokenPipeError might be a useful addition to the stable ABI. However, it 
was not there in 3.0, so the header files ought to version-guard its 
declaration, but currently don't.

So I prefer if the def file keeps being maintained manually; I don't mind if 
there is a tool that checks for inconsistencies, leaving their resolution to a 
maintainer.

----------
nosy: +loewis

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23903>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to