New submission from h-vetinari <h.vetin...@gmx.com>:

While Visual Studio 16.8 (<-> MSVC 19.28) has _just_ been released, I think it 
would be worthwhile to consider upgrading the compiler toolchain that's used to 
build the CPython windows binaries, particularly before the release of 3.10.

That's because many libraries (e.g. numpy/scipy) are stuck to the same 
compilers as CPython for ABI-compatibility, and generally, MSVC is by far the 
lowest common denominator in terms of C/C++ compliance, cf. 
https://github.com/scipy/scipy/blob/master/doc/source/toolchain.rst

For example, dropping python 3.6 support in scipy should finally enable them to 
use C++14/C++17, since python 3.7+ is built with Visual Studio 15.7, which has 
essentially complete support, cf. 
https://en.cppreference.com/w/cpp/compiler_support & 
https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering.

However (& as far as I can tell), the windows compiler version for CPython 
hasn't moved since the release of 3.7, cf. 
https://pythondev.readthedocs.io/windows.html#python-and-visual-studio-version-matrix
 (I know that's not an official page, but vstinner can hardly be considered a 
questionable source), and every release without upgrading the toolchain means 
another year of waiting for the ecosystem to unlock more modern C/C++.

The reason why Visual Studio 16.8 is particularly interesting, is that MS has 
for a very long time not paid attention to C compliance, and only recently 
completed C99 support, with C11/C17 following in 16.8 (though as of yet without 
optional aspects of the standard like atomics, threading, VLAs, complex types, 
etc.), cf. 
https://devblogs.microsoft.com/cppblog/c11-and-c17-standard-support-arriving-in-msvc/.

Looking at the table from 
https://github.com/scipy/scipy/blob/master/doc/source/toolchain.rst, it would 
be cool if we could add the last line as follows
===================   ==============   ===================
CPython               MS Visual C++    C Standard
===================   ==============   ===================
2.7, 3.0, 3.1, 3.2       9.0           C90
3.3, 3.4                10.0           C90 & some of C99
3.5, 3.6                14.0           C90 & most of C99
3.7                     15.7           C90 & most of C99
3.8                     15.7           C90 & most of C99
3.9                     15.7           C90 & most of C99
3.10                    16.8           C99, C11*, C17
===================   ==============   ===================
* [comment about lack of C11 optionals]

----------
components: Windows
messages: 381167
nosy: h-vetinari, paul.moore, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Build windows binaries with MS VS2019 16.8+ / MSVC 19.28+
type: enhancement
versions: Python 3.10

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42380>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to