Hi all

I would like to propose moving Python 3.5 to use Visual C++ 14.0 as the main 
compiler. The first CTP of Visual Studio "14" was released earlier this week: 
http://blogs.msdn.com/b/vcblog/archive/2014/06/03/visual-studio-14-ctp.aspx

The major feature of interest in this version of MSVC is a new policy to 
maintain binary compatibility for the CRT into the future. (There will be a 
blog about this soon, but I didn't want to hold up getting the discussion 
started here.)

What this means for Python is that C extensions for Python 3.5 and later can be 
built using any version of MSVC from 14.0 and later. Those who are aware of the 
current state of affairs where you need to use a matching compiler will 
hopefully see how big an improvement this will be. It is also likely that other 
compilers will have an easier time providing compatibility with this new CRT, 
making it simpler and more reliable to build extensions with LLVM or GCC 
against an MSVC CPython. 

The other major benefit is that both products are at points in their 
development where changes can be made. Being a Microsoft employee, I have the 
ability to test Python builds regularly against the daily MSVC builds and to 
file bugs directly to the VC team (crashes, incorrect code generation, 
incorrect linking, performance regressions, etc.). This is a great opportunity 
to make sure that our needs are covered by the compiler team - it's also a good 
chance to raise any particular missing features that would be beneficial.

My internal testing shows that the core code is almost fully compatible and 
builds successfully with only trivial modifications (some CRT variables are now 
macros with a leading underscore). The project files need updating, but I am 
willing to do this as part of any migration. There may also be some work 
required for external dependencies, since I did not test these, but I am also 
willing to do that.

Basically, what I am offering to do is:

* Update the files in PCBuild to work with Visual Studio "14"
* Make any code changes necessary to build with VC14
* Regularly test the latest Python source with the latest MSVC builds and 
report issues/suggestions to the MSVC team
* Keep all changes in a separate (public) repo until early next year when we're 
getting close to the final VS "14" release 

What I am asking anyone else to do is:

* Nothing

Thoughts/comments/concerns?

Cheers,
Steve
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to