<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Aug 1, 2016 at 12:01 PM Steve Dower <<a href="mailto:steve.dower@python.org">steve.dower@python.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 01Aug2016 0702, Nick Coghlan wrote:<br>
> On 1 August 2016 at 23:36, Daniel Holth <<a href="mailto:dholth@gmail.com" target="_blank">dholth@gmail.com</a>> wrote:<br>
>> build_ext command determines<br>
>> the DLL extension. It could be patched or modified to read an "I'm ABI3"<br>
>> flag on the Extension() object.<br>
>><br>
>> We could pass an ABI3 flag to bdist_wheel in the same way we ask for<br>
>> universal 'py2.py3-none-any'. To be set if the wheel contained only ABI3<br>
>> extensions, and ignored on py2.<br>
><br>
> The general idea sounds good to me, but as a slight bikeshed on the<br>
> flag name, perhaps "cpabi3"?<br>
><br>
> That's a mash-up of the 'cp' interpreter code for CPython, with the<br>
> 'abi3' stable ABI tag.<br>
><br>
> Longer term, we may want to allow people to version that (as new APIs<br>
> may sometimes be added to the stable ABI, which you gain access to at<br>
> the C level by setting Py_LIMITED_API to the corresponding CPython hex<br>
> version rather than just defining it [1]), but as a starting point<br>
> enabling access to the initial 3.2 stable ABI used by cffi should be<br>
> sufficient.<br>
<br>
The DLL tag on Windows will have to just be ".pyd" if you want to<br>
support back prior to 3.5. In 3.5 you can use ".cp35-win32.pyd" or<br>
".cp35-win_amd64.pyd" and the importer will prefer that DLL over a plain<br>
".pyd", but my proposal to also support ".cp3-${PLAT}.pyd" here didn't<br>
make it.<br>
<br>
The wheel tag is more important than the DLL tag. (Possibly you're not<br>
even suggesting changing the DLL name at all and just passing the flag<br>
through for the build option? Hard to tell from the discussion.)<br></blockquote><div><br></div><div>I'm sure we are interpolating from Linux, where you'd be looking at extensions .cpython-35m-x86_64-linux-gnu.so versus .abi3.so. But any D<span style="line-height:1.5">LL extension that the target CPythons will agree to load, plus an appropriate wheel tag, should be sufficient for our use case.</span></div></div></div>