N2574 - Editor's Report

Welcome to the editor's report for N2573 and the related diffmarks, N2583. There were a lot of papers that were integrated, which are listed very clearly in the frontmatter of N2573. The goal of this revision of the C Working Draft was to "close the loop" on a lot of open changes, as many as was humanly possible in the timeframe. Most of those changes were integrated without too much of a problem, but some of the work related to the Floating Point TS's integration and the C Floating Point (CFP) Group's were a little confusing and will need to be redone for the next editor's report.


A lot of papers from a myriad of meetings (some from the October 2019 Ithaca, NY meeting and even before) had to be integrated, in part or in whole. Sometimes, they updated the same area of text in the Standard. Some were approved, and then "new" versions were approved with updated wording at a later meeting. There was a lot of merging and negotiating going into the text of making N2573. There should not be a period of instability of paper updates again for a while, so applying changes in the future should be a lot more straightforward.

That being said, please check over both the diffmarks and the Working Draft itself to make sure the changes you expected from your paper were done properly. We have -- at this point -- had to quintuple check the changes, but it never hurts to have an extra pair of eyes!

Full Integrations

The papers that were integrated without issues - as done by following the issue and merge request trackers at the C Standard GitLab Instance - are as follows:

  • N2379: X_IS_IEC_60559 Macro

  • N2384: F.8 update

  • N2393: _Bool definitions true and false

  • N2416: floating-point negation and conversion

  • N2424: Why logp1

  • N2444: More optionally per-thread state for the library implementation

  • N2446: printf of NaN()

  • N2448 : [[nodiscard("should have a reason"]]

  • N2459: Add an interface to query resolution of time bases v3

  • N2464: Zero-size Reallocations are Undefined Behavior

  • N2480: Allowing unnamed parameters in a function definition

  • N2490: Why no wide string strfrom functions

  • N2491: powr justification

  • N2492: Note about math function properties

  • N2508: free positioning of labels

  • N2517: Clarification request for C17 s3.4.3p3

  • N2553: Querying attribute support

  • N2554: minor attribute wording cleanup

  • The last of the Floating Point DRs

The success of the above merges were came from a few changes made outside the paper that were deemed okay to make after contacting the necessary stake holders (CFP Group, Paper Author, etc.):

  • N2444 had some additional missing text from other sections with identical wording, so after contacting the author and confirming the intent that text was added to the identical section.

  • N2553, N2554, and N2448 clashed a bit in the merging but were merged successfully after carefully tweaking the wording with the paper author.

  • N2480 clashed with a previously merged change about removing "K&R style" function declarations/definitions. The wording was fixed up in the appropriate sections.

  • N2393's boolean definitions were predicated upon the existence of bool as a keyword. This was solved by not using the bool keyword versions of the accepted text, as was talked about in the Ithaca meeting where this paper was approved. _Bool was used instead.

After fixing those, some editorial changes since before Ithaca were merged into the Standard. Some had already been merged but were lost in history during the transfer of the C sources. The editorial changes that were applied (or re-applied, after some version history shenanigans) were:

  • fix use of "invokation" to "invocation"

  • remove positional reference to text listing in footnote 292

  • use singular grammar for the atomic footnote

  • Add missing <float.h> and <limits.h> macros

Partial Integrations

Some papers were integrated, but there were issues getting to a consistent state within the working draft. It should be noted that these issues will be fixed for the next version of the standard, in conjunction with some additional papers being approved (or not) at the upcoming October 2020 Virtual Meeting, some discussion on the mailing list, and Committee/stakeholder consensus:

  • Integrate N2406: signaling NaN initializers

  • Integrate N2506: Range errors and math functions

  • Integrate N2532: Min-max functions

  • Integrate N2476: Names and locations of FP entities

Paper Submissions

Papers are still to be submitted in the old fashion, but work has begun on a new paper system for WG14 to enable the Committee to:

  • iterate faster on papers;

  • upload and view papers faster; and

  • be able to establish a proper history for visiblity.

To this end a new paper system is being worked on by JeanHeyd Meneide in particular, using purely open source tools and distributed version control to allow for not only paper revisions but paper history. The focus of the system will be new papers, before historical papers (N-numbered) get pulled into the system too. The hope is to unveil the very first alpha of this system in Mid-February and -- Murphy's Law being kind and permitting -- hopefully in use in the meeting after that.

Thank you for contributing to and working on the C Standard!

— JeanHeyd Meneide, Project Editor <wg14@soasis.org>