Skip to content

PEP 7: Python 3.11 uses C99 and C11 #2309

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 24, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions pep-0007.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,11 @@ particular rule:
C dialect
=========

* Python versions before 3.6 use ANSI/ISO standard C (the 1989 version
of the standard). This means (amongst many other things) that all
declarations must be at the top of a block (not necessarily at the
top of function).
* Python 3.11 and newer versions use C11 without `optional features
<https://en.wikipedia.org/wiki/C11_%28C_standard_revision%29#Optional_features>`_.
The public C API should be compatible with C++.

* Python versions greater than or equal to 3.6 use C89 with several
select C99 features:
* Python 3.6 to 3.10 use C89 with several select C99 features:

- Standard integer types in ``<stdint.h>`` and ``<inttypes.h>``. We
require the fixed width integer types.
Expand All @@ -47,8 +45,10 @@ C dialect
- booleans
- C++-style line comments

Future C99 features may be added to this list in the future
depending on compiler support (mostly significantly MSVC).
* Python versions before 3.6 used ANSI/ISO standard C (the 1989 version
of the standard). This meant (amongst many other things) that all
declarations must be at the top of a block (not necessarily at the
top of function).

* Don't use compiler-specific extensions, such as those of GCC or MSVC
(e.g. don't write multi-line strings without trailing backslashes).
Expand Down