Document number: WG14 N865 (J11/98-064) Title: Status of approved proposals for C9X, FCD (Pre-Portland) Author: Douglas Walls Date: December 21, 1998 Below find the status of approved proposals for inclusion in C9X, i.e. proposals at Stages 3-6, as applied to C9X FCD (WG14-N843/SC22-N2794). The proposal numbers represent the last papers seen by the committee on this proposal. The dates represent the meeting date at which the proposal was approved. See the minutes of that meeting for full details. Status is also given on the Annexes, index and table of contents. Proposals approved and already included in the C9X draft, stage 6: Annex A thru J have been updated. Table of Contents DR142 (06/97) Reservation of macro names Words appear in the 6/97, London minutes DR156 (10/97) Defect Report 156 from N544 Approved as amended by the 10/97, Menlo Park minutes N401 (2/96) N448 (10/95) Restricted pointers N472 (10/95) Designated initializers N505 (6/96) Make qualifiers idempotent Final words for this proposal appear in the 6/96, Amsterdam meeting minutes, N615. N522 (2/96) Tag compatibility N568 (10/96) Stringizing empty pp_token sequences N570 (2/96) Empty arguments in macro replacement N570 is result of editorial review committee, N548 was approved at 2/96 meeting prior to final wording N579 (10/96) Add to translation phase 4 "All preprocessing directives are then deleted". Final words for this change appear in the 10/96 Toronto meeting minutes. N587 (02/97) Proposed wording for bool Approved as amended by the 02/97, Kona minutes N590 (10/96) Translation Limits Approved as amended by the 10/96 Toronto minutes. N593 (10/96) New Form of Pragma N595 (10/96) Floating Point C Extensions Approved as amended by the 10/96 Toronto minutes. N596 (10/96) Complex C Extensions, w/Imaginary types in an informative Annex Approved as amended by N620, see 10/96 Toronto minutes. N599 (10/96) Restricted pointer library changes Approved as amended by the 10/96 Toronto minutes. N601 (10/96) long long int Approved as amended by the 10/96 Toronto minutes. N602 (10/96) strtoimax() & strtoumax() functions Approved as amended by the 10/96 Toronto minutes. N611 (10/96) Addition of predefined identifier __func__ Approved as amended by the 10/96 Toronto minutes. N617 (10/96) Signed integer division Approved as amended by the 10/96 Toronto minutes. N629 (02/97) Type rules for decimal integer constants Approved as amended by the 02/97, Kona minutes N631 (02/97) Standard Pragmas Approved as amended by the 02/97, Kona minutes N634 (02/97) New Form of Pragma, Version 4 Approved as amended by the 02/97, Kona minutes N635 (02/97) Implicit int removal (old-style parameters) Approved as amended by the 02/97, Kona minutes N636 (02/97) Implicit function declaration removal N638 (02/97) Floating-Point and Complex Arithmetic Enhancements Approved items 1, 2, 4 as is. Approved item 7 as amended by the 02/97, Kona minutes. N640 (02/97) Access to Objects Approved as amended by the 02/97, Kona minutes N644 (02/97) Add // comments Approved as amended by the 02/97, Kona minutes N645 (02/97) Alternative to sprintf Approved as amended by the 02/97, Kona minutes N651 (02/97) C9X, Editorial use term "real-floating" Approved as amended by the 02/97, Kona minutes N655 (02/97) N504 and N643 (C9X Draft 8) N657 (02/97) Floating-Point and Complex Arithmetic Enhancements Approved item 9, 13 and 14 as is. Approved item 6, 11 and 12 as amended by the 02/97, Kona minutes N661 (02/97) Disallow implicit "int" in declarations N671 (06/97) va_copy Approved as amended by the 06/97, London minutes N672 (06/97) reorder subclauses 6.1 and 6.2 N673 (06/27) adjustments to phases of translation Only changes for 5.1.1.2 approved as amended by the 06/97, London minutes N675 (06/97) DRs 77, 143, 144, 146, 147 and 149 Wording changes for DRs 144, 146, 147 & 149 approved as is DR 77, approved as amended by the 06/97, London minutes N682 (06/97) Suggested edits for C9X Draft 9 section 6.5.3 (Restrict) Approved as amended by the 06/97, London minutes N683 (06/97) Final Edits for incorporating VLAs into C9X Approved as amended by the 06/97, London minutes N685 (06/97) Compatibility Issues with Union Members N686 (06/97) Obsolescent Features of the C standard Delete 6.9.5, Array parameters from the obsolescent list in C9X N688 (06/97) namespace issues Approved as amended by the 06/97, London minutes N691 (06/97) Representation of values Approved as amended by the 06/97, London minutes N692 (06/97) Implicit int cleanup N693 (06/97) Type-Generic Math Functions N694 (06/97) FP & Complex Arithmetic Enhancements Approved as amended by the 06/97, London minutes N695 (06/97) Grammar Start Symbol Approved as amended by the 06/97, London minutes N696 (06/97) Standard Pragmas - Improved Wording Approved as amended by the 06/97, London minutes N698 (06/97) Implementation Defined Integral Types Approved as amended by the 06/97, London minutes N701 (06/97) vscanf Approved as amended by the 06/97, London minutes N703 (06/97) Standards wording for ungetc Approved as amended by the 06/97, London minutes N705 (06/97) Defect Reports since TC2 that promise some action in C9X Approved DR 160 as is Approved DR 145, 150, 155, 158 & 162 as amended by the 06/97, London minutes N707 (06/97) Varargs for function-like macros N716 (06/97) Compound literals N717 (06/97) Extended Identifiers Approved as amended by the 06/97, London minutes N721 (06/97) Unary * operator - a fix Approved as amended by the 06/97, London minutes N722 (06/27) removing implicit int (from N692) N723 (06/97) Changes to shift operators Approved as amended by the 06/97, London minutes N724 (06/97) Minor alteration to representation of types N725 (10/97) Simplified integer conversion rules Approved as amended by the 10/97, Menlo Park minutes N727 (10/97) Replace Uses of "Integral" by "Integer" N728 (06/97) scalbn N729 (06/97) Mode strings in fopen() N733 (06/97) New formats for strftime() Approved as amended by the 06/97, London minutes N734 (06/97) Misc. FP Cleanup Items Approved as amended by the 06/97, London minutes N735 (06/97) General Wording Issues Approved as is Option b of item 1 N736 (06/97) Preprocessor arithmetic Approved as amended by the 06/97, London minutes N739 (06/97) General wording issues (N676 updated) Approved items 2,3,4,5,6A,6B,8,9A,10 & 14 as amended by the 06/97, London minutes N740 (06/97) Mixing declarations and code Approved as amended by the 06/97, London minutes N741 (06/97) Inlining Proposal Approved as amended by the 06/97, London minutes N757 (10/97) Misc. FP cleanup items Approved item 1 with words in the minutes for removing scalb(), 10/97, Menlo Park minutes Approved item 2 as amended by the 10/97, Menlo Park minutes N759 (10/97) Bug in Compound Literals Approved as amended by the 10/97, Menlo Park minutes N760 (10/97) Editorial correction, for empty macro arguments N762 (10/97) Minor Changes to C9X Approved items 5, 7, 14, 15, 17, 18, 20, & 24 as is Approved items 8, 11, 13, 21 w/o 21.2.1, & 22 as amended by the 10/97, Menlo Park minutes Items 17 & 18 were superseded by changes in N789. N764 (10/97) Issues about time Approved as amended by N781 and the 10/97, Menlo Park minutes, i.e. part A, B & G as is part C & Fc amended (in minutes motion) part E (as is from N781) All items applied except for minor correction needed for application of item G. N765 (10/97) Issues with representation of values Approved items A as is Approved items B & C as amended by the 10/97, Menlo Park minutes N766 (10/97) Inlining Issues Approved issues 1, 2, & nits for 6.5.4, paragraphs: 3 2nd choice, 7, 8 (spelling correction only), 9 (typo only) & 10 as is 6.5.4 function specifiers paragraph 8 4th sentence approved as amended by the 10/97, Menlo Park minutes In 6.5.4, function specifiers delete paragraph 5 as per the 10/97, Menlo Park minutes Final issue (issue #3) approved with words replaced by those in the 10/97, Menlo Park minutes N767 (10/97) Some General C9X Issues Approved items 3, 5, 6 10, 12, 16 & 17 as is Approved items 2, 4, 8, 11, 14 & 15 as amended by 10/97, Menlo Park minutes Approved move 6.5.2 para 3 to 6.5.5.2 Array declarators after para 1, move 6.5.2.3 Tags example 4 to 6.5.5.2 Array declarators as per the 10/97, Menlo Park minutes N768 (10/97) Current C9X Tweak List Approved items 1, 2, 4, 5, 7, 8, 10, 15 as is Add items 6, 9, 11 to C9X as amended by the 10/97, Menlo Park minutes N770 (10/97) Trigraphs and Universal Character Names Approved as amended by the 10/97, Menlo Park minutes N772 (10/97) Header/Source file names N773 (10/97) Consistency and clarification Approved items 2, 3, 4 option a, 7, 9, 10, 12, 15, 16, 17, 20 as is Approved items 1, 11, 14, 19, 21 as amended by the 10/97, Menlo Park minutes All items applied, however application of item 9B as passed causes miswording of 7.11p3 (Signal handling) N774 (10/97) Assorted minor substantive issues Approved items 4, 6, 10, 13, 14, & 15 as is. Approved items 1, 3, part of 5, 7, & 17 as amended by the 10/97, Menlo Park minutes Item 1 has not been applied correctly, the rest have been applied correctly. N775 (10/97) Relationships between unsigned types Approved as amended by the 10/97, Menlo Park minutes N776 (10/97) fseek & ungetc Approved as amended by the 10/97, Menlo Park minutes N777 (10/97) File position indicator after fgetc failure Approved as amended by the 10/97, Menlo Park minutes N780 (10/97) POSIX Alignment (Simonsen) Approved changes to tolower(), toupper(), towlower(), towupper(), and footnote for 7.5 Localization as amended by the 10/97, Menlo Park minutes N782 (10/97) Cleanup of aggregate initialization N783 (10/97) Significant outstanding issues Approved 6 as is. Approved items 3, 7 & 13 as amended by the 10/97, Menlo Park minutes All items applied except item 13 missing last line of a footnote N785 (10/97) Meaning of "definition" N786 (10/97) Japan comments on C9X draft 10 Approved as amended by the 10/97, Menlo Park minutes 1.1 Addressed in N672 1.2 Accept subpoints 1 as amended Accept subpoints 3, 4, and 9 as is subpoints 2, 6, 7 are done Accept sub points 5 & 8, done along these lines by Jones 1.3 Accepted subsumed by Jones paper 1.4 Accepted 1.5 Accepted as amended 2.1 Dropped by Japan 2.2 Dropped by Japan 3.1 Accepted along these lines 3.2 All cross references will be fixed 3.3 subpoint 1 is done subpoint 2 will be done N787 (10/97) October 20-24, 1997, Menlo Park minutes 1. Approved changes to 6.6.6.4 and 6.7.1, minutes item 37 2. Approved during the walk-thru of the draft, minutes item 51 Words for if/else problem ~6.6.6.1 Changes to setvbuf function 3. Approved allowing concatenation of adjacent character and wide character string literals, (from N788 discussion) minutes item 55 4. Approved adding float/hex constants to C9X as recorded in the minutes, minutes item 69 5. Approved wording to define protection of the macros so they do not expand for C++ as recorded in the minutes (from N788 discussion), minutes item 71 N788 (10/97) Rewrite of C9x Subclause 7.4 (Gwyn) Approved with words drafted via an editorial review committee at 10/97, Menlo Park N789 (10/97) Changes to signal handling Approved as amended, with _exit() subject to editorial review and acceptance by an editorial review committee, by the 10/97, Menlo Park minutes NOTICE: Editorial review rejected adding _exit(). N790 (10/97) The mean of "implementation-defined" Approved items 6, 7 & 8 as is Approved items 1 & 3 as amended by the 10/97, Menlo Park minutes N791 (10/97) Solving the struct hack problem N792 (10/97) C9X and LIA-1 informative annex Approved as amended by the 10/97, Menlo Park minutes N793 (10/97) New time functions Applied except for minor tweek needed to number of types in first paragraph of 7.16.1, Components of time. N804 (02/98) Editor's Report Editorial changes discussed and accepted at 02/98 meeting, as per unrecorded discussions N809 (02/98) Change keywords complex and imaginary to _Complex and _Imaginary N810 (02/98) Macro Replacement In Pragmas N812 (02/98) Minutes for Frisco Colorado 1998 Add to list of required std headers clause 4 Misc corrections to UCNs N815 (06/98) True boolean type Approved with the editorial change that users may undef and redef the macros bool, true, and false. N822 (06/98) Formal model of sequence points Approved as informative rather than normative. N823 (06/98) DR166 -- lvalue constraints Approved as: An lvalue is an expression; it shall have an object type or an incomplete type other than void. When an lvalue expression is evaluated, it shall designate an object. N824 (06/98) Improved inlining words. N825 (06/98) Problems with Undefined Behavior Approved removing para 3 of 3.18 in CD1 N826 (06/98) Floating-point items Approved items 1, 2, 3 as is. Changed item 4 to changing gamma to tgamma N829 (06/98) Floating-point accuracy (DR 63) N833 (06/98) printf/scanf modifiers Approved using z, t, and j (as suggested in discussion point 2) with the addition of allowing the modifiers with %n as well. N835 (06/98) Rvalue arrays Approved with editorial changes UCNs (06/98) Extensive changes were made involving UCNs; the formal model is now Plum's "model B" where UCNs and extended source characters co-exist. UCNs in character constants and string literals are handled as escape sequences. The constraint in 6.10 reguarding a non-required character as the first character of a macro replacement was dropped. CD1 France Comments (06/98) FR16 - Add __STDC_ISO_10646__ macro CD1 Denmark Comments (06/98) DK2, DK3, DK4, DK5 DK2 (int_curr_symbol different from currency_symbol) DK3 (localeconv examples) approved with editorial corrections to the table of member values. DK4 ([pn]_sep_by_space) approved with editorial corrections directly from Posix. DK5 (strftime conversions) DK6 (strftime O and E modifiers) CD1 UK Comments (06/98) UK005, UK010, UK011, UK013, UK017, UK028, UK061, UK062, UK074, UK077, UK099, UK131, UK140, UK168 UK0005 (#error) UK0010 (_NO_LEAP_SECONDS) UK0011 (_NO_LEAP_SECONDS and _LOCALTIME) UK0013 (struct hack) UK0017 (pointer comparison) UK0028 (name limits vs UCNs) approved except that short UCNs count as 6 (not 4) and long UCNs count as 10 (not 8); and that extended source characters are counted like the corresponding UCN if there is one, otherwise their count is unspecified. UK0061 (non-int assert) approved except that the type of the expression was changed from *int* to *_Bool* (now that it's available) rather than using /scalar/. UK0062 (binary standard streams) UK0074 (pointer to object) UK0077 (jumps and VLAs) solves mixing of decls/code used with VLAs UK0099 (dropping off the end of main) approved just the first part UK0131 (fesetround/feholdexcept return values) UK0140 (supported by conversion) approved as DECIMAL_DIG moves from to (and the mathematical definition of FLT_DIG, which has apparently always been wrong, is corrected), and other wording changes. UK0168 (VLA sizes) CD1 US Comments (06/98) US011.13 (localtime returning NULL) Proposals approved for inclusion into the C9X draft, stage 4: N845 (10/98) Minutes for Santa Cruz, October 1998 Future directions addtion on floating-point types strtod improvements regarding strings begining with a minus sign Japan issue to drop finite from f,F conversion specifier realloc rewording INFINITY and NAN macros do not need to be implementation-defined Remove Annex D Change cgamma to ctgamma Disallow VLAs in compound literals nextafterx changed to nexttoward N847 (10/98) Issues with CD2 Individual items approved as detailed in the 10/98 meeting minutes N845 N851 (10/98) inttypes.h and stdint.h Approved with minor editorial changes N852 (10/98) Editors report Approved as detailed in the 10/98 meeting minutes N845 for loop wording (10/98) Concensus reached at 10/98 meeting, wording to arrive in a public comment for addoption into FDIS Proposals with final words approved for inclusion into the C9X draft that have not yet been applied, stage 4: Proposals principally approved, final wording to be drafted by review committee, stage 3: Reminder of what the stages mean, the stages only give the state the proposal is in. Proposals can skip stages. This is adapted from N556 and N585 as accepted at the June 96, Amsterdam meeting: Stage 1 = proposal w/o technical details requesting interest from WG14 for development of a technical proposal. Stage 2 = technical proposal, ready for consideration by WG14. Stage 3 = principally accepted, for inclusion into C9X. At this stage the exact C9X changes must be drafted and edited by the review committee. After review, the final C9X changes are to be included in a mailing for final approval by WG14 for inclusion into the C9X draft. Stage 4 = accepted by WG14 for inclusion as is into C9X. The proposal contains the specific editing instructions to change the C9X draft, and is ready to be included in the next C9X draft. Stage 5 = changes applied to the latest C9X draft. Stage 6 = verified by the review committee as being correctly applied in the C9X draft.