[Python-Dev] C99

Nick Coghlan ncoghlan at gmail.com
Fri Aug 5 23:02:56 EDT 2016


On 6 August 2016 at 12:15, Steve Dower <steve.dower at 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 at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list