New submission from Nathaniel Smith:

In the process of fixing issue 27867, a new function PySlice_AdjustIndices was 
added, and PySlice_GetIndicesEx was converted into a macro that calls this new 
function. The patch was backported to both the 3.5 and 3.6 branches, was 
released in 3.6.1, and is currently slated to be released as part of 3.5.4.

Unfortunately, this breaks our normal ABI stability guarantees for micro 
releases: it means that if a C module that uses PySlice_GetIndicesEx is 
compiled against e.g. 3.6.1, then it cannot be imported on 3.6.0. This affects 
a number of high-profile packages (cffi, pandas, mpi4py, dnf, ...). The only 
workaround is that if you are distributing binary extension modules (e.g. 
wheels), then you need to be careful not to upgrade to 3.6.1. It's not possible 
for a wheel to declare that it requires 3.6.1-or-better, because CPython 
normally follows the rule that we don't make these kinds of changes. Oops.

CC'ing Ned and Larry, because it's possible this should trigger a 3.6.2, and I 
think it's a blocker for 3.5.4. CC'ing Serhiy as the author of the original 
patch, since you probably have the best idea how this could be unwound with 
minimal breakage :-).

python-dev discussion: 
https://mail.python.org/pipermail/python-dev/2017-March/147707.html

Fedora bug: https://bugzilla.redhat.com/show_bug.cgi?id=1435135

----------
messages: 290796
nosy: larry, ned.deily, njs, serhiy.storchaka
priority: normal
severity: normal
status: open
title: PySlice_GetIndicesEx change broke ABI in 3.5 and 3.6 branches
versions: Python 3.5, Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29943>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to