<p dir="ltr"><br>
On 8 Nov 2013 09:48, "Victor Stinner" <<a href="mailto:victor.stinner@gmail.com">victor.stinner@gmail.com</a>> wrote:<br>
><br>
> 2013/11/8 Nick Coghlan <<a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>>:<br>
> >> <a href="http://hg.python.org/cpython/rev/69071054b42f">http://hg.python.org/cpython/rev/69071054b42f</a><br>
> >> changeset:   86968:69071054b42f<br>
> >> user:        Victor Stinner <<a href="mailto:victor.stinner@gmail.com">victor.stinner@gmail.com</a>><br>
> >> date:        Wed Nov 06 18:58:22 2013 +0100<br>
> >> summary:<br>
> >>   Issue #19512: Add a new _PyDict_DelItemId() function, similar to<br>
> >> PyDict_DelItemString() but using an identifier for the key<br>
> >> ...<br>
> ><br>
> > As a private API, this shouldn't be part of the stable ABI.<br>
><br>
> When I don't know if a function should be made public or not, I<br>
> compare with other functions.<br>
><br>
> In Python 3.3, _PyDict_GetItemIdWithError(), _PyDict_GetItemId() and<br>
> _PyDict_SetItemId() are part of the stable ABI if I read correctly<br>
> dictobject.h. _PyObject_GetAttrId() is also part of the stable ABI.<br>
> Was it a mistake, or did I misunderstand how stable functions are<br>
> declared?</p>
<p dir="ltr">Likely a mistake - the stable ABI is hard to review properly (since it can depend on non local preprocessor checks, so a mistake may not be obvious in a diff), we don't currently have a systematic approach to handling changes and there's no automated test to catch inadvertent additions or (worse) removals :(</p>

<p dir="ltr">This may be a good thing for us to look at more generally when things settle down a bit after the beta 1 feature freeze.</p>
<p dir="ltr">Cheers,<br>
Nick.</p>
<p dir="ltr">><br>
> Victor<br>
> _______________________________________________<br>
> Python-Dev mailing list<br>
> <a href="mailto:Python-Dev@python.org">Python-Dev@python.org</a><br>
> <a href="https://mail.python.org/mailman/listinfo/python-dev">https://mail.python.org/mailman/listinfo/python-dev</a><br>
> Unsubscribe: <a href="https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com">https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com</a><br>
</p>