ISO 9899:2018 has been available for some time now from ISO. List of changes:
What is C17 and what changes have been made to the language?
Informally this version of the standard has been called C17 for some time, though the ISO document will be 9899:2018. So I wonder if we should call it C17 or C18.
In order to not stir up opinion-based answers, my question is: what canonical sources are there labelling this standard as "C17" or "C18"?
The most canonical source is of course the ISO standard itself. Given that, the standard should be called C18 for the sake of consistency:
- C90 = 9899:1990
- C99 = 9899:1999
- C11 = 9899:2011
- C1x = 9899:2018
It was released in 2018, not 2017. So I would think we should call it C18?
Though as another example, I know that gcc has created a compiler switch -std=c17
, according to this. The gcc manual is somewhat canonical. Do they intend to keep that name? What about others like clang and icc?
Is there some consensus? Input from the committee?
Given that the c18 tag is already in use on SO to identify a specific C compiler implementation, it is pragmatic to accept c17 for the C standard finalized in 2017 but published by ISO in 2018.
The alternative is to create a suitable tag for the compiler currently tagged c18 (with a name such as mplab-c18), then recreate (copy) the tag wiki information, retag the 44 questions currently tagged c18 with the new mplab-c18 tag, then retag the 4 questions currently tagged c17 with the new c18 tag, and make c17 a synonym of c18 (rather than vice versa). The tag wiki would need to redirect users of the existing c18 to mplab-c18.
And all of this probably should be discussed on MSO rather than on SO.
Aside: It is disappointing that the ANSI web store charges full price ($232 for non-members; $185.60 for members) for the PDF of the ISO/IEC 9899:2018 standard, rather than offering a reduced rate on the PDF as it once did for C11. It is hard for me to justify that much for the PDF, despite the frequency with which I refer to the C11 standard. I'd like to support them if their cost was reasonable; that cost is not reasonable for an individual.