-
Notifications
You must be signed in to change notification settings - Fork 263
Add test forcing newer MSVC/VC++ compilers supporting modern C++ in Python 2.7/3.5 #333
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
Conversation
aee1b59
to
95ac408
Compare
…SDK and MSSdk to not use vcpython27 or MSVC 10
450fb5b
to
832e0d2
Compare
…ptools.msvc to get environment variables from vcvarsall
8d10ec5
to
b71f514
Compare
I don't know why I'm doing this, nor why I'm doing this to myself, but it seems to (finally) be working! 😮 There are a few thing I'd still like to check, then I'll add some extra docs, and then we can discuss if this is actually worth including (given that Python 2.7 and 3.5 are reasonably dead; but then PyPy 2.7 isn't, so ...) |
ba92364
to
c7173b2
Compare
So, @Czaki: Python 3.5 perfectly builds C++17 code (agreeing with what https://wiki.python.org/moin/WindowsCompilers says). Do you remember why you skipped this, in #156? The comment that it uses MSVC 10 does not seem to be correct. (EDIT: GH Actions seems to be confused, possibly by the amended commit where I forgot to update the tests. Azure shows that it works, though.) |
I do not remember. |
Alright. Let's see if this works, then. |
Found this comment in #185: #185 (comment) So I do not really understand, because |
4dd3b3a
to
14c54ff
Compare
If I good remember. MSVC 14 is minimal version. extension can be compiled with more modern ones. C++11 is supported from MSVC 2015 So maybe configuration of CI provider changed? Or some update of setuptools change default compilers used by python 3.5. As you see in pointed comment. MSVC 14 is invoked and it does not support C+11/14/17. |
22c8f41
to
2d75c3d
Compare
Ah, I see the confusion. But MSVC 14 corresponds to Visual Studio 2015, 2017, and 2019: https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering. Microsoft's versioning isn't much clearer/less messy than Apple/macOS/Xcode's, it seems. They even skipped MSVC 13, for sóme reason (I guess MSVC ánd number 13 would really be a double nightmare?). Anyway, I think that everything built with MSVC 14 could be compatible and that things built with VS 2019 are still compatible with VS 2015 (there's just one redistributable: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads), so that would explain why Python 3.5 can be built with VS 2019. Does that make sense? That would explains why things now work, right? |
Nice that it works now. |
That's true, yes :-) I just wish I understood what went wrong before. But maybe I should just be happy that it now works! |
Looks ok for me. |
Looks good to me, thanks! |
Thanks for checking! :-) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I must say, good job. It sure looks like you enjoy fighting Windows toolchains @YannickJadoul ! :P Also the docs are good and clear 👍
I'm almost sure it has to do with setuptools. |
Pffffffffffffffffffffffffffffffffffffffffffffff, sure ;-)
Aaaah, right, amazing! You're a hero! :-) Thanks for the explanation; now I can sleep again ;-) |
Well, if everyone's happy, I'm merge-merge-merging! Thanks for all the (really necessary) sanity checks, everyone! |
I take it this is not in a released version? I was trying to convert the rest of my build to cibuildwheel and this was the one part that still wasn't building; I t think it might be if there was a change since 1.4.1 (I should of known when I had to change the docs off of stable to read the suggestion, but I thought it was just a docs change and not a code change). By the way, does this look about right? I was not able to figure out how to use the Github Action to select 32 bit vs. 64 bit. |
Still doesn't work, I get this error:
Any ideas? I'll try to compare it to what I manually do tomorrow. |
Ahhhh, didn't know powershell used dot sourcing like bash! Switched to cmd and used call and it made it past this, so that was the problem. I might suggest some docs updates later. @YannickJadoul do you know if there's a way to improve it with the GH Action you (I assume) mention in the docs? Would like to remove the manual path. |
Sorry for the delay, @henryiii! I suppose you have figured this out by now, but this PR did not add anything to
Great, please do! I haven't really needed this in a project myself, yet (since my
Not really, actually. I merely encountered this while researching the |
Cfr. #301 and pybind11's suggested workaround