(original) (raw)
On 8 Nov 2013 22:03, "Thomas Heller" <theller@ctypes.org> wrote:
\>
\> Am 08.11.2013 12:19, schrieb Victor Stinner:
\>
\>> 2013/11/8 Nick Coghlan <ncoghlan@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 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 :(
\>>
\>>
\>> 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.
Cheers,
Nick.
>
\>
\>>> 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.
\>>
\>>
\>> I created the following issue to not forget it:
\>> http://bugs.python.org/issue19526
\>
\>
\> Thomas
\>
\>
\>
\> \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\> Python-Dev mailing list
\> Python-Dev@python.org
\> https://mail.python.org/mailman/listinfo/python-dev
\> Unsubscribe: https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com