New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is python-3-5-0.exe compiled with SSE2 instrutions? If so should we mention this? #69548
Comments
Another report in to webmaster: Does this need a mention somewhere? |
With Visual Studio 2010 and earlier, SSE support had to be explicitly enabled. Starting with VS2012 it's on by default 1:
For 3.5, the 32-bit build does use SSE2 instructions. For example, float_add uses the addsd instruction (opcode F2 0F 58):
Thus 3.5 doesn't support older CPUs that lack SSE2, such as the AMD Athlon XP. I didn't check the installer itself, but that would be a pointless exercise. |
Okay then, wherever we put the -- Beginning with 3.5 we are not |
Did that report come with any reason for SSE to be relevant, such as an error message or log file? Windows requires SSE these days, since Vista IIRC, so the problem is probably someone on XP. |
Further conversation has confirmed that the person is on XP. |
He says that he got an error saying something was compiled SSE2 and needed to be SSE, but if we are going to detect XP then that will be |
Windows 8 is the first to require SSE2 1. I'm sure it's no coincidence that this became the default in VS 2012. There is probably a small minority of users that upgraded to 32-bit Windows 7 on old hardware. Python 3.5 excludes them, but I don't think the build should switch to using /arch:IA32 just to support them. If a user on such a system really needs 3.5, it's possible to create a private build without SSE2. Most packages that have extension modules will also have to be built from source instead of using prebuilt wheels. |
Ok, where do we put the info about how to create a private build? And or some place else? |
Building Python 3.5 requires Visual Studio 2015 and Windows 8.1, so this would be a vanishingly small audience that's building to deploy on old 32-bit Windows 7 machines. I don't think the PSF needs to worry about this. Anyway, the "/arch (x86)" docs 1 explain how to configure a project to use IA32, and PCBuild/readme.txt [2] explains how to build Python using Visual Studio 2015. I know this doesn't really help a novice user; just tell them to install Python 3.4! |
Sorry, I forgot to include the link to readme.txt: |
Since we officially support platforms that don't require SSE, I'll disable those instructions for 3.5.1. As eryksun points out, this doesn't affect 64-bit builds, which are the standard for most performance critical uses anyway. |
Another 2 bits of data: I now know of 2 separate users from a Swedish teenager mailing list, whose machines (in each case 'my father's old laptop') didn't have SSE2. One youth was running XP but spent today successfully migrating to windows 7 with help from her father. The other was already running windows 7. Neither of them had ever used Python before. They are now running |
New changeset 15f6bbe944fa by Steve Dower in branch '3.5': New changeset 3cf8c2930373 by Steve Dower in branch 'default': |
It seems SSE2 can be re-enabled for 3.8 branch.
|
For 3.8 we support as far back as Win7 SP1 with the update for secure DLL loading, neither of which require SSE2. So we should hold this for 3.9 when we drop Win7 completely. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: