Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 Preliminary Draft Minutes of ISO/IEC JTC1/SC22/WG14 and ANSI J11 February 10-14, 1997 Waikoloa, Hawaii, USA 1. Opening Activities 1.1. Opening Comments Benito and Jaeschke welcomed all WG14 and J11 participants. 1.2. Introduction of Participants All participants introduced themselves: Tom MacDonald Cray Research/SGI J11 Vice-chair Randy Meyers Digital Equipment J11 Frank Farance Farance Inc. US, J11, Document Editor Mark Hoerth Hewlett-Packard J11 John Nestor IBM Corp. J11, Canada Head of Delegation Rex Jaeschke Self J11 Chair, US David Keaton Self US, J11, FTP site maintainer John Benito Perennial J11, WG14 Convener Tom Plum Plum Hall US, J11, host Larry Jones SDRC J11, acting Secretary Bill Seymour Self J11 Peter Seebach Self J11 Douglas Walls Sun J11 International Rep., US Head of Delegation Jim Thomas Self J11 Fred Tydeman Self J11 Jonathan Ziebell Unisys J11 Douglas A. Gwyn US Army J11 Roger Golliver Intel J11 Neil Martin BSI UK Head of Delegation Keld Simonsen DS Denmark Head of Delegation, Web site maintainer Jan Kristoffersen DS Denmark 1.3. Selection of Meeting Chair Jaeschke was once again appointed meeting chair. 1.4. Host Facilities/Local Information In addition to the usual facilities, Plum provided a computer, laser printer, and copier (complete with 3 hole paper!) for use during the meeting and a guest account with a local ISP for Internet access. - 1 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes 1.5. Procedures for This Meeting As usual, the meeting was conducted as a group of technical experts working toward consensus with straw votes used to determine sentiment. Formal J11 votes were used to establish a US position (other delegations could caucus at the same time) and formal WG14 votes were used to determine whether consensus had been reached or not. Straw votes (indicated by SV in the margin) are generally recorded in these minutes as For/Opposed/Abstain. Where the are two successive votes without other explanation, the first is of all persons present, the second of national bodies present. Formal motions (indicated by FM) are made within J11 and indicate the mover and seconder. Formal motions which pass are also proposed resolutions in WG14; resolutions which are not prompted by formal motions (indicated by R) may also appear. Formal J11 votes (indicated by FV) are recorded as For/Opposed/Abstain/Absent/Total, WG14 consensus votes (indicated by CV) are recorded as For/Opposed/Abstain. Items which were accepted without objection are recorded as being by acclamation (indicated by A). Since there is no permanent secretary, Jaeschke proposed going around the table and the first person without a good excuse getting the assignment. Not being able to come up with one, Jones was appointed. 1.6. Approval of Previous Minutes [N632] Page 1, Item 1.2: Douglas Walls should be noted as International Representative; Meyers and Tydeman should be noted as X3J11, not US delegation. Page 5, Item 2.6 (just before 3a): Javasoft is one word. Page 7, Item 5b: In ``Most compilers will not syntax this...'', ``syntax'' should be ``diagnose''. Page 20, Item 27: ``... directives are deleted.'' should be ``... directives are then deleted.''. A The minutes as recorded in N632 with the above corrections were approved by acclamation. 1.7. Review of Action Items Action items appearing in these minutes are indicated by *** in the margin. Farance, Jaeschke, and Walls will review Benito's WG14 contribution to the WG20 Internationalization API.-- done Thomas will submit the next revision of the complex paper to Schaffert with a cover letter stating the current status of the proposal in C9X.-- dropped - 2 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 *** Benito, Degener, Keaton, Seymour, and Walls are the editorial review board to assist in more cleanly incorporating the MSE Item formatted I/O functions.-- pending Keaton and Walls are the editorial review board for VLAs.-- done Gwyn will provide rationale and examples for //-style comments.-- done Degener, Keaton, and Walls are the editorial review board for //-style comments.-- done Meyers will work on a paper to allow integral promotion for additional integral types; Kwan, Farance, Feather, and Degener to assist.-- done Kwan will lead drafting committee for strtoimax and strtoumax group: MacDonald, Farance, Walls, and Meyers.-- done Simonsen to produce a status summary of all proposals for C9X.-- done Volunteers to work with Simonsen on revising N586: Feather and Jaeschke.-- dropped Editorial committee for math library: Meyers, Thomas, and Tydeman.-- dropped Mooney to act as focal point to ensure that all RR/TC/Future Change wording makes it to the convener within the next four weeks.-- done *** Feather to produce words for DR167 and supply to Mooney; Degener to support.-- pending *** Farance will work with Tydeman and Thomas on LIA binding.-- pending Jaeschke will investigate the status of N429 Replacement for strtok.-- done Redactor to include the words from N504.-- done Review board to check that words from N504 and N505 are included correctly.-- done Feather to produce rationale and supply to Benito.-- done *** Jaeschke will collect comments about user callbacks in printf from Degener and Meyers and will supply to Benito for rationale.-- pending Benito will ask Plum to put meeting information into the post-Toronto mailing.-- done Benito will put TC1 and TC2 in the post-Toronto mailing.-- done Tydeman will obtain a copy of IEC 559 for the committee from ISO.-- done - 3 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes Tydeman will draft words for defect report concerning LIA-1/LIA-2 inconsistency.-- done Jaeschke will forward request for interpretation to X3T2 chair.-- done Tydeman will write a paper documenting ISO's acknowledgement of typographical errors in IEC 559, second edition.-- done MacDonald will write a paper to add an example for new form of pragma and investigate phase 4 reordering.-- done Walls will follow up with Keaton to determine the stage of the proposal for compound literals.-- done Walls, Benito, Tydeman, Farance, and Martin will review and determine the status of C9X draft 6.-- done Gwyn, Walls, Tydeman, Benito, Martin, MacDonald, and Thomas will be the review committee for C9X draft 8.-- dropped Gwyn will write words for null pointer and zero size cases of snprintf.-- done Gwyn will put a reviewed edition of N614 in the mailing.-- done Jaeschke will ask X3 if a feature can be dropped without deprecating it first.-- done Gwyn will revise the title and abstract of N613.-- done Meyers and Benito will be the review committee for N613.-- dropped Gwyn will give notice to the public of the committee's intent to disallow implicit int.-- done *** Seebach will write a proposal to disallow previously deprecated features for the language and library.-- pending Meyers, Farance, and Jones will be the editorial review committee for N602.-- done *** MacDonald will provide rationale to Benito that explains when restrict should be used.-- pending *** Jaeschke will provide rationale for long long to Benito.-- pending Tydeman will write a proposal that changes the translation directive macros to pragmas.-- done Seymour will write a proposal for member functions with public and private.-- done Meyers, VanSickle, Jaeschke, and Farance will be the review committee for Seymour's proposal.-- dropped - 4 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 *** Mooney will warn Simonsen about the changes to assert in N611 and inquire about what POSIX does with wchar file names.-- pending Benito will put the final draft of the C++ extended identifiers proposal in the post-Toronto mailing.-- done *** Benito will put the rationale draft on the FTP site.-- pending Jaeschke will consult with Plum to see what is happening with the RRs that the committee said would be fixed in a future version of the standard.-- done Seymour and Farance will determine the meanings of the terms ``generic'' and ``intrinsic''.-- done *** Benito will post the final draft of WG14's contribution to WG20's I18N API on the restricted FTP site.-- pending *** Keaton will submit a revised version of N489 Unnamed Structure/Union Members.-- pending MacDonald will write up option A for DR166 and present it before the end of the meeting.-- done Redelmeier will write a paper on modifiable lvalues (DR166).-- done *** Gwyn, Jones, and Seebach will be the review committee for the DR166 paper. Gwyn or Jones will champion the paper at Kona.-- pending Seebach will write a paper that addresses the possible future change in DR171 (UCHAR_MAX <= INT_MAX).-- dropped *** Jaeschke will gather DRs from group leaders (MacDonald, Meyers, and Seymour) and hand them over to Benito for inclusion in the DR log.-- pending *** Benito will put the DR log in the next mailing.-- pending Gwyn will write and champion a final proposal for va_copy.-- dropped *** Gwyn, Jones, and Mooney will be the review committee for N581.-- pending *** Meyers will draft words for item 4 of N579.-- pending Martin will organize a London meeting for June 1997.-- done *** Gwyn will complete the wording for // comments.-- pending Jaeschke will notify ITI that J11 mailings will remain about the same size.-- done - 5 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes 1.8. Approval of Agenda [N642] A A proposal for two hour lunches (thus extending the day to 17:30) was approved by acclamation. N647 C and C++ Structure Assignment Compatibility was withdrawn. 4. Member Functions and public/private should include N652 Member Functions in C Structures, N653 The public and private Keywords, and N654 The :: Operator. 5. Redactor Report should include N625 Status of Approved Proposals for C9X and N650 Draft 8 Edit Issues List. 14. Remove Implicit int in Declarators, N661 Disallow Implicit ``int'' in Declarations is an updated version of N646 and should replace it. 17. FP and Complex issues should include N648 ilogb() in C9X and N651 C9X, Editorial Use Term ``Real-Floating'', N657 Floating-Point and Complex Arithmetic Enhancements is an updated version of N638 and should replace it. 24. va_copy was deferred until the next meeting; va_list and fpos_t [N655] should replace it. 27. C and POSIX Alignment should include N658 POSIX Alignment. 28. toups/tolows Functions should include N659 toups/tolows. 30. Miscellaneous Topics should include N656 Standardization of Basic I/O Hardware Addressing. 8. Generic/Intrinsic Math Functions and 17. FP and Complex Issues should be interchanged. 9. New Form of Pragma and 26. Implementation-Defined Integral Types should be interchanged. A The agenda presented in N642 with the above changes was approved by acclamation. In order to make most efficient use of time, many topics were addressed at multiple times during the meeting. For ease of reading, these minutes collect such fragmented discussions together into a single item. 1.9. Distribution of New Documents New documents distributed throughout the week will be included in the next mailing. 1.10. Information on Next Meeting The next meeting is June 23-27 in London with BSI hosting. Martin distributed N660 with hotel and travel information. - 6 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 1.11. Identification of National Bodies/J11 Voting Members Of the 18 J11 members attending, 17 were determined to be eligible to vote, which is the entire voting membership of J11. Intel intends to be a voting member but has not yet satisfied the attendance requirement. Four National Bodies were in attendance: Canada, Denmark, the United Kingdom, and the United States. An attendance sheet is attached to these minutes. 2. Reports on Liaison Activities 2.1. J11 + ANSI (C) X3 has changed their name to NCITS (National Committee for Information Technology Standardization). Although there is conflicting information, the last official word is that working groups should drop the ``X3'' from their official designation so X3J11 is now just J11. Jaeschke delivered the J11 annual report at the March meeting. 2.2. WG14 + ISO/SC22 (C) The committee has been asked to justify our existence by the next SC22 plenary in August. Benito will handle. There are new procedures in place that forbid making changes during the DIS ballot. SC22 has decided to allow CDs to be published on the Web. 2.3. J16/WG21 (C++) The C++ draft is out for final CD ballot which closes June 9. US public comments must be sent to J16 as soon as possible so that they can be processed at their March meeting. There are two new minor incompatibilities with C: string literals now have type const char [] and the default operator= doesn't allow for volatile structure assignment. 2.4. WG15 (POSIX) WG15 is currently working on language-independent specifications of the kernel, locales, and charmaps. 2.5. WG20 (I18N) There's a TR on Framework which is generally aligned with what we've done. A TR on guidelines for language design is in the works. The Character Ordering standard is out for CD ballot. There are rumored to be conflicts with what we've done, but no one had any details. - 7 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes *** Plum and Gwyn to review WG20 ordering CD with Simonsen.-- done The group that reviewed the ordering standard believes that we should send a liaison statement; the standard presents a four pass comparison algorithm and it is not clear how that impacts our existing method of using strxfrm. FM Gwyn/Seymour, that we endorse N664 WG14 Comments on ISO/IEC CD 14651 as a liaison statement to WG20. FV 11/0/4/2/17 -- Passes CV 4/0/0 -- Passes CDs for locales and charmaps are in the works along the lines specified by POSIX. A new work item for an Application Program Interface is out for ballot, rumor is that it passed. The CEN Cultural Registry is being fast-tracked. 2.6. Other Liaison Activities 2.6.1. T2/WG11 (LIA) A new draft of LIA-2 is out along with responses to comments on the previous draft. *** Tydeman to write up comments and circulate on the reflector. *** Jaeschke to forward to T2 as J11 comments. *** Benito to forward to WG11 as WG14 comments. 2.6.2. SC2 (Character Sets) A PDAM for extended identifier characters is out. 3. CD Registration/Schedule Discussion Benito outlined the time required to move through the standardization process: CD Registration requires about 2 weeks to distribute the document and a 3 month ballot period; CD Ballot requires 2 weeks for distribution, a 3 month ballot, and ballot comments have to be resolved; Final CD Ballot requires 4 week distribution, 4 month ballot, and comment resolution; DIS Ballot requires 2-4 week distribution and 2 month ballot. It is possible to combine CD Registration and Ballot, but it requires approval from SC22. It is not necessary to have a CD Ballot other than the Final CD Ballot. - 8 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 CD Ballot in London results in a published standard early in 1999; any delay means late 1999 or 2000. There is some benefit to registering as early as possible to get the initial comments out of the way. Public comments are much more likely to come from publishing the CD on the Web, not from formal registration or ballots. Suggestion to add an informative annex of pending changes. R Resolve that we empower the Convener to register the draft provided that the editorial review is acceptable. There was a request to add some small text for topics that have been (or probably will be) adopted but don't yet appear so that the draft contains all the technical content in some form. The opposing view is that that is just asking for trouble; if the draft isn't complete, why are we registering it? Consensus is to register as-is. CV 4/0/0 -- Passes R Resolve that we make the registered draft available to the public with a cover letter noting anticipated changes and no request for feedback. CV 0/3/1 -- Fails *** Farance to have an updated draft 8 with corrections available by Feb. 24. *** Walls to host a preliminary editorial review meeting at Sun on Feb. 24 to get Thomas's concerns; Thomas and Benito to attend (other attendees also welcome). *** Benito to host the general editorial review meeting in Santa Cruz on Feb. 28; Farance, Walls, Hoerth, and anyone else who wants to attend. *** Benito to forward the resulting document on Mar. 1 for registration (assuming the editorial review is acceptable). *** Keaton to put draft on restricted FTP site; Simonsen to put on restricted Web site. *** People who are not attending the editorial review meeting should send comments to Benito with a copy to Farance . 4. Member Functions and Public/Private [N652, N653, N654] Seymour gave a brief overview of his papers and asked for a straw vote: SV In favor of member functions as in N652: 9/8 - 9 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes FM Seymour/MacDonald, that N652 Member Functions in C Structures be adopted as the basis for adding a member function facility to C9X. A roll-call vote was requested: Cray Research/SGI Yes Digital Equipment Yes Farance Inc. Absent Hewlett-Packard No IBM Corp. No Rex Jaeschke No David Keaton Yes Perennial No Plum Hall No SDRC No Bill Seymour No Peter Seebach Yes Sun No Jim Thomas Yes Fred Tydeman Yes Unisys No US Army Yes FV 7/9/0/1/17 -- Fails CV 1/3/0 -- Fails 5. Redactor Report/C9X Review [N625, N643, N650] Farance noted yet more things that can go wrong when delivering text to the editors: Some word processors when saving a document as text create extremely long lines; this causes serious problems when trying to apply those changes to the document. Also, the ordering of the text in a proposal may not match the ordering in the standard; final changes delivered to the editor should be in section number order. Corrections received from Walls (N650 Draft 8 Edit Issues List), Thomas, and Tydeman have already been applied to the working draft. A discussion of 3. Open Issues followed: 1. For information only. 2. For information only. 3. The review committee verified that the subclause numbering is correct and the changes should be applied. 4. The exact wording appears in the previous minutes. 5. Pending. - 10 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 6. Pending. 7. Pending. 8. Needs a paper. 9. For information only. *** Walls and Meyers will write a paper for 8. on what a ``supported'' type is in .-- done Walls presented N625 Status of Approved Proposals for C9X (Post-Toronto). Stage 4 proposals N522, N505, N602, N617, N601, N593, N599, N568, and N579 have progressed to stage 5. Stage 3 proposal N481 has been superseded by N644, N504 by N655, N594 by N637, and N614 by N645. *** Walls will update the list and continue to maintain it. The committee proceeded to walk through Draft 8 noting corrections which are recorded in N662. *** Meyers will write a paper on the currently unmentioned lvalue to rvalue conversion. *** Jones to check the draft for references to implicit function declaration. *** Seymour to write a paper on the definition of object. *** Gwyn to work on rewording 7.4 . SV Should 7.4 provide numeric values like does? 12/6/1 6. FP and Complex Issues [N638, N648, N651, N657] Thomas presented N657 Floating-Point and Complex Arithmetic Enhancements, a revised version of N638. This started out as a Monday paper in Toronto, there were no objections, so Thomas is hoping to get final approval here. SV In favor of 1. (allow feraiseexcept to raise inexact along with overflow or underflow): 15/0/0 SV In favor of 2. (add isinf macro): 12/0/6 SV In favor of 4. (change the corresponding real type of I to float): 12/0/4 SV In favor of 7. (add x / x -> 1.0 to list of invalid optimizations in IEC 559 Annex) with the editorial change in Edits of ``of NaN'' to ``or NaN'': 14/0/4 - 11 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes FM Thomas/Tydeman, that points 1, 2, 4, and 7 of N657 Floating-Point and Complex Arithmetic Enhancements be incorporated into the C9X draft with the following wording changes: in 7. Edits, change ``of NaN'' to ``or NaN''. FV 15/0/1/1/17 -- Passes CV 3/0/1 -- Passes Thomas noted that points 8 (cis) and 10 (compound interest) have been withdrawn completely, and the Bessel functions have been withdrawn from point 9. Thomas noted that 13. (fix complex division sample) and 14. (change special cases for cexp) are basically bug fixes. He asked everyone to look them over and be prepared to vote on them later. Thomas presented 6. (revise scalb as per XPG4, add scalbn and ilogb). He noted that existing specifications for ilogb differ in their exception behavior. There seemed to be general agreement that ilogb(0) should be allowed to return either INT_MIN or -INT_MAX. SV What should ilogb(NaN) return? INT_MAX 6 Implementation-defined: INT_MIN or INT_MAX 3 Same but with a macro 8 SV Should there be a macro for the 0 case too? 8/3 Thomas presented 12. (rename the rounding functions). This is related to 6. *** Thomas to do final words for points 6 and 12 and bring back later.-- done Thomas presented 5. (make imaginary a keyword in the normative standard). SV Should it be possible for a conforming implementation to also support Annex G? 13/1/5 SV Should imaginary be a keyword whenever is included (as opposed to only when the __STDC_IEC_559_COMPLEX__ macro is also defined)? 2/10/6 Thomas presented wording which prompted discussion of whether the definition of __STDC_IEC_559_COMPLEX__ should be in the normative part of the standard or left in the informative annex and what it means to conform to an informative annex. A Thomas requested agenda time at the next meeting for this topic which was approved by acclamation. - 12 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 FM Thomas/Tydeman, that point 5 of N657 Floating-Point and Complex Arithmetic Enhancements be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 15/0/2/0/17 -- Passes CV 4/0/0 -- Passes *** Thomas to head review board; Tydeman, Walls, Meyers, and Gwyn to participate. *** Benito to investigate what it means to conform to an informative annex. Thomas presented 9. (cbrt). FM Thomas/Tydeman, that point 9 of N657 Floating-Point and Complex Arithmetic Enhancements be incorporated into the C9X draft as-is. FV 14/0/1/2/17 -- Passes CV 3/0/1 -- Passes Thomas presented 11. (reserve names for complex versions of math functions). FM Thomas/Hoerth, that point 11 of N657 Floating-Point and Complex Arithmetic Enhancements be incorporated into the C9X draft with the following wording changes: add cbrt to the list of function names, prefix each of the function names with ``c'', and remove the text ``, all prefixed with c,'' and ``corresponding''. FV 15/0/1/1/17 -- Passes CV 3/0/1 -- Passes Thomas presented revised words for 6. FM Thomas/Tydeman, that points 6 and 12 of N657 Floating-Point and Complex Arithmetic Enhancements be incorporated into the C9X draft with the following wording changes: Add the following change: In subclause 7.6, before the paragraph defining DECIMAL_DIG, insert the paragraph: The macros FP_ILOGB0 FP_ILOGBNAN expand to integral constant expressions whose values are returned by ilogb(x) if x is zero or NaN, respectively. The value of FP_ILOGB0 shall be either INT_MIN or -INT_MAX. The value of FP_ILOGBNAN shall be either INT_MAX or INT_MIN. - 13 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes Change the second and subsequent clauses of the second sentence of the Description for ilogb on page 5 line 23 to ``it computes the value FP_ILOGB0 if x is zero; it computes the value INT_MAX if x is infinite; and it computes the value FP_ILOGBNAN if x is a NaN.'' FV 16/0/0/1/17 -- Passes CV 3/0/1 -- Passes FM Thomas/Tydeman, that points 13 and 14 of N657 Floating-Point and Complex Arithmetic Enhancements be incorporated into the C9X draft as-is. FV 15/0/1/1/17 -- Passes CV 3/0/1 -- Passes Thomas presented 3. (fused multiply-add). There were various questions about the need for an explicit function as opposed to simply making it a code-generation optimization and the cost of implementing fma in software for hardware that doesn't support it. Thomas said that it's important to control where it's used and where it isn't, so leaving it to the optimizer isn't useful. Tydeman pointed out that intermediate overflow and underflow aren't allowed, so a software implementation is difficult. Thomas agreed. It was pointed out that if fma isn't supported in hardware it may well be better to use a different algorithm that doesn't require it than to use a software fma. It was also pointed out that LIA-2 has fma. SV Should we add an fma function with a macro indicating whether there's hardware support for it? 6/6/7 Walls presented N651 C9X, Editorial Use Term ``Real-Floating''. FM Walls/Tydeman, that N651 C9X, Editorial Use Term ``Real-Floating'' be incorporated into the C9X draft with the following wording changes: in item 2, change ``5 occurrences'' to ``6 occurrences'' and add ``Clause 7.6.2.X, The isinf macro'' to the list. FV 16/0/0/1/17 -- Passes CV 3/0/1 -- Passes 7. Implementation-Defined Integral Types [N641] Meyers presented N641 Implementation-Defined Integral Types. - 14 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 SV Should C9X acknowledge that the integral types may include implementation- defined types? 14/0/4 *** Meyers to write a paper. 8. Standard Pragmas [N631] Tydeman presented N631 Standard Pragmas. FM Tydeman/Gwyn, that N631 Standard Pragmas be incorporated into the C9X draft with the following wording changes: insert ``STDC'' between ``#pragma'' and ``FP_CONTRACT_OFF''. FV 14/1/0/2/17 -- Passes CV 4/0/0 -- Passes *** Meyers to work on improved wording for 6.8.6. 9. Implicit Function Declaration Removal [N636] Jones presented N636 Implicit Function Definition Removal. FM Walls/Jones, that N636 Implicit Function Definition Removal be incorporated into the C9X draft as-is. FV 14/1/0/2/17 -- Passes CV 4/0/0 -- Passes 10. // Comments: Examples and Rationale [N644] Gwyn presented N644 Add // comments. FM Gwyn/Benito, that N644 Add // comments be incorporated into the C9X draft with the following wording changes: note that the change in 6.1.7 is to paragraph [3] and the change in 6.1.9 is to paragraph [1]. FV 16/0/0/1/17 -- Passes CV 4/0/0 -- Passes 11. Remove Implicit int in Declarators [N661] Gwyn presented N661 Disallow Implicit ``int'' in Declarations which is N646 with corrections. FM Gwyn/Nestor, that N661 Disallow Implicit ``int'' in Declarations be incorporated into the C9X draft as-is. FV 15/1/0/1/17 -- Passes - 15 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes CV 4/0/0 -- Passes 12. Boolean type [N587, N609] Plum presented N587 Revised bool Proposal and Farance presented N609 Boolean as a New Type. Although people were generally happy with Plum's proposal, there seemed to be much interest in going farther along the lines proposed by Farance. SV Encourage Farance to revise N609 to provide exact wording for the next meeting. 12/4/1 4/0/0 *** Farance to revise N609; Plum, Seymour, and Gwyn to review. FM Plum/Gwyn, that N587 Revised bool Proposal be incorporated into the C9X draft with the following wording changes: ``7.1.7'' should be ``7.X'' and the footnote goes after ``value 1.''. FV 10/5/2/0/17 -- Passes CV 4/0/0 -- Passes 13. Inlining [N633] MacDonald presented N633 Add ``inline'' Capability to C, Draft 2. Static variables which are local to extern inline functions have to be globalized somehow so that there's only one instance of them. WG14 and WG21 are both charged with maintaining compatibility; WG21 has had to work hardest up until now, now it's WG14's turn to maintain compatibility with C++ (assuming we do inline at all). C++ recently changed to allow calls to inline functions prior to the definition of the function. Extern inline functions require linker support; perhaps it's already there for C++. SV Who likes (multiple votes OK): C++ ala N633 11 Something less 13 No inline 3 SV J11 voting members only (only one vote): C++ ala N633 8 Something less 7 No inline 1 - 16 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 SV WG14 National Bodies: UK none Canada prefers C++, less is also acceptable Denmark prefers C++, less is also acceptable US either C++ or less Static inline only is an obvious subset, another possibility is to allow extern inline but require that there only be one definition and that it not have local statics. Most users don't care whether functions just declared inline (with no explicit storage class) are static or extern; the address of the function and the behavior of local statics are the only visible differences and in most cases they don't matter. SV Is it OK to require enhanced linker technology for C9X? 3/10/6 SV Should we only allow static inline? 4/6/8 SV Should we allow extern inline but forbid taking the address, referencing static variables, and declarations that are not also definitions? 10/2/6 *** MacDonald to write paper; Meyers to champion in London; Plum, Martin, and Meyers to review. 14. Generic/Intrinsic Math Functions [N639] Thomas presented N639 Type-Generic Math Functions. The functions are described as macros, so it isn't possible to take the address of a generic--you get the regular double function as you do by parenthesizing the name or using #undef on it and #ifdef works as expected. The macro uses the type(s) of the parameter(s) to determine which actual function to call, but the exact mechanism is unspecified. A vocabulary search supported the use of ``generic'' as opposed to ``intrinsic''. Changes from previous version: changed to ; int arguments are now converted to double rather than float to avoid surprises; calling a real-only function with a complex argument is now undefined behavior instead of implementation-defined; names of potential complex functions which are not yet required are reserved for future use in N657, point 11. The description of function selection on page 2, lines 22-24 is defective; it doesn't work right for functions with one long double argument and one int argument. Thomas will revise. - 17 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes Suggestion to change the ``invokes'' column in the Examples on page 4 to include explicit casts for arguments which are converted due to the function prototypes. Do all of the little functions actually have to exist with specific names? Yes. Is there a problem with including and since up until now standard headers didn't include other standard headers? Consensus is that there is no problem. FM Thomas/Tydeman, that N639 Type-Generic Math Functions be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 14/0/3/0/17 -- Passes CV 2/0/2 -- Passes *** Thomas to head review board; Tydeman and Walls to participate. 15. VLAs [N637] MacDonald presented N637 Arrays of Variable Length. This is an update based on input from the previous meeting; there are change bars in the paper indicating the exact changes. The usual discussion of what it means to say the size is ``needed'' ensued. Suggested wording change: page 7 lines 38-39 (6.5.4.2 Array declarators, Semantics, first paragraph, 3rd line from the end), change ``If the size of the array is not needed, it is unspecified whether the size expression is evaluated.'' to ``It is unspecified whether side effects are produced when the size expression is evaluated.''. Discussion of page 5, line 27 (6.5.2.1 Structure and union specifiers): where exactly does the footnote go? The end of paragraph [2]? Not necessarily, paragraph [7] says that members can have any object type and that's no longer true, so there has to be some change to the normative text as well. There was a request for improved wording for 6.5.6, but no suggestions. Suggested wording change: page 2, lines 26-27 (6.3.3.4 The sizeof operator, Semantics, first paragraph), change the last sentence to ``If the type of the operand is a variable length array, the operand is evaluated; otherwise, the operand is not evaluated and the result is an integer constant.'' There were concerns that this functionality is very similar to, but incompatible with, that provided by valarrays in C++. - 18 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 FM Walls/Gwyn, that N637 Arrays of Variable Length be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 14/0/2/1/17 -- Passes CV 4/0/0 -- Passes *** MacDonald to head review board; Seebach, Walls, and Keaton to participate. 16. Implicit int removal [N635] Jones presented N635 Implicit int Removal (Old-Style Parameters). FM Jones/Walls, that N635 Implicit int Removal (Old-Style Parameters) be incorporated into the C9X draft with the following wording changes: the lead-in to the first change should identify paragraph [6], the lead-in to the second change should identify paragraph [7], and the footnote reference in the second change should be 93 instead of 85. FV 11/3/1/12/17 -- Passes CV 4/0/0 -- Passes 17. Type Rules for Decimal Integer Constants [N629] Jones presented N629 Type Rules for Decimal Integer Constants. FM Jones/Tydeman, that N629 Type Rules for Decimal Integer Constants be incorporated into the C9X draft with the following wording changes: the lead-in to the change should identify paragraph [5]. FV 10/4/1/2/17 -- Passes CV 2/0/2 -- Passes 18. Extended Integers Promotion Rules [N606] Farance presented N606 Extended Integers Promotion Rules. Farance is not making a proposal; Meyers has an action item to draft improved wording, this is a contribution to that effort. Suggestion that the term ``larger precision'' be replaced by ``greater precision'' which seems to be the more common usage. The wording actually specifies the old ``unsigned preserving'' rules rather than the current ``value preserving'' rules and so needs to be modified. After much discussion, it was agreed that the term ``bits available for storage'' should actually be ``bits available in the representation''. There might be a problem if two different types have the same size: it's handled for the standard types but it's not handled for implementation- - 19 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes defined extension types. Should we explicitly mention implementation-defined extension types? Can the result of evaluating an expression have an extension type? Yes; this is a change to the current standard and it can't happen unless you start with an extension type so you're already outside the scope of the current standard, although may provide you with a standard conforming way of getting such types. Consensus is that Meyers should include this in his new wording. 19. ungetc at Beginning of File [N604] Farance presented N604 Proposal to Fix ``ungetc'' for Beginning of File. The text of the proposal removes the ability to use ungetc at the beginning of a binary stream, but the actual intent is to add it to the list of obsolescent features. Allowing ungetc at the beginning of a binary stream means additional complexity for applications or third-party libraries that want to do mark and return processing. That additional complexity is under the programmer's control; if you want to do mark and return then don't do ungetc at the beginning of the file. Applications don't usually use ungetc this way on binary streams but they do use it on text streams. SV Should we add a bullet to Future Library Directions indicating that ungetc at the beginning of a binary stream is obsolescent? 9/5/5 3/0/1 FM Farance/Gwyn, that N604 Proposal to Fix ``ungetc'' for Beginning of File be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 8/5/3/1/17 -- Passes CV 2/0/2 -- Passes *** Farance to head review board; Gwyn and Keaton to participate. 20. snprintf() Wording [N645] Gwyn presented N645 Alternative to sprintf. This is a revision based on input at the last meeting. It was pointed out the the text forbidding copying between overlapping objects is no longer needed since it is implied by restrict in the prototype. Since sprintf still has the same words, the consensus was to keep them, although a general clean-up may be in order. - 20 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 FM Gwyn/Seebach, that N645 Alternative to sprintf be incorporated into the C9X draft with the following wording changes: ``7.10'' should be ``7.11'' and ``7.11.6.?-and-a-half'' should be ``7.11.6.X''. FV 13/0/1/3/17 -- Passes CV 4/0/0 -- Passes 21. va_list and fpos_t [N655] Walls presented N655 N504 and N643 (C9X Draft 8). This is the final wording for proposals that were already accepted. FM Tydeman/Seymour, that N655 N504 and N643 (C9X Draft 8) be included into the C9X draft as-is. FV 13/1/1/2/17 -- Passes CV 4/0/0 -- Passes 22. Extended Identifiers [N574, N589, N663] Plum presented N663 C++ CD2, Clause 2. This is the result of the C++ extended identifiers proposal (which was essentially the same as N574) as it appears in their current draft. The intent was to disallow universal character names for basic character set characters, but the actual wording in the draft doesn't quite do so. Farance then presented N605 Extended Trigraphs and Backslash Sequences. SV Should we pursue this topic? 12/3/2 4/0/0 Can the two proposals be unified? No, competing proposals. SV Who prefers the Plum proposal? 6/5/6 3/0/1 There was a request for the abstainers to explain their votes; would more discussion allow them to reach a decision? The replies pretty much agreed that either proposal was a step forward, each proposal had it's own advantages and disadvantages, and there was no clear basis on which to decide between them so additional discussion would not be useful. FM Keaton/Benito, that N574 Extended Identifiers, etc. be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 12/4/1/0/17 - 21 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes CV 4/0/0 Farance stated that the reason for his no vote was that, contrary to the liaison statement, he doesn't feel that the issues were properly aired in WG21. *** Plum to chair review board; Benito, Farance, and Simonsen to participate. 23. New Form of Pragma [N634] MacDonald presented N634 New Form of Pragma, Version 4. The changes from version 3 are noted in the introduction. It was suggested that the new wording in 6.8.3.4 doesn't clearly specify that macro substitution takes place before pragma processing; suggest changing ``are processed'' to ``are then processed''. There was some discussion of whether it is OK to infringe on the user's namespace. SV Should we change pragma to _Pragma? 7/4/6 FM MacDonald/Nestor, that N634 New Form of Pragma, Version 4 be incorporated into the C9X draft with the following wording changes: delete the first change (5.1.1.2, [1]); in the second change (6.8.3.4 [3]), in the lead-in change ``add a clause'' to ``modify the clause'' and in the last line of the text change ``are processed'' to ``are then processed''; in the third change (6.8.9), in the lead-in change ``Add a new section'' to ``Replace section'' and add ``with'' prior to the colon; finally, change all occurrences of ``pragma'' in the draft that are referring to the unary operator to ``_Pragma''. FV 14/1/0/2/17 -- Passes CV 4/0/0 -- Passes 24. C and POSIX Alignment [N658, N665] Simonsen presented N658 POSIX Alignment. This is a revision of N586, the changes are noted in the Introduction. 7.3.1 isblank: seems like there should be some additional semantics such as requiring that isspace also be true or that isalpha be false; need a better description of what ``blank'' is supposed to mean (as opposed to ``space''). 7.4 Localization: should the reference to POSIX-2 locales and charmaps be moved to the Rationale? No, a footnote. 7.4.2 Numeric formatting: withdrawn 7.4.2.1 p_sign_posn and n_sign_posn: it is still not clear exactly why POSIX added the new value, it doesn't seem to provide any additional - 22 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 functionality; the promised table really is needed. 7.5.2.1 int_curr_symbol different from currency_symbol: probably need int_p_sign_posn and int_n_sign_posn, too. 7.14.3.5 strftime: we should probably specify the exact results of the strftime conversion specifiers in the C locale; all of this is already allowed as an extension, we don't have to specify it; time and date formats aren't really O/S specific, seems like it really belongs in the C standard rather than the POSIX standard; is it important enough to require it from non-POSIX vendors?; it will take a fair amount of work to translate the POSIX specification into a C specification. FM Gwyn/Farance, that N658 POSIX Alignment except for 7.4.2 and 7.14.3.5 be passed on to an editorial review board to draft the changes necessary to incorporate the proposal into the C9X draft. FV 11/1/5/0/17 -- Passes CV 3/0/1 -- Passes *** Simonsen to head review board; Gwyn, Farance, Nestor, and Jaeschke to participate. *** Simonsen to continue work on 7.14.3.5. Simonsen later presented N665 POSIX Alignment, a revision to N658 with the changes once again described in the introduction. With respect to strftime, the specifications seem to be good, but we're not sure we really want to add all the locale members and there are still some holes to be filled in. The approved and unapproved parts of the paper should be split apart; the approved parts should go to the editorial review board, the unapproved parts should come back to the committee as papers. FM Seebach/Farance, that there be agenda time at the next meeting to discuss strftime. FV 4/4/8/1/17 -- ? CV 2/0/2 -- Passes *** Simonsen to write paper; Benito, Jaeschke, and Nestor to review. 25. toups/tolows Functions [N659] Simonsen presented N659 toups/tolows. Isn't there existing practice for similar functions? Existing practice works in place, so not useful when the mapping isn't one-to-one. - 23 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes Return type and argument types and order should match existing string functions like strncpy. Do POSIX locales handle non-one-to-one mappings? Don't think so. It would be nice to have a way to get the required buffer size. Seems like there is only a very small need for these functions; the German ess-zed is the canonical example and it's been deprecated. The original request was for simple in-place functions, the I18N problems were pointed out, these functions are the result, if we're going to have functions like this we should do the best job we can. SV Do we want to pursue this topic? 6/8/3 0/2/2 26. Miscellaneous Topics 26.1. Access to Objects [N640] MacDonald presented N640 Access to Objects. The basic problem is that the aliasing rules only cover declared objects, they don't cover dynamically allocated space. FM MacDonald/Keaton, that N640 Access to Objects be incorporated into the C9X draft with the following wording changes: note that the change is to subclause 6.3 Expressions, paragraph [6] beginning ``An object shall have its...''. FV 17/0/0/17 -- Passes CV 4/0/0 -- Passes *** MacDonald to supply text and rationale to editors. 26.2. Basic I/O Addressing [N656] Kristoffersen presented N656 Standardization of Basic I/O Hardware Addressing. There was some discussion about exactly where this work belonged and whether there were any other standards organizations working in this area. SV Should something along these lines appear in an Informative Annex? 6/7/4 3/1/0 *** Kristoffersen to revise paper into proper wording for the standard; Gwyn, Seymour, and Jaeschke to review. - 24 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 26.3. Removal of Obsolescent Features Seebach went through the subclauses of 6.9 Future language directions that haven't already been addressed asking for a straw vote on each. SV Should we disallow a storage-class specifier other than at the beginning? 3/5/lots SV Should we disallow old-style function declarations? 10/5/3 SV Should we disallow old-style function definitions? 10/3/5 SV Should we remove the deprecation on array parameters? 9/5/5 27. Administration 27.1. Future Meetings 27.1.1. Future Meeting Schedule Jun. 23-27, 1997 London, UK BSI Oct. 20-24, 1997 Menlo Park, CA, USA Sun Feb. 02-06, 1998 Boulder, CO, USA Keaton Jun. 22-26, 1998 Copenhagen, Denmark DS Oct. 05-09, 1998 New York, NY, USA Farance Feb. 1999 West Coast, USA 27.1.2. Future Agenda Items Jaeschke will post future agenda items on the reflector. 27.1.3. Future Mailings Hewlett-Packard will do the next WG14 mailings. Benito prefers PostScript or ASCII text with the document number included. Mailing deadlines (close of business PST [UTC -8]): Post-Kona Mar. 7, 1997 Pre-London May 23, 1997 Post-London Jul. 18, 1997 Pre-Menlo Park Sep. 26, 1997 Post-Menlo Park Nov. 21, 1997 Everyone is encouraged to get papers into the mailings prior to the meeting rather than bringing them to the meeting. - 25 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes Benito noted that he has not been receiving formal delegate lists from all of the National Bodies. 27.2. Resolutions 27.2.1. Review of Decisions Reached Jones read through the formal motions, resolutions, formal votes, and consensus votes as recorded in these minutes. 27.2.2. Formal Vote on Resolutions It was determined that all resolutions had been voted on and no further votes were required. 27.2.3. Review of Action Items Jones read through the action items recorded in these minutes with the exception of those in 1.7 Review of Action Items which were egregiously overlooked. *** Benito will generate a list of DRs which promise some change in C9X. *** Seebach will write a paper on strsep. 27.2.4. Thanks to Host The committees expressed their thanks to Plum and Plum Hall for hosting. 27.3. Other Business The restricted FTP site and restricted Web site passwords have been changed; contact your Head of Delegation for them. 28. Adjournment - 26 - Feb. 10-14 Waikoloa Minutes WG14/N670, J11/97-033 US TAG Meeting February 13, 1997 Waikoloa, Hawaii, USA 1. London Delegation A The US Delegation of Jaeschke, Keaton, Farance, Walls, and Plum was approved for the next two meetings by acclamation. 2. HOD Appointment Jaeschke appointed Walls as Head of Delegation for the next two meetings. 3. Other Business 3.1. CD Registration The Registered CD won't appear in the mailing, it will be on the restricted FTP site for anyone who's interested; Benito will provide it to anyone who wants it and can't get a copy otherwise. FM Hoerth/Farance, that we direct Walls to vote to empower the Convener to register the draft provided that the editorial review is acceptable. FV 17/0/0/0/17 -- Passes FM Seebach/Hoerth, that we make the registered draft available to the public with a cover letter noting anticipated changes and no request for feedback. Think that the public is better served by waiting until the draft better reflects the decisions that have been reached. Prefer that the committee get a chance to see the document before the public does. It may not be as polished as we would like, but there are people with a strong interest in the standard who are willing to provide valuable input if we give them the opportunity There is concern that the input might have a very low signal to noise ratio. The cover letter will help to forestall bad comments. Note that the official registered CD won't have a cover letter but we can (must!) provide one if we distribute it to the general public. Could provide for information only and refuse to accept any comments. It will only be a few months until a much better document is available. FV 5/8/3/1/17 -- Fails - 27 - WG14/N670, J11/97-033 Feb. 10-14 Waikoloa Minutes 3.2. Adjournment - 28 -