----- Original Message -----
From: "Nathaniel Smith" <njs@pobox.com> To: "Gregory P. Smith" <greg@krypto.org> Cc: "Charalampos Stratakis" <cstratak@redhat.com>, "Python Dev" <python-dev@python.org> Sent: Friday, January 29, 2021 6:29:58 AM Subject: Re: [Python-Dev] Re: Why aren't we allowing the use of C11?
On Thu, Jan 28, 2021 at 9:03 PM Gregory P. Smith <greg@krypto.org> wrote:
On Thu, Jan 28, 2021 at 10:52 AM Charalampos Stratakis <cstratak@redhat.com> wrote:
----- Original Message -----
From: "Mark Shannon" <mark@hotpy.org> To: "Python Dev" <python-dev@python.org> Sent: Thursday, January 28, 2021 5:26:37 PM Subject: [Python-Dev] Why aren't we allowing the use of C11?
Hi everyone,
PEP 7 says that C code should conform to C89 with a subset of C99 allowed. It's 2021 and all the major compilers support C11 (ignoring the optional parts).
C11 has support for thread locals, static asserts, and anonymous structs and unions. All useful features.
Is there a good reason not to start using C11 now?
Cheers, Mark.
_______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-leave@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/PLXETSQE... Code of Conduct: http://python.org/psf/codeofconduct/
Depends what platforms the python core developers are willing to support.
Currently downstream on e.g. RHEL7 we compile versions of CPython under gcc 4.8.2 which does not support C11.
In addition the manylinux2014 base image is also based on CentOS 7, which wouldn't support C11 as well.
I suspect this is the primary technical reason not to adopt C11 left.
But aren't things like manylinux2014 defined by the contents of a centrally maintained docker container? If so (I'm not one who knows how wrong my guess likely is...), can we get those updated to include a more modern compiler so we can move on sooner than the deprecation of manylinux2014?
RedHat maintains builds of gcc 8.2.1 for CentOS/RHEL 7, that have some clever hacks to guarantee that the resulting binaries will work on CentOS/RHEL 7: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/
I'm pretty sure that's what the manylinux2014 image is using.
-n
-- Nathaniel J. Smith -- https://vorpus.org
That is correct, Software Collections allow that (I'm also one of the maintainers of the Python collection), not sure though if indeed that's the case for manylinux2014. Apart from that though, in general Python is compatible with a wide variety of Platforms and operating systems. Are all those supported platforms compatible with C11 or later? RHEL7 is not (apart from using scl's) for example. If the standard changes that will also render useless a number of buildbots for Python's later branches. -- Regards, Charalampos Stratakis Software Engineer Python Maintenance Team, Red Hat