Author loewis
Recipients loewis, serhiy.storchaka, steve.dower, tim.golden, zach.ware
Date 2015-04-16.19:10:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1429211436.14.0.013205408138.issue23903@psf.upfronthosting.co.za>
In-reply-to
Content
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.
History
Date User Action Args
2015-04-16 19:10:36loewissetrecipients: + loewis, tim.golden, zach.ware, serhiy.storchaka, steve.dower
2015-04-16 19:10:36loewissetmessageid: <1429211436.14.0.013205408138.issue23903@psf.upfronthosting.co.za>
2015-04-16 19:10:36loewislinkissue23903 messages
2015-04-16 19:10:35loewiscreate