[Python-Dev] What version is an extension module binary compatible with

Glenn Linderman v+python at g.nevcal.com
Tue Mar 28 13:05:53 EDT 2017


On 3/28/2017 9:18 AM, Paul Moore wrote:
> On 28 March 2017 at 12:24, Miro Hrončok <mhroncok at redhat.com> wrote:
>> I'd like some clarification on what ABI compatibility we can expect.
>>   * Should the ABI be stable across patch releases (so calling
>> PySlice_AdjustIndices from an existing macro would be a bug)?
>>   * Should the ABI be forward-compatible within a minor release (so modules
>> built for 3.6.0 should be usable with 3.6.1, but not vice versa)?
>>   * Or should we expect the ABI to change even across patch releases?
> Given that binary wheels are built against a specific minor version
> (3.6, 3.5, ...) I would expect the ABI to be consistent over a minor
> release. That would fit with my expectations of the compatibility
> guarantees on patch releases.
>
> So I from what you describe, I'd consider this as a bug. Certainly, if
> someone built a C extension as a wheel using Python 3.6.1, it would be
> tagged as compatible with cp36, and pip would happily use it when
> installing to a Python 3.6.0 system, where it would fail.
>
Somewhere I got the idea that extension authors were supposed to build 
against the n.m.0 releases, expressly so that the extensions would then 
be compatible with the whole n.m.x series of releases. Did I dream that?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170328/3306b83e/attachment.html>


More information about the Python-Dev mailing list