[Python-Dev] ABI stability between bugfix versions?

Antoine Pitrou solipsis at pitrou.net
Tue Sep 4 00:59:40 CEST 2012


On Mon, 03 Sep 2012 22:37:31 +0200
"Martin v. Löwis" <martin at v.loewis.de> wrote:
> Am 03.09.2012 12:11, schrieb Antoine Pitrou:
> > Despite being undocumented, these two macros are used in a couple of
> > third-party extension modules (*) such as greenlet and py-judy. This
> > means that such an extension compiled for 2.7.3 wouldn't work with
> > 2.7.4, and vice-versa. Is there something we can do to alleviate the
> > issue? Add a note in the release notes?
> 
> I think breaking existing extension modules in a bugfix release is
> really not acceptable.
> 
> I also think that the breakage can be reduced by keeping the global
> variable. There would then be two counters: the global used by
> old modules, the per-thread counter used by recompiled modules.
> I believe this would require separate versions of the helper functions
> also.

Indeed. That sounds workable, despite the added complexity.

> The question also is about the other direction: modules compiled
> for 2.7.4 that are run on 2.7.3. I think this would be more problematic
> in your patch, since the code would just access fields in the thread
> state which aren't there. If the helper functions are called
> differently, the extension would fail to load, which IMO is the better
> reaction.

Right, that's a better behaviour than crashing.

Thank you,

Antoine.


More information about the Python-Dev mailing list