<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Missed the fact that Nathaniel didn't quote the entire original
message. Here it is:<br>
</p>
<hr size="2" width="100%"><br>
Generally, packages are compiled for the same processor generation
as the corresponding Python.
<br>
But not always -- e.g. NumPy opted for SSE2 even for Py2 to work
around some compiler bug
<br>
(<a class="moz-txt-link-freetext"
href="https://github.com/numpy/numpy/issues/6428">https://github.com/numpy/numpy/issues/6428</a>).
<br>
I was bitten by that at an old machine once and found out that there
is no way for `pip' to have checked for that.
<br>
Besides, performance-oriented packages like the one mentioned could
probably benefit from newer instructions.
<br>
<br>
Regarding identifiers:
<br>
gcc, cl and clang all have their private directories of generation
identifiers:
<br>
<a class="moz-txt-link-freetext"
href="https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/i386-and-x86_002d64-Options.html">https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/i386-and-x86_002d64-Options.html</a>
<br>
<a class="moz-txt-link-freetext"
href="https://msdn.microsoft.com/en-us/library/7t5yh4fd.aspx">https://msdn.microsoft.com/en-us/library/7t5yh4fd.aspx</a>
<br>
<a class="moz-txt-link-freetext"
href="https://clang.llvm.org/doxygen/Driver_2ToolChains_2Arch_2X86_8cpp_source.html">https://clang.llvm.org/doxygen/Driver_2ToolChains_2Arch_2X86_8cpp_source.html</a>
<br>
<br>
Linux packages typically use gcc's ones. Clang generally follows in
gcc's footsteps and accepts cl's IDs, too, as aliases.
<br>
<br>
So, using the IDs of whatever compiler is used to build the package
(i.e. most likely the canonical compiler for CPython for that
platform) looks like the simple&stupid(r) way - we can just take
the value of the "march" argument.
<br>
<br>
<br>
The tricky part is mapping the system's processor to an ID when
checking compatibility: the logic will have to keep a directory
(that's the job of `wheel' package maintainers though, I guess).
<br>
I also guess that there are cases where there's no such thing as <span
class="moz-txt-underscore"><span class="moz-txt-tag">_</span>the<span
class="moz-txt-tag">_</span></span> system's processor.
<br>
<br>
<pre class="moz-signature" cols="72">--
Regards,
Ivan</pre>
</body>
</html>