On 6 August 2016 at 12:15, Steve Dower <steve.dower@python.org> wrote:
FYI, it's MSVC 14.0 (which is included in VS 2015).
Personally I'd like to see it restricted to the common subset of C99 and some version of C++ (which is obviously mostly C and includes no C++), because I know there are a few things in C99 only that are very obscure because they aren't also in C++.
As a pragmatic requirement, what if we went with: - must compile with the Python 3.5 Windows compiler (so MSVC 14.0) - must compile with the Python 3.5 Mac OS X compiler (some version of clang?) - must compile with the manylinux1 gcc compiler (gcc 4.8.2, as per PEP 513) The reason I like the pragmatic definition is that it's one we can readily automate by ensuring these 3 configurations are always present in the stable buildbot fleet, while the formal standards based version is technically more precise, but not in a way we can easily test. It also gives us an objective criterion for when we change the definitions: when the baseline compiler version for the respective platform builds change, and Python 3.x versions using the older definition are no longer supported by python-dev. Phrasing the policy that way would mean moving future iterations of the manylinux spec out of distutils-sig only territory into one which needs to be reviewed by both distutils-sig and python-dev (since it would now also modify CPython's compiler compatibility requirements in PEP 7), but I think that's a reasonable position to adopt, and unlikely to cause any major problems (manylinux is a *trailing* edge definition that is only likely to get updated as the oldest enterprise Linux definitions drop out of commercial support) The other question we need to consider is the possible impact on PEP 11: what happens to support for alternate compilers and platforms that *have* a buildbot, but may not support particular C99 features? Should there be a 4th clause that says "- must compile and run on all stable buildbots"? Cheers, Nick. -- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia