2

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?

Lundin
  • 195,001
  • 40
  • 254
  • 396
  • 6
    (As a meta sidenote, the c18 tag is already taken on SO, by a certain infamous compiler. We may have to change the SO tags.) – Lundin Aug 08 '18 at 13:45
  • 1
    I'm flagging this question to be closed as primarily opinion-based. StackOverflow doesn't have the authority to declare what the next C standard version will be called, and even if someone here has the authority to do so, this isn't the right forum. – 0xdd Aug 08 '18 at 13:48
  • 1
    My gcc 8.1.1 has both -std=c17 and -std=c18 and both iso9899:2017 and iso9899:2018. – KamilCuk Aug 08 '18 at 13:57
  • Let's suppose that the name is based on the revision (which starts/ends somewhen between Jan-2017 and Dec-2017) instead of the publication date: https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html – Jose Aug 08 '18 at 14:05
  • 10
    The C standard committee calls it C17 because it was approved by them in 2017. The date stamp is `201710L`. That the whole ISO process then needed another 6 month to lead to the publication is another story. – Jens Gustedt Aug 08 '18 at 14:19
  • Also I have a summary of the changes at https://gustedt.wordpress.com/2018/04/17/c17/ with the plan to provide explanations for most of the changes over the next months. – Jens Gustedt Aug 08 '18 at 14:22
  • 6
    I'm voting to close this question as off-topic because it is not about programing it is about triminology – SHR Aug 08 '18 at 14:50
  • 1
    Note that the 9899:1990 standard is often called `C89`, not `C90` – Chris Dodd Aug 08 '18 at 17:10
  • @JensGustedt Ah, the `__STDC_VERSION__` might indeed be what we should look at above everything else. Also, it would be awesome if you could cross-post those changes from your blog into an answer at [What is C17 and what changes have been made to the language?](https://stackoverflow.com/questions/47529854/what-is-c17-and-what-changes-have-been-made-to-the-language/47530004#47530004) :) – Lundin Aug 09 '18 at 06:56
  • @ChrisDodd: The C89 standard was ANSI X3.159-1989 (per Wikipedia [ANSI C](https://en.wikipedia.org/wiki/ANSI_C)), which was published in 1989, and then superseded in 1990 by ISO 9899:1990. The main difference between the two was the section numbers and end matter — the technical content was supposed to be the same between them. It predated the use of an encoded date in a version number (that arrived with AMD1 in 1994/5), so there wasn't a problem with the year of publication, even. – Jonathan Leffler Aug 12 '18 at 22:36
  • 2
    Should this go to meta ? – Stargateur Aug 12 '18 at 23:41
  • 2
    @Stargateur: YES — see [How to migrate a specific MSO question from SO to MSO](https://meta.stackoverflow.com/questions/372474/how-to-migrate-a-mso-question-from-so-to-mso) – Jonathan Leffler Aug 12 '18 at 23:59
  • Votes to close because this question is about [triminology](https://www.goodreads.com/book/show/20482731-triminology-101)? – HABO Aug 13 '18 at 00:36
  • The name of the standard is ISO/IEC 9899:2018, so it seems natural to me to call it c18. (I agree with Mike Stump from gcc [here](https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg178386.html)) – ouah Aug 15 '18 at 22:59
  • 1
    C17. Spec uses `__STDC_VERSION__ == 201710` and not `2018xx`. – chux - Reinstate Monica Aug 04 '19 at 18:15

1 Answers1

6

Given that the tag is already in use on SO to identify a specific C compiler implementation, it is pragmatic to accept 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 (with a name such as ), then recreate (copy) the tag wiki information, retag the 44 questions currently tagged with the new tag, then retag the 4 questions currently tagged with the new tag, and make a synonym of (rather than vice versa). The tag wiki would need to redirect users of the existing to .

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.

Jonathan Leffler
  • 730,956
  • 141
  • 904
  • 1,278
  • 4
    [that cost is not reasonable for an individual.](https://www.youtube.com/watch?v=GVXCr6upWUo) – Stargateur Aug 12 '18 at 23:52
  • 2
    I wasn't really asking how to deal with this on SO, that should be posted on meta indeed. Rather I was asking for what canonical sources there would be. `__STDC_VERSION__` mentioned in comments pretty much answered the question. – Lundin Aug 13 '18 at 06:29
  • 1
    That being said, I have now fixed the C, C11 and C17 tag wikis so they are up to date with 9899:2018. – Lundin Aug 13 '18 at 06:30
  • 7
    The question is asking about what we should call the language, not about how we should go about tagging related questions on Stack Overflow. – Lightness Races in Orbit Aug 13 '18 at 11:48