On 23 January 2014 23:58, Nick Coghlan <ncoghlan@gmail.com> wrote:
I really think that's our best near term workaround - still room for improvement, but " pip install numpy assumes SSE2" is a much better situation than "pip install numpy doesn't work on Windows".
Is it? Do you have any idea what proportion of (the relevant) people would be using Windows with hardware that doesn't support SSE2? I feel confident that it's less than 10% but I don't know how to justify a tighter bound than that. You need to bear in mind that people currently have a variety of ways to install numpy on Windows that do work already without limitations on CPU instruction set. Most numpy users will not get any immediate benefit from the fact that "it works using pip" rather than "it works using the .exe installer" (or any of a number of other options). It's the unfortunate end users and the numpy folks who would have to pick up the pieces if/when the SSE2 assumption fails.
Such a change would help a lot of people *right now*, while still leaving room to eventually figure out something more sophisticated (like postinstall hooks or simpler runtime multi-build support or NumPy changing to a dependency that internally makes this decision at runtime).
Postinstall hooks are not that sophisticated and most packaging systems have them. You're advocating for numpy to take a dodgy compromise here but can it not be the other way round? Wheel, pip etc. could quickly agree on and implement a postinstall hook that would work for numpy and then that could be made more sophisticated later on. Oscar