[Python-Dev] [Python-checkins] cpython: Issue #19512: Add a new _PyDict_DelItemId() function, similar to

Nick Coghlan ncoghlan at gmail.com
Fri Nov 8 13:55:17 CET 2013

On 8 Nov 2013 22:03, "Thomas Heller" <theller at ctypes.org> wrote:
> Am 08.11.2013 12:19, schrieb Victor Stinner:
>> 2013/11/8 Nick Coghlan <ncoghlan at gmail.com>:
>>>> In Python 3.3, _PyDict_GetItemIdWithError(), _PyDict_GetItemId() and
>>>> _PyDict_SetItemId() are part of the stable ABI if I read correctly
>>>> dictobject.h. _PyObject_GetAttrId() is also part of the stable ABI.
>>>> Was it a mistake, or did I misunderstand how stable functions are
>>>> declared?
>>> Likely a mistake - the stable ABI is hard to review properly (since it
>>> 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
>>> and there's no automated test to catch inadvertent additions or (worse)
>>> removals :(
>> Would it be possible to remove them from the stable ABI in Python 3.4?
>> They are marked as private using the "_Py" prefix...
> I may be confusing API and ABI (see my other message), but adding to
> or removing functions from the stable ABI seems to be a very serious
> mistake, IMO - private or not.  Unless my understanding of the word
> 'stable' is wrong...

Yeah, we can add things to the stable ABI with an appropriate version
guard, but we won't remove even private APIs if they were previously
published in 3.3.

The main thing I get out of this is that we need to figure out a way to
test it automatically - the nature of the problem means that code review is
an inherently unreliable mechanism for spotting mistakes.


>>> This may be a good thing for us to look at more generally when things
>>> down a bit after the beta 1 feature freeze.
>> I created the following issue to not forget it:
>> http://bugs.python.org/issue19526
> Thomas
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20131108/c71f1b13/attachment.html>

More information about the Python-Dev mailing list