<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>