[Distutils] Fwd: Re: [Python-ideas] Add processor generation to wheel metadata
Ivan Pozdeev
vano at mail.mipt.ru
Tue Oct 31 09:56:06 EDT 2017
Missed the fact that Nathaniel didn't quote the entire original message.
Here it is:
------------------------------------------------------------------------
Generally, packages are compiled for the same processor generation as
the corresponding Python.
But not always -- e.g. NumPy opted for SSE2 even for Py2 to work around
some compiler bug
(https://github.com/numpy/numpy/issues/6428).
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.
Besides, performance-oriented packages like the one mentioned could
probably benefit from newer instructions.
Regarding identifiers:
gcc, cl and clang all have their private directories of generation
identifiers:
https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/i386-and-x86_002d64-Options.html
https://msdn.microsoft.com/en-us/library/7t5yh4fd.aspx
https://clang.llvm.org/doxygen/Driver_2ToolChains_2Arch_2X86_8cpp_source.html
Linux packages typically use gcc's ones. Clang generally follows in
gcc's footsteps and accepts cl's IDs, too, as aliases.
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.
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).
I also guess that there are cases where there's no such thing as _the_
system's processor.
--
Regards,
Ivan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20171031/b6f3aee4/attachment.html>
More information about the Distutils-SIG
mailing list