[Python-Dev] Document C API that is not part of the limited API
Nick Coghlan
ncoghlan at gmail.com
Fri Dec 30 09:33:19 EST 2016
On 29 December 2016 at 06:41, Steve Dower <steve.dower at python.org> wrote:
> On 28Dec2016 1145, Brett Cannon wrote:
>
>> On Tue, 27 Dec 2016 at 12:15 Ronald Oussoren <ronaldoussoren at mac.com
>> <mailto:ronaldoussoren at mac.com>> wrote:
>> A directive would make it easier to ensure that the text about the
>> stable API is consistent. I’d also consider adding that directive
>> to all API’s that *are* part of the stable API instead of the other
>> way around (that would also require changes to …/stable.html). That
>> would have two advantages: firstly it makes it easier to document
>> from which version an API is part of the stable ABI, and secondly
>> forgetting the annotation would imply that an API is not part of the
>> stable ABI instead of accidentally claiming to increase the stable
>> ABI.
>>
>>
>> I like Ronald's suggestion of both using a directive and making it for
>> the stable ABI since it should be an opt-in thing for the API to be
>> stable instead of opt-out.
>>
>
> The directive is a good idea, but I'm a little concerned about the stable
> API being opt-out in the headers and opt-in in the documentation.
>
> Perhaps we should also figure out the preprocessor gymnastics we need to
> make it opt-in in the headers too? Though once we get the build validation
> to detect when the stable API changes accidentally it'll be less of an
> issue.
>
Making it opt-in in the documentation could make the build validation
easier: check the list from the *docs* against the actual symbols being
exported by the headers.
That would have a few benefits:
- if you accidentally add a new function to the stable ABI, you get a test
failure
- if you deliberately add a new function to the stable ABI, but forget to
document it as such, you get a test failure
- if the stable ABI version added directive in the docs doesn't match the
stable ABI version used in the headers, you get a test failure
(That suggests the tests would need to check the headers with all stable
ABI versions from 3.2 up to the current release and ensure they match the
current C API documentation)
Cheers,
Nick.
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20161231/e59099b1/attachment.html>
More information about the Python-Dev
mailing list