WG14 N812/J11 98-011 Minutes of Co-located ISO/IEC JTC1/SC22/WG14 and NCITS J11 Meetings 2-6 February 1998 Frisco, Colorado, USA 9:05 Monday, 2 February 1998 1. Opening activities 1.1. Opening comments 1.2. List of participants introduced: Rex Jaeschke, Self J11, Chair Randy Meyers, Self J11 Larry Jones, SDRC J11, Acting Project Editor Neil Martin, BSI WG14, UK Frank Farance, Farance Inc., J11 David Keaton, Self J11, Host Peter Seebach, Self J11, Acting Secretary Fred Dydeman, Tydeman Cons. J11 Jim Thomas, HP J11 Doug Gwyn, U.S. Army J11 Jan Kristoffersen, Ramtex WG14, Denmark Bill Seymour, Self J11, Vocab. Rep. Erin Harris, IBM J11, WG14, Canada Rich Peterson, Digital J11 Douglas Walls, Sun J11, intl rep, WG14, USA John Benito, Perennial J11; WG14 Convener 1.3. Jaeschke is still chair, by popular demand. 1.4. host facilities, local information 1.5. Meeting Procedures J11 and WG14 have co-located meetings. Generally, discussions are handled without subdivisions, as a large panel of experts. If formal motions are made by J11 members, J11 members present cast votes. WG14 makes decisions by consensus; member nations with representatives present cast votes, and the convenor determines whether or not these votes represent consensus. Jaeschke pointed out that, procedurally, a J11 vote does not require WG14 to vote on or consider the issue. 1.6. Approval of Previous Minutes There are non-substantive changes, but N787 should be the correct minutes. Accepted by acclimation. 1.8. Approval of Agenda Jaeschke proposed agenda time for discussing moving the October '98 meeting to coexist with the C++ meeting, 17:00-17:45 on Monday. Because most of the DR's are subsumed by public comments, Jaeschke proposed that item 12b become general purpose time, and also item 15. Item 4 to become "Rationale" editor, not "Rational" editor. 1.7. Review of action items. Page numbers are from N787, indicating the page where the action item occurred previously. 23 Mooney and Harris, warn Simonsen about changes to assert in N611: dropped, replaced with *** 23 Gwyn and Benito, to notify WG14 about changes to assert. 23 Benito, put rationale on FTP site: done *!* 23 Plum: proposal to refine sequence points: transferred. *** Gwyn, Seebach to make sure printf and scanf are done right. 23 Benito, investigate C9X conformance to ISO directives with respect to DR 159: done. 23 Jaeschke, draft a form letter for submission of comments: done. *** 27 Tydeman, Gwyn, Thomas editorial review committee for LIA-1: pending. 34 Benito will respond to Japanese comments: done 35 Gwyn, N788, rewrite of C9X 7.4 done. 35 Hoerth, et al., editorial review committee. done. _exit() was dropped by review committee, based on apparent external objection. 37 Benito will ask Simonsen to set up a UDI-related -email reflector: done 39 Feather, etc. editorial review committee for done 39 Editorial review committee for C9X CD: done. 40 Farance will put C9X draft on private FTP site on or before 4 Nov. Done. 1.9 Distribution of new documents. Jones has a new version of the editor's report, N804. N805 is Rex's annual report. N806 is status of Rationale, distributed by email. (May be handed out also.) UK comments will be N807. 1.10 Information of next meeting. Danish Standards will host next meeting in Copenhagen. Pamphlets available with maps showing how to get there, and hotel info. This information will be available on the web. Benito brought up the optional availability of paper mailings in this year's bills. 1.11 Identification of National Bodies/J11 voting members. 14/17 ANSI members present. (Later note: One person left after Wednesday.) Cray, Plum Hall, Intel, Unisys absent. US, UK, Denmark, and Canada have delegations to WG14. 2a. Reports on Liaison Activities. 2a.1 J11 + ANSI (C) -- U.S. Ballot period and process. Ballot has gone out. One public comment received. Notification that we need to do a ballot for the U.S. position. There is a separate J11 reflector, but the maintainer has left OSF, NCITS is setting it up, but we haven't seen any messages from it. This reflector will be J11 only, so it will be easier to run J11 ballots on the reflector. Annual report: No news, nothing is unusual. Jaeschke will present this at ITI in the near future. Our parent committee is merging out of existance, which may save a little time in future votes. 2a.2 WG14 + ISO/SC22 (C) JTC1 is experimenting with making standards more available, which is why our draft is publically available. SC22 has asked if this worked well, and Benito reported that it did. SC22 has forwarded to JTC1 that they would like this to happen permanently. This does not apply to the Final CD, only to the regular CD. (Or, we don't think it applies to a Final CD.) It has been pointed out that we may be able to make a document textually similar to the Final CD that we can make public. Likewise, while we cannot publish our final standard on the web, we could probably publish a nearly-identical document. *** Benito will investigate the availability of final standards in electronic form. 2a.3 J16/WG21 (C++) Tom Plum won't be present. No issues from Plum other than the ongoing discussion of colocating a meeting. It looks like the current C++ standard really is the final standard. It may be possible for us to get copies of the C++ FDISC to make sure we're aligning with it. 2a.4 WG15 (Posix) isblank() and iswblank() should not be in the standard, they were not voted in. 2a.5 WG20 (I18N) Farance has some issues from JTC1: The i18n API may be split out from SC22's work. This may result in people who don't know or care about the programming language models used with character sets, being in a position to decide on standards relating to i18n. They may, for instance, invent a new thing to replace locale. Implication: We need to make our needs very clear to these other committees, lest they legislate us out of existance. *** Benito to contact Ann Wallace about our interests in these issues. 2a.6 Other Liaison Activities UDI group have a representative coming Wednesday to see Jans' presentation on IO hardware. LIA may have a document for us. Gwyn: comp.std.c has a lot of public comments that are not public comments. Should we work on incorporating this? Gwyn will act as an informal liaison to the whiny public. Jones asked whether committee members need to use the public comment process to submit comments; the answer is "not unless they need a formal written response." [break] 2b. CD Ballot Status Report and Resolution Australia has complained about the length of the comment period. We will be done getting new public comments fairly soon. We may release a rationale along with our Final CD. The current ballot went out a little late, which is why everything is rushed. 1.7. Revisited Plum's sequence point work to fix printf and scanf resulted in words emailed to the committee, but Clive has poked possible holes in it. Plum is waffling on whether or not he wants to do this. Gwyn, Seebach will discuss this. (tabled item). 3. Editor's Report While changes cannot be made to the CD as it stands, the intent is that all of the items involved (other than open issues) will be addressed in the next draft. There will need to be some discussion, so... 1.8. Revisited 12b and 13 will now be editor's report, resolving issues. 3. Revisted Many items are listed as errata, because they aren't really changes, they're just corrections of obvious errors. (This avoids stepping on an ISO rule prohibiting changes to the document during the CD phase.) 4. Rationale Editor's Report Rationale is now an MS-Word Doc, instead of TeX. A lot of the rationale is scraped out of proposals, as opposed to being given to the Rationale editor as rationale material. Benito announced his plans to step down as Rationale editor at this point. Seymour has volunteered to take over as the Rationale editor. Keaton thanked Benito for his hard work on putting this document together. 5. Process Public Comments The public comments need to be sorted out and numbered, for future reference. A list of comments we need to address: Canada has no public comments yet. Denmark has the IO hardware issue, and will vote 'no' if it is not included. Gwyn has two issues to bring up: long long UCN's Bitfield bools are already covered, they're an open issue in the editor's report. UCN names may not be done. Interactions between VLA's and mixed declarations and code. Two public comments came through the U.S., PC-0001, PC-0002. Gwyn brought forward PC-0001, . Jaeschke proposed tabling discussion of complex, until Jim Thomas is available. Some discussion on UCN's, both specific issues and the question of whether or not we want UCN's at all. Discussion tabled, break for lunch. UCN discussion resumed. Issues: Why don't we allow just anything to be an identifier character? Because of a report from WG20. *** Meyers to draft response for PC-0002. *** Peterson from Digital to look at the issue of UCN's appearing in external identifiers. Benito to examine compatability with C++ on UCN's that can't be represented in execution character set. Done. The question of UCN's which are logically equivalent to two characters (e.g., "AE") is resolved by the assertion that, indeed, different spellings are distinct characters. This is not a problem. UCN's tabled for later discussion. PC-0001, also item 1 of the UK public comment: Discussion: Move complex to _Complex or, and then make 'complex' a macro in , to avoid name clashes. _Complex is made a keyword unconditionally in hosted environments. UK Item 2. Discussion of 'imaginary' rules. [break] Discussion on DR52 - floating point accuracy. Preference vote among options; preference is to make floating point accuracy implementation defined. UK Item 3. Restrict semantics to be tabled for future discussion. UK Item 4. The famous long long debate... Resolution: Martin to contact the UK group, to find out what they would think about requiring size_t and/or ptrdiff_t not to be larger than long. UK Item 5. +/- 0: It appears that the right thing is already done. UK Item 6. The floating point people will try to talk this over offline. [break] Numberless Item: C++ and C colocation possible? Jaeschke would like to see colocation in October, outside of the regular meeting hours. The idea would be having both meetings in the same place (but not the same room) with an out-of-hours meeting between members of both groups to get people in touch. No objections to colocating, or to holding to our current meeting schedule, or to doing an evening meeting. Preference vote on location: 7 prefer Minneapolis, 5 prefer Silicon Valley. [end of Monday] [Tuesday Morning] 8:31 DR 63 response: (Proposed by Tydeman) | The accuracy of floating point operations (+-*/) and of the math | library ( and ) functions that return a floating | point result is implementation defined. | The implementation shall document accuracy as the worst case | error in terms of units in the last place (ULPs). | The implementation is allowed to break the domain of a function into | disjoint regions, and document the worst case of each region (This | is useful for sin(), cos(), and tan() that use a finite | representation of pi for argument reduction). *** Seebach to send email to Tom MacDonald, listing this proposed requirement. To have words added to allow for unknown precision, and return, with the intent (by lack of objection) to have the new words return later this meeting. Sequence points in fprintf: No one is actually complaining, so we will leave it alone. Discussion on whether or not complex needs to exist in a freestanding environment. Jones, Thomas to draft wording on how to handle complex - sentiment is to require complex keyword (however it's spelled) to be recognized by all implementations, and either it's implemented or it generates a diagnostic. Discussion on breaking up to make some of it available for freestanding environments. Gwyn's proposal: containing the limits and typedefs, might just include it, and the printf macros, etc. Then would be required in freestanding implementations. Jones proposes that conversion functions from move to where the other conversion functions are, and printf/scanf macros move to . Discussion on this tabled for work during the editor's report work. Discussion on availability of in freestanding environment; no objections, so Jones will do it. SV Should be added to the freestanding environment? 14/0/2 More discussion on vs. [break] Even more discussion of vs. SV Should we have a required in freestanding implementations? 13/0/2 PV Should exist, or should strto*, wcsto*, move to their regular places, and disintegrate? 9 to 5, *** Gwyn to produce / wording for next meeting. DR 63 revisited: Add to section 5.2.4.2.2 | The accuracy of floating point operations (+-*/) and of the math | library ( and ) functions that return a floating | point result is implementation defined. The implementation shall | document accuracy as the worst case error in terms of units in the | last place (ULPs), or it shall say that the accuracy is unknown. | The implementation is allowed to break the domain of a function into | disjoint regions, and document the worst case of each region (This | is useful for SIN, COS, and TAN implementations that use a finite | representation of pi for argument reduction). The editor will continue wordsmithing. FV Moved Tydeman, seconded Seebach, that the above paragraph be added to the next draft of the standard, subject to an editorial review committee. (Tydeman, Peterson, Thomas, MacDonald, Walls) J11 12/0/2/3 WG14 4/0/0 (consensus) *** Benito will respond to DR 63, giving this as a change for a future revision of the standard. *** T/P/T/M/W to review paragraph. Back to UK comment #1: (N807) Wording changes to fix the complex/imaginary keywords. Thomas's proposal to make _Complex a C keyword, subject to editorial review, will come back later, since there are no objections to the basic principle. (Editorial review will find out whether existing implementations are spelling it _Complex, __complex, or what.) Back to the UCN debate: Much debate on whether or not the C++ model will really work. *** Gwyn to discuss this problem with outside sources, such as comp.std.c or the C and C++ committee mailing lists. *** Meyers to complete his work on the current UCN model, and produce a paper on it for Copenhagen. [lunch break] Rationale discussion. First point: Should we keep the old C89 rationale material? General consensus that we want to preserve this material, with comments indicating new material as specific to C9X. Second point: MSE material as an annex to the rationale, or as an integrated part? It seems to work best as an annex. *** Jaeschke to email Japanese representatives and see whether they're happy with the MSE rationale as an annex. Third point: What version is C89? We probably need an introductory paragraph discussing the history. Various discussion on how to arrange sections so that introductory material is in an appropriate place. Many typos and style issues, most of them results of bugs in Microsoft Word. The editor will probably correct these offline. Specific items, typos, and discussion of the Rationale. *** Meyers to generate wording to respond to PC-0002 that can also be used in Rationale. Digression: Is the stupid shell script a C compiler? It appears that the committee thinks so, because there's no good way to correctly specify these limits. [break] More rationale processing. *** Meyers to generate Rationale wording for the new integer conversion rules. (Prior to 6.2.1.2) Digression: The whole comprises the parts, or (alternatively) the whole is composed of the parts. "comprised of" is an error. [end of Tuesday] Item 11: Technical debate of IOHW, UDI, and C standardization. The debate was extended to run until 10:00, because there appears to be sufficient material to discuss. The UDI rep and Kristoffersen both gave short summary positions. [break] Public Comments Revisited: Thomas has a revision of the words to change the spelling on complex and imaginary. This document will be revised as N809, with a few minor wording changes. FV Moved Thomas, seconded Tydeman, that N809 will be applied to a future draft. J11 11/0/3/3 WG14 4/0/0 Item 12a: DR Processing. DR159: *** Jones to incorporate ISO directive requirements, i.e., figure out where notes about footnotes and normative text go. Item 12b: Editor's Report. Digression to floating point. *** Thomas, MacDonald to look at prior art on _Complex keyword, for use in responding to U.K. public comment 1. Return to editor's report: Open issue: *** Keaton to draft final words for , with _Bool always a type, and bool/true/false introduced by *** Benito to check draft for cross-references. (Accuracy and relevance.) [lunch break] Return to editor's report: Discussion of reorganizing similar functions under one header, with multiple synopses. General consent to do this for math functions. SV Should we also do this for non-math functions, like strto*? 7 in favor, 2 against. (Meyers was playing a video game, and lost a life to vote against; I think this is "no with comment.") *** Jaeschke to respond to Tribble about PC-0001 after PC period has ended. Return to the rationale. *** Harris to get rationale from Dave Mooney on __func. *** Meyers to submit paper to fix arrays-as-lvalues in structures which aren't lvalues. *** Jones to provide rationale wording for arrays-as-lvalues not working in structures which aren't lvalues. *** Feather to provide rationale for struct hack. ("Flexible array member.") *** MacDonald to provide more rationale for restrict in 6.5.3, or work on integrating the rationale for restrict with everything else. *** MacDonald to provide rationale for inline. *** MacDonald to provide rationale for VLA's. *** Feather to provide rationale for mixing declarations and code. End discussion of rationale. The Canadian delegation brought forward a comment about macro expansion and #pragma STDC; the committee will spend agenda time on this tomorrow. [end of Wednesday] [Thursday: More rationale processing] *** Feather to produce rationale wording for vararg macros. *** Meyers to produce rationale for macro replacement and pragmas. Return to the #pragma STDC issue. N810, by Randy Meyers. FV Moved Harris, seconded Meyers, that N810, as distributed in the mailing, be adopted with the intent that it be incorporated in a future version of the draft. J11 12/0/1/4 WG14 4/0/0 (consensus) More discussion of UCN-related issues. Back to N807, UK public comments, item 2. Discussion on splitting Annex G into real and imaginary parts. Committee was opposed to splitting annex G, because it introduces a new topic, as opposed to issues for IEC 559 support. Discussion on NAN's on machines that aren't implementing annex F. Will get agenda time next meeting. Return to rationale. [break] More rationale. *** Thomas to provide rationale for *!* Peterson to rework rationale for rules. Done. *** Feather, to provide rationale for va_copy. *!* Meyers to produce rationale for not having %m for intmax_t. This action item has been removed. *** Gwyn to discuss horrible random number generator. *** Walls to draft rationale for _exit(). *** Seebach to provide rationale for no strsep(). (And ask on reflector) *** Feather, rationale for struct tmx and related machinery. *** Jones to provide rationale for new strftime() features. N813, Rvalue Arrays (Meyers) *** Keaton: Make something happen for mixed decl's and code and VLA's, and work with MacDonald and/or Feather. N8XX, Binary compatability and . Proposal: Either add %md for intmax_t, or make the strtoimax functions back into macros, for binary compatability. [break] Discussion on floating point. U.S. Tag meeting. The issue of how we will vote and how the vote will be run was beaten to death. Formal vote on to form the U.S. position on whether or not we can accept a standard with added to it. FV Moved Farance, seconded Gwyn, that the U.S. position be to include in C9X as an informative annex. 3/8/3/3 [Thomas voted by write-in.] U.S. delegation to consist of four people: June Walls, Jones, Seymour, [rotating] Farance Oct Walls, Jones, Seymour, [rotating] Tydeman the fourth person will be rotated around. FV Moved Farance, seconded Benito, that the I18N API work done by SC22/WG20, remain in that group. 13/0/0/4 (Unanimous) *** Jaeschke to forward this item to the SC22 people. [End of Thursday] [Friday morning] Jim Thomas sent a paper in via email, on the behavior of the nan() function in non-IEEE environment. The proposed change is In 7.7.11.2, change the description to start "The call nan("n-char-sequence") is equivalent..."; in the second sentence change "the result NaN's content" to "a result NaN's content"; and remove the last sentence. Append to Returns the sentence "If the implementation does not support NaNs, the function returns positive zero." *** Tydeman to generate a paper from this, for discussion next meeting. Meyers calls for a strawvote: SV Who wants to add additional format modifiers to print and scan the abstract integer types. 13/0/2 *** Meyers to draft words for %m, and other modifiers. *** Meyers to write rationale for having %m, and other modifiers. Gwyn produced a new paper to finish the implicit int removal: On page 102 of the draft (N794), 6.5.2 Constraints, change the first sentence to read as follows: At least one type specifier shall be given in the declaration specifiers in any declaration, and in the specifier-qualifier list in any struct declaration. Consensus to accept this as an editorial change. Accepted without objection. Next meeting: June 1998 22-26, hosted by Danish Standards in Copenhagen. Formal invitation will be distributed in the post-Colorado mailing. [this meeting may move] October 1998 5-9, hosted by SGI/Cray in sunny Minnesota (or possibly in San Jose area). February 1-5 1999, Portland Oregon, hosted by Intel. No dates known for Summer of 1999. Upcoming mailing deadlines: Post-CO 20 Feb. Pre-Copenhagen 29 May. Post-Copenhagen 10 Jul. 21.2.4 Thanks to host. Evereyone was very happy with the meeting. Yay Keaton! 9:26 AM Adjournment.