Draft Minutes for October 16-19 2000 Meeting of ISO/JTC1/SC22/WG14 and NCITS/J11 WG14/N928 16 Oct 2000 09:30-12:00 13:30-17:00 17 Oct 2000 09:00-12:00 13:30-17:00 18 Oct 2000 09:00-12:00 13:30-17:00 19 Oct 2000 09:00-12:00 13:30-17:00 Meeting Location: Novotel Toronto Centre 45 The Esplanade Toronto, Ontario M5E 1W2 Tel: (416) 367 8900 Fax: (416) 860 5154 Host Contact information: Raymond Mak IBM Canada (416) 448-2516 rmak@ca.ibm.com Monday 1. Opening activities 1.1 Opening Comments Benito welcomed everybody to Toronto and introduced our hosts IBM and Xerox. 1.2 Introduction of Participants/Roll Call Berkeley Design Tech John Hauser Compaq/Digital Rich Peterson Farance Inc Frank Farance IBM Corp Raymond Mak HOD (Canada) IBM Corp Wang Chen Inprise/Borland John Wiegley Himself David Keaton Oracle David Schwab Perennial John Benito Plum Hall Tom Plum SDRC Larry Jones Himself Peter Seebach Himself Bill Seymour Sun Douglas Walls HOD (USA) Tydeman Consulting Fred Tydeman US Army Douglas A. Gwyn Denmark Jan Kristoffersen HOD (Denmark) Ireland Martin O'Riordan HOD (Ireland) Netherlands Willem Wakker HOD (Netherlands) Knowledge Software Derek Jones HOD (UK) Origin Netherlands Randy Marques France Antoine Leca HOD (France) UK Francis Glassborrow Canada Hugh Redelmeier Canada Henry Spencer Canada Byte Craft Limited Walter Banks Norway Keld Simonsen HOD (Norway) 1.3 Selection of Meeting Chair John Benito was selected as meeting chair. Derek Jones as meeting secretary. 1.4 Procedures for this Meeting Business as usual. 1.5 Approval of Previous Minutes (WG14/N914) The straw vote for DR222. Change "behaviour undefined" to "behaviour defined". 1.6 Review of Action Items and Resolutions Keaton Done Benito Dropped Jones (UK) Done Meyers Open Wakker Done (N923) Wakker Done Japan Done Benito Done (N922) Meyers Open Jones (US) Open Meyers Done (DR216) Simonsen Done (embedded-c) All Done Plum Open Meyers Closed Subgroup Done Outstanding actions from before Tokyo meeting: Gwyn Open Benito Open Feather Open Tydeman Done (N919) Glassborrow volunteered to monitor newsgroups for possible DR issues. 1.7 Approval of Agenda (WG14/N921) 1.8 Distribution of New Documents There were no new documents for distribution. 1.9 Information on Next Meeting The next meeting is 23-27 April 2001 in Copenhagen. 1.10 Identification of National Bodies National bodies present: UK, US, Denmark, Canada, Netherlands, Ireland, Norway, and France. 1.11 Identification of J11 voting members There are currently 18 voting members of J11, 13 voting members were present at the meeting, one member present would have voting rights at the end of this meeting. 2. Rationale Status and Plan (All) We need to produce a document that reflects C99 as published. The rationale is a living document and can then continue to evolve Discussion of what format the rationale should be available in, html, troff, .doc, and text. No general consensus. Action Keaton: Coordinate review of rationale. Helpers Gwyn, Jones (US), Schwab, Farance, Peterson, Leca, Tydeman (floating point). 3. NWI Status Report (N922) (Benito) Sequence points. Added agenda item for technical discussion. Decided to leave voting until after technical discussion. I/O hardware. Final vote of whether to continue addressing this issue to be made before the end of this meeting. 7.4 WG15 (posix) Keld reported that ISO 9945 is being revised. The revised document to include the API plus Shell and Utilities in a single document. The C library is also to be included in the revised document. WG15 and the OpenGroup are working closely together to produce a single specification. http://www.opengroup.org/austin/docs/austin_9r3.txt Final CD out for ballot, closes 31 December 2000. ACTION Benito: Talk to WG14 members who are involved in following the time issues within WG15, to find somebody willing to summarize differences from the WG14 specification and write them up for distribution. 4. Signaling NaN Material for Rationale (N919) (Tydeman) The document was adopted from NCEG 91-028, the last NCEG document to discuss support for Signaling NaNs. Tydeman proposed that it be added to the Rationale as a new annex. The committee felt that there were still issues that need to be resolved. ACTION Tydeman: To update N919 in light of committee discussion. 5. I18N Language Independent Interface (Simonsen) ISO/IEC 15435 at the working draft stage. The committee has decided to rewrite the document in terms of a C API. Does WG14 want to participate in the development of the C API for ISO/IEC 15435? Straw vote: 5/7/14 7.5 WG20 (I18N) ISO 14657 (sorting) passed FDIS ballot. ISO/IEC TR 10176:1998 Guidelines for the preparation of programming language standards, published standard. ISO 14652 (enhanced locale/charmap support) soon going out for DTR ballot. ISO/IEC 15897:1999 Procedures for registration of cultural elements, published standard. Convener of WG20 has proposed that the WG be disbanded. Yet to be discussed formally by WG20. Discussion has occurred within SC22 on whether the other WG's need WG20. ACTION Benito: To ensure that the C locale is registered by/at ISO. 12. Improve compile time configuration (N920) (Kristoffersen) Kristoffersen presented N920. Lots of discussion. Features could be obtained by using other tools, things are best done within the compiler, effects can be achieved using the existing constructs, existing constructs become cumbersome when more than a few platforms are targeted. Straw vote to be taken before the end of the meeting. Does WG14 want to work on a proposal implementing the ideas behind N920? 7. Liaison Activities 7.1 J11 Nothing to report. 7.2 WG14 (SC22 Plenary) Convener attended the SC22 plenary. There is a proposal to allow non- national bodies to participate within the standards process. 7.3 J16/WG21 Working is progressing on the performance TR. Current project editor of TR has resigned; Martin O'Riordan is the new project editor. 7.6 Other Liaison Activities Frank Farance reported on Vocabulary for Information Processing Systems. http://www.ncits.org/tc_home/k5.htm Fred Tydeman reported on LIA-2, the FDIS has just been sent to ISO for ballot. Tuesday 6. Irish Comment on JTC1-N6089, (N916) (O'Riordan) O'Riordan reported that the Irish panel wanted fixed point data types to also be available using base ten representation. There was general discussion; issues of C++ compatibility, base 10 is not often used in embedded systems (which is the subject of the work item). Discussion on agenda item 8, Response on N916 (N918) (Kristoffersen), was folded into discussion of Item 6. The issue of I/O ports and data buses having widths that are not a power of two in the future was discussed. Many applications are now using ASICs that allow widths to be tailored to the application. Should the proposal have a fully parameterized width, or should powers of two be special cases? 9. Further notes on Embedded C (N923) (Wakker) Wakker asked for guidance on the directions of the proposals; the C++ library model, or using new keywords. How C and C++ handled the mutual introduction of the complex type was suggested as a model for how to introduce the proposed new properties of type. Some members were interested in having saturate apply to pointers and floating types. Other members felt that they should apply to integer types only. No strong views were expressed on the proposals given in N923. The committee wanted to see actual wording before commenting further. 10. Embedded C relationship with C++ (N923) (Wakker) Members violently agreed that C++ compatibility was an important issue. Compatibility meaning the ability for both languages to handle the same source code. 8. Continued, Response on N916 (N918) (Kristoffersen) Kristoffersen presented some results of a static analysis on the use of I/O operations in a large embedded application. The common occurrence of some constructs has influenced his current proposals. 11. C support for embedded systems (N924) (Banks) Straw vote: Should syntax support for different kinds of storage be investigated? LOTS/0/4 Straw vote: Should a method of specifying the storage location of objects be investigated? LOTS/3/4 22. Sequence point paper (N925) Mac pointed out that the existing proposal was difficult for developers to use. He presented slides that described an alternative algorithm that he claimed, and others agreed, provided a simpler way of answering the question addressed by N925. Mac was still not certain that the rules in his algorithm delivered correct answers for all expressions. Action Mak: Write up alternative algorithm for answering YES/NO question intended to be answered by N925. Plum asked if it would not be simpler for the committee to more fully specify the behavior, instead of documenting the existing behavior. Wednesday 22. Continued, Sequence point paper (N925) Should the algorithm/representation given in N925 or the Mak representation/rules be used? It was felt that both should be used until it was shown that one of them was sufficient and perhaps both would coexist in the final document. Does the committee want the convener to fill out a new work item proposal covering the sequence point proposals? Straw vote to be taken before the end of the meeting. 13. Defect Reports The committee split into two subgroups to try and resolve open DRs. 205, 211, 212, 222: subgroup chair Peterson 223-234: subgroup chair O'Riordan Subgroup chairs presented the subgroup recommendations to the committee as a whole. The committee as whole held straw votes on these recommendations. 205: No consensus reached 211: 13/1/9 212: No consensus reached 222: Consensus on direction presented. Peterson to draft additional words. 223: 15/1/4 224: 21/0/2 225: 19/0/4 226: 22/0/1 227: 21/0/2 228: 22/0/1 229: Problems still outstanding. Open. 230: 14/0/4 231: No resolution. Open 232: 21/0/2 233: Not worked on. 234: Not worked on. Subgroups were then asked to continue working on open DRs. DR 218, 219 and 220 were assigned to Petersons subgroup DR 205 was reassigned to O'Riordans group in attempt to break the current lack of consensus. 23. Redelmeier sequence point paper Redelmeier presented a new paper that described an algebraic specification for answering the question asked by N925. Thursday October 19th 15. More on Sequence points N926 - Mak's paper N927 - Redelmeier's paper 16. Defect reports, Review DR233 - %g, %G precision specification Subgroup used words based on those from reflector between Clive Feather and Antoine Leca SV. Those in favor of going forward with this change as the current record of response 15-0-3 DR234 - Miscellaneous Typos Benito asked if he can add 2 other typos, committee agreed SV. Accept the proposed changes as the current record of response Not taken DR205 - Replace odd new use of static keyword SV. All in favor of leaving it as it is and doing nothing 6-7-5 SV. All in favor of deleting this whole facility 7-5-6 SV. Is the syntax ugly? Unanimous DR229 - localeconv() *_sep_by_space table entries issues Suggested changes to the table in the IS from the subgroup SV. All in favor of using the suggested changes to the table from the subgroup as the current record of response 16-0-2 DR231 - Semantics of text-line and non-directive Suggested response from the subgroup SV. All in favor of using the suggested changes from the subgroup as the current record of response Unanimous DR206 - default argument conversion of float _Complex SV. All in favor of putting the words in the rationale. 9-0-7 SV. All in favor of putting the words in a footnote. 3-3-10 DR211 - Accuracy of string/float conversions Subgroup has some words: Suggested TC This DR asks about the accuracy requirements for string conversions of floating point types. Since the accuracy of arithmetic operations and math library functions is stated to be implementation-defined in 5.2.4.2.2, we suggest that these conversions be included in that list. 5.2.4.2.2 #4 The accuracy of the floating-point operations (+, -, *, /) and of the library functions in and that return floating- point results is implementation defined. The implementation may state that the accuracy is unknown. --- The accuracy of the floating-point operations (+, -, *, /) and of the library functions in and that return floating- point results is implementation defined, as is the accuracy of the conversions between floating-point internal representations and string representations performed by the library routines in , , and . The implementation may state that the accuracy is unknown. DR212 - binding of multibyte conversion state objects Subgroups work 212: mbstate_t objects cannot be reused Subgroup's discussion: Standard is clear enough on the general issue of whether mbstate_t objects can be reused - the text cited as a problem was quoted out of context. This DR claims that an object of type mbstate_t can only ever be used to make one conversion. It quotes the fourth sentence of 7.24.6 (3), out of context from the first three sentences of the paragraph. The first three sentences describe a method for giving an mbstate_t object a value that permits it to be used to initiate a conversion involving any multibyte character sequence, and so an object of type mbstate_t can be used to perform more than one conversion. However, in the course of introducing a mechanism of bindings to clarify this point, the DR identifies specific problems with mbstate_t objects associated with wide streams. Changes to address this problem without introducing the notion of bound and unbound states: 7.19.3 "Files", #9 Change 2nd bullet from: - A file need not begin nor end in the initial shift state.225) to: - A file shall begin in the initial shift state, but need not end in the initial shift state.225) 7.19.2 "Streams" #6, or 7.19.9.2 "fseek" #5 Append to the paragraph: A successful call to fseek with an offset value of zero and a whence value of SEEK_SET resets the associated mbstate_t object to indicate the initial shift state. A successful call to fseek with an offset value of zero and a whence value of SEEK_CUR preserves the current value of the associated mbstate_t object. >>> What about offset == 0 and whence == SEEK_END?? Benito will add the subgroups discussions to the DR without the suggested changes the IS. DR218 - signs of non-numeric floating point values The committee agrees with this DR, and will incorporate wording along the lines suggested in the second alternative. New paragraph following 5.2.4.2.2 #3 [#3a] An implementation may give zero and non-numeric values (such as infinities and NaNs) a sign or may leave them unsigned. Wherever such values are unsigned, any requirement in this International Standard to retrieve the sign shall produce an unspecified sign, and any requirement to set the sign shall be ignored. SV All in favor of using the suggested changes from the subgroup as the current record of response 11-0-8 DR219 - effective types Subgroup agrees with the current record of response in this DR DR220 - decimal integer Subgroup conclude that TC changes 2-5 previously proposed in committee discussion be incorporated, but no change to wording or normative references along the lines considered for change #1 be incorporated in a TC. Fred wants to add more discussion. Committee consensus was in favor of using the suggested changes from the subgroup as the current record of response DR222 - Partially-initialized structures This DR asks the question of whether or not struct assignment is well defined when the source of the assignment is a struct, some of whose members have not been given a value. There was consensus that this should be well defined because of common usage, including the standard- specified structure struct tm. There was also consensus that if assignment with some members uninitialized (and thus possibly having a trap value) was being made well defined, there was little value in requiring that at least one member had been properly given a value. Therefore the notion that the value of a struct or union as a whole can have a trap value is being removed. TC to remove the notion of objects of struct or union type having a trap representation. Changes to 6.2.6.1 paragraphs 6 and 7, and footnote 42. Current wording: [#6] When a value is stored in an object of structure or union type, including in a member object, the bytes of the object representation that correspond to any padding bytes take unspecified values.42) The values of padding bytes shall not affect whether the value of such an object is a trap representation. Those bits of a structure or union object that are in the same byte as a bit-field member, but are not part of that member, shall similarly not affect whether the value of such an object is a trap representation. [#7] When a value is stored in a member of an object of union type, the bytes of the object representation that do not correspond to that member but do correspond to other members take unspecified values, but the value of the union object shall not thereby become a trap representation. 42) Thus, for example, structure assignment may be implemented element-at-a-time or via memcpy. ---- New wording: [#6]When a value is stored in an object of structure or union type, including in a member object, the bytes of the object representation that correspond to any padding bytes take unspecified values.42) The value of a struct or union object is never a trap representation, even though the value of a member of a struct or union object may be a trap representation. [#7]When a value is stored in a member of an object of union type, the bytes of the object representation that do not correspond to that member but do correspond to other members take unspecified values. Change footnote 42 to read: 42) Thus, for example, structure assignment need not copy any padding bits. SV. All in favor of using the suggested changes from the subgroup as the current record of response 12-1-5 17a. DR wrap up for a TC Candidates for the TC: 202 - Words voted on in Kona. (TC candidate) 204 - Words voted on in Kona. (TC candidate) 208 - Words voted on in Kona. (TC candidate) 209 - Words voted on in Kona. (TC candidate) 210 - Committee has accepted words. (Fred) 213 - Words voted on in Kona. (TC candidate) 216 - Words voted on in Tokyo. (TC candidate) 220 - Open, Words from Tokyo. 228 - Purely typos 232 - Purely typos 234 - Purely typos Convener asks, countries in favor of placing the above DRs in a TC: For - Netherlands, U.K., France, Canada, U.S., Ireland, Denmark 20.2.2 Formal Vote on Resolutions Embedded C: Does the committee take the position that language support for writing portable embedded driver libraries is in the scope of the TR? WG14 6 U.S., Ireland, Denmark, Netherlands, Canada, Norway 0 2 U.K, France The two papers presented were not represented by the Canadian position. N920 - Improve compile time configuration Does the J11 want to work on a proposal implementing the ideas behind N920? J11 1-9-1 Does the WG14 want to work on a proposal implementing the ideas behind N920? WG14 2 Denmark, Norway 4 U.S., Ireland, Denmark, Netherlands, Canada 2 France, U.K. Sequence points Should the Convener submit a New Work Item for a TR type 2 dealing with sequence points? WG14 4 Netherlands, U.K., Denmark, Norway 3 Canada, Ireland, U.S. 1 France WG20 has asked us to adopt Amendment 1 to TR 10176 Convener would like us to do nothing with this for now. AI Antoine Leca , produced a DR to align with Amendment 1 to TR 10176 20.1.1 Future Meeting Schedule April 23-27, 2001 Copenhagen, Danish Standards October 15-19, 2001 Seattle, Washington April 2002 Hosted by Netherlands (location open) October 2002 Convener to look for U.S. host April 2003 Francis to investigate U.K. host 20.1.3 Future Mailings Post-Toronto mailing November 17, 2000 Pre-Copenhagen mailing March 16, 2000 20.2.4 Thanks to Host Thanks to both IBM and Xerox Thanks to Norm Crowfoot for coming from Buffalo to set up equipment. 20.3 Other Business 21. Adjournment ======================================================================= Agenda for the J11/U.S. TAG Meeting, Wednesday October 18th at 17:30 J11 Tag 0. Voting memberships All but Inprise/Borland are paid up. 1. All DIS and FDIS voting and comments are required by JTC1 Per the recent notification from ANSI (see documentation at: http://www.jtc1tag.org/archive/2000/jt000538/jt000538.pdf), supporting comments for DIS votes of approval with comment(s) or disapproval must be entered into the DIS/FDIS Comments Template in order that ANSI's ISO Team (ISOT) can submit them electronically on the ISO server. I gave notice to NCITS that not all subcommittee have access to word. NCITS (Jennifer Garner) responded they would transcribe email responses to the word .doc template for submission. Our recommendations/comments always go through NCITS thru the JTC1 tag anyway. 2. Appoint delegation and HOD for future WG14 meetings J11 delegation for April 2001 is already established as noted from the April 2000 J11 tag meeting: FM Jones/Benito US Delegation to WG14 for the October 2000 meeting in Toronto, and the April 2001 meeting in Copenhagen. Douglas Walls (HOD) Larry Jones Fred Tydeman David Keaton For 10 Against 0 Abstain 0 Absent 6 3. Position on: N925 - A formal model of sequence points and related issues Does J11 support the convener submitting NWI for a TR dealing with sequence points? FM Benito/Tydeman Should the convener submit a NWI for a TR dealing with sequence points? 0-14-0 (14 voting members present) 4. DR resolutions Will wrap these up as necessary via SV during WG14 meeting. 5. Adjourn TAG meeting.