Happy New Year! 🎉 🐯 (Halfway through the year, hah!)
Welcome to Editor's Report N2913, which is for the Standard N2912. We're glad you're still here and alive to read this: rest in peace, all the others who didn't quite make it this far during this pandemic.
Papers that were integrated this time around are included in the frontmatter of N2912. This report is for the post-August/September and post-November/December 2021 meetings (in the very literal sense that it is sometime after both meetings), and it merges all of the papers, editorial issues, and Annex work completed. You can find the last editor's report here.
This includes changes from 4 meetings (January had a 2-part meeting) and an entire Annex Deletion (language-independent arithmetic) and Annex Creation (Floating Point / Decimal Floating Point Interchange), with the old Floating Point Annex X's letter being changed to fit in the previously-deleted Annex's space (Annex H).
The papers that were integrated without issues - as done by following the issue and merge request trackers at the C Standard GitLab Instance - for the August/September Virtual Meeting are as follows:
#warning
DirectiveSNAN
Fixes (fixed editorially prior to now, but acknowledged since it was turned into a paper just to be safe.)fmin
, fmax
hypot
Changescr_
Prefix Potentially Reserved for Identifiers_Imaginary_I
and _Complex_I
Qualifierschar16_t
& char32_t
String Literals Shall be UTF-16 & UTF-32fenv
Exception Functionsckd_*
Should be Potentially Reserved Identifiers__has_include
for CAll edits to be applied to the TS should have also been applied to its working draft version as well. (I likely got a few things wrong / missed a few things, so please do let me know if I have failed you here.)
The papers that were integrated without issues - as done by following the issue and merge request trackers at the C Standard GitLab Instance - for the November/December Virtual Meeting are as follows:
remquo
Changesptrdiff_t
The papers that were integrated without issues - as done by following the issue and merge request trackers at the C Standard GitLab Instance - for the January/February 2022 Virtual Meeting are as follows:
@
, \$
, and `
in the source/execution character set._Noreturn
Attribute*_HAS_SUBNORM == 0
Implies What?calloc
Overflow Handlingunreachable()
assert()
user friendly in Ccall_once()
Mandatory_FloatN
Types{}
.typeof(...)
false
and true
Language FeaturesThe papers that were integrated without issues - as done by following the issue and merge request trackers at the C Standard GitLab Instance - for the May 2022 Virtual Meeting are as follows:
ATOMIC_VAR_INIT
memset_explicit
This change is not actually significant, but it must be called out in an Editor's Report nonetheless since it has a weird paper trail. We fixed a bad change made previously to the definition of "side effect".
Importantly, this almost became a full paper. But, upon inspection and reviewing of relevant meeting notes and conferring with stakeholders and the Committee, it became clear that removing the "modifying an object" portion of the side effect changes was not done properly. The author, people in the room when the Defect Report and Proposal were discussed, all agreed that its removal was not intentional but a mistake.
For a brief moment, C23 was a more functional language than Haskell or Pure could ever dream of being. Alas, it was not meant to be.
There were a number of tiny editorial improvements to make and adjustments to be had to papers integrated and to the standard itself:
The description in the Annex has been changed to refer to the literal nan functions (nanf, nanl, etc.) and not the value NaN.
c16rtomb
and c32rtomb
description for their usage of '\0'
/L'\0'
/u'\0'
/U'\0'
constants, to match the input type.This was caused by an installation of postgresql and a few other utilities injected an iconv with (terrible) custom behavior that inserted byte order marks, which appear as þÿ
in the table of contents for various PDF rendering software. The POSIX standard's requirements on iconv are so loose that it was an acceptable implementation of such a library, and the linker found these weird libiconv personal copies on the path before it found any normal ones.
static_assert-declaration
and attribute-declaration
.A special thanks to Joseph Myers, Jens Gustedt, Aaron Ballman, and Marin Uecker for finding many, many typos and needed changes. Furthermore, there were many changes that the C Floating Point Technical Specification Working Group found as well, including Jim Thomas, Fred Tydeman, Rajan Bhakta and Vincent Lefevre.
The paper submission website is still not yet released. I'll let you know when it comes up, which should hopefully be soon. We have unfortunately spent most of our time focusing on paper integration and writing our own papers for the incoming deadline for C23; please forgive me the tardiness!
— JeanHeyd Meneide, Project Editor <wg14@soasis.org>