Different question. What features are we actually talking about? Is it
possible to enumerate them?

The only thing I'm aware of is declarations following non-declarations
in the same block, but I'm no C expert any more.

On Fri, Aug 5, 2016 at 8:43 PM, Ned Deily <n...@python.org> wrote:
> On Aug 5, 2016, at 23:02, Nick Coghlan <ncogh...@gmail.com> wrote:
>> 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"?
>
> [Nick's reply above arrived just as I was getting ready to send my own 
> response below which covers some of the same territory.]
>
> On Aug 5, 2016, at 18:37, Guido van Rossum <gvanros...@gmail.com> wrote:
>> I think if we want to revisit this in the future it should be an
>> explicit change.
>> On Fri, Aug 5, 2016 at 3:27 PM, Brett Cannon <br...@python.org> wrote:
>>> On Fri, 5 Aug 2016 at 15:17 Guido van Rossum <gvanros...@gmail.com> wrote:
>>>> I want it to list specific versions that are known to be good right
>>>> now, so we can point fingers appropriately when a regression happens.
>>> OK, then we could pin it to MSVC 2016, gcc 6.1, and clang 3.8.1 which are
>>> the latest releases (unless I'm missing a compiler we all feel like we
>>> should officially support).
>
> While in principle allowing C99 features to be used in cpython is a *good* 
> thing, I'm sure that I don't fully understand all of the implications of 
> adopting this policy for 3.6.  I think we need to be sure we don't 
> inadvertently drop support for some platforms and/or older releases of some 
> platforms.  The key word is "inadvertently".  Not all of those compiler 
> versions above are supported everywhere we currently run.  If that's what we 
> want to do, that's fine but we should be explicit about that.  Two sets of 
> concerns that come to mind are our buildbots and support for older OS X 
> releases.
>
> If I gathered the data correctly, for the default branch (upcoming 3.6 
> release), we currently have 31 buildbots: 19 classified as "stable" and 12 as 
> "unstable".  Of the stable buildbots, here is the count, version, and 
> platform architecture of compilers in use:
>
> 2 x MSVC 14.0 2015 64 bit (AMD64)
> 1 x MSVC 14.0 2015 32 bit (AMD64)
>
> 1 x Clang 3.8.0 (AMD64)
> 1 x Clang 3.4.1 (AMD64)
>
> 1 x GCC 5.3.1 (s390x)
> 2 x GCC 4.9.3 (x86)
> 2 x GCC 4.9.2 (AMD64)
> 1 x GCC 4.9.2 (PPC64LE)
> 2 x GCC 4.8.5 (s390x)
> 1 x GCC 4.8.4 (x86)
> 1 x GCC 4.8.3 (PPC64)
> 1 x GCC 4.3.3 (AMD64)
> 2 x GCC 4.2.1 (AMD64)
> 1 x GCC 4.0.1 (x86)
>
> I know very little about the details of C99 support in those compilers but I 
> gather from this link (https://gcc.gnu.org/c99status.html) that GCC 4.5 is 
> potentially the earliest level that properly supports C99.  Note that we have 
> a number of buildbots running version of GCC older than 4.5 (including all of 
> our OS X stable buildbots) and only one (an s390) running 5.x and none yet 
> running 6.x.
>
> I don't know that we've written this policy anywhere but I think it has been 
> our de facto policy to require only the "standard" platform build tools 
> (including compilers) to build or install Python on our supported platform 
> versions.  With my OS X hat on, I know this likely presents an issue for the 
> OS X installer builds.  Up to now, we have been providing installers that run 
> on all Macs that are supported back to at least OS X 10.6 and, to do that, we 
> build on 10.6 with the standard Apple build tools available there including 
> GCC 4.2.  If GCC 4.2 proves to no longer be suitable, we'll have to make some 
> adjustment in either what versions of OS X we support and/or how we build 
> python.org Pythons for OS X.  There are several possibilities, and, at some 
> point, we will need to do something anyway.  I am hoping to propose and 
> implement some changes prior to 3.6.0b1 and this discussion will shape that 
> proposal.
>
> I don't think OS X support should be a gating factor in deciding to move 
> ahead with C99 adoption but it does point out that there might be more 
> ramifications to this decision.  What may be more difficult is to judge the 
> impact on other platforms that don't get as much attention from most of us.  
> For this to move forward, we need to be able to state what the impact to 
> current users will be.
>
> --
>   Ned Deily
>   n...@python.org -- []
>
> _______________________________________________
> 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/guido%40python.org



-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
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