<div dir="ltr">On Thu, Nov 21, 2013 at 2:53 PM, Nick Coghlan <span dir="ltr"><<a href="mailto:ncoghlan@gmail.com" target="_blank">ncoghlan@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im"><p dir="ltr">For 2.7.7, I think some combination of the two following ideas would be worth pursuing:<br>

</p></div>
<p dir="ltr">- a C runtime independent API flag (set by default on Windows when building with a compiler other than VS2008). This would largely be a backport of some of the stable ABI work from Python 3.<br>
</p></blockquote><div style>very cool!</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p dir="ltr">

- getting Windows closer to the current Mac OS X situation by ensuring that the C runtime used directly affects the ABI flags and shared library names. PyPI would apply the Mac OS X guideline where extensions are expected to be compatible with the <a href="http://python.org" target="_blank">python.org</a> binaries.</p>

</blockquote><div style>sounds good.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><p dir="ltr">(Note, similar to the Mac OS X situation, I think we should do this without hosting any new interpreter variants on <a href="http://python.org" target="_blank">python.org</a> - </p>

</blockquote><div style>but we do host different variants for OS-X on <a href="http://python.org">python.org</a>. It's complicated by the universal binary thing, but there are two variants hosted. There are also two Windows variants  32 and 64 bit -- yes you can think of those as different platforms, but as you can run the 32 bit build on a 64 bit Windows, things do get confused -- I've seen a lot of questions on mailing lists that have to do with those two getting mixed up (the msi installer really could be smarter...)</div>

<div style><br></div><div style>I'm not really proposing that <a href="http://python.org">python.org</a> host another varient at this point, but I dont hink it should be off the table.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<p dir="ltr">VS2010 and VS2013 source builds would become separate build-from-source ecosystems for extensions, using sdists on PyPI as the default distribution mechanism)<br></p></blockquote><div style>A lot of Windows users need binaries -- it would be really nice if we could make that easy. But the key thing is that people who do a "pip install something" should not get an incompatible binary. And the way to do that is</div>

<div style>make sure the wheel naming scheme used by binary builds in teh wild don't use the same naming scheme as <a href="http://pyton.org">pyton.org</a> builds if they  are not compatible with them.</div><div style>

<br></div><div style>As it sounds like stackless is going to do this soon, it woulld be nice to have some consensus as to what the standard should be.</div><div style><br></div><div style>By the way, I'm still not sure if it should go in the ABI tag or the Platfrom tag. from the examples in the PEP, it doesn't look like it should be the ABI tab, and in the case of teh OS-X builds, it's in the platfrm tag.</div>

<div style><br></div><div style>Also, on my OS-X box, with a somewhat hacked ptyon,org build, I get:</div><div style><br></div><div style>pyGnome-alpha-cp27-none-macosx_10_6_i386.whl<br></div><div style><br></div><div style>

when I build a binary wheel.</div><div style><br></div><div style>Note that the "abi" tag is "none" -- not sure why that is, this is clealy cpython2.7.* -- shouldn't that be cp27 for the ABI tag?</div>

<div style><br></div><div style>The wheel docs are kind of sparse, so I have no idea where that abi tag is supposed to come from -- ah, I found something in PEP 425:</div><div style><br></div><div style><dt style="color:rgb(0,0,0);font-family:Arial,Verdana,Geneva,'Bitstream Vera Sans',Helvetica,sans-serif;font-size:18px;line-height:22.266666412353516px">

"""</dt><dt style="color:rgb(0,0,0);font-family:Arial,Verdana,Geneva,'Bitstream Vera Sans',Helvetica,sans-serif;font-size:18px;line-height:22.266666412353516px">Why is the ABI tag (the second tag) sometimes "none" in the reference implementation?</dt>

<dd style="color:rgb(0,0,0);font-family:Arial,Verdana,Geneva,'Bitstream Vera Sans',Helvetica,sans-serif;font-size:18px;line-height:22.266666412353516px">Since Python 2 does not have an easy way to get to the SOABI (the concept comes from newer versions of Python 3) the reference implentation at the time of writing guesses "none". Ideally it would detect "py27(d|m|u)" analagous to newer versions of Python, but in the meantime "none" is a good enough way to say "don't know".</dd>

</div><div style>"""</div><div style>I don't know what SOABI is, but it soudns like that defines what should be in the abi tag...</div><div style><br></div><div style><br></div><div style>But the platfrom tag is:</div>

<div style>  macosx_10_6_i386.whl</div><div><br></div><div style>macosx -- natch'</div><div style>10_6 -- built for the 10.6 SDK (I'm running 10.7...)</div><div style>i386 -- I've hacked my build to be 32 bit only</div>

<div><br></div><div style>Does this belong on the distutils list instead?</div><div><br></div><div style>-Chris</div><div style><br></div></div>-- <br><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>

NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a>
</div></div>