Document Number: |
WG21/N1108 |
|
X3J16/97-0070 |
Date: |
20 July 1997 |
Project: |
Programming Language C++ |
Reply-To: |
Sean A. Corfield |
|
sean@ocsltd.com |
J16 Meeting No. 24
WG21 Meeting No. 19
14-18 July 1997
US TAG Meeting 18 July 1997 (Appendix B)
BSI
389 Chiswick High Rd
London, UK
1. Opening activities
Clamage convened the meeting as chair at 9:05 GMT on Monday, 14 July 1997. Miller was vice-chair, and Corfield was the secretary.
BSI hosted the meeting.
1.1 Opening comments
Clamage noted that whereas the Nashua meeting was devoted to J16 resolution of US ballot comments, the London meeting would be devoted to WG21 resolution of all the NB ballot comments.
1.2 Introductions
Corfield circulated an attendance list each day, which is attached as Appendix A of these minutes. Miller circulated a copy of the membership list (SD-2 = 97-0001R3) for members to make corrections.
1.3 Membership, voting rights, and procedures for the meeting
Clamage reminded the attendees that this is a co-located meeting of WG21 and J16. (The joint membership is denoted WG21+J16 in these minutes.)
Clamage explained the voting rules:
Jean Stride, BSI, explained the facilities provided by the BSI.
Corfield explained the computing facilities provided by Object Consultancy Services Ltd and the Internet facilities provided by Demon Internet Services Ltd.
1.4 Distribution of position papers, WG progress reports, WG work plans for the week, and other documents that were not distributed before the meeting.
Deferred to 1.7.
1.5 Approval of the minutes of the previous meeting
Corfield said that he had not received any corrections for the minutes.
Motion by Dawes/Lajoie:
Move we approve N1059 = 97-0021 as the minutes of the previous meeting.
Motion passed J16: lots yes, 0 no, 0 abstain.
1.6 Agenda review and approval
Deferred to 1.7.
1.7 Report on the WG21 Sunday meeting
Plum summarized the WG21 meeting discussions. [Note: see N1106 = 97-0068 for details.]
Plauger asked for the ISO ballot vote to be noted in the minutes:
11 yes without comments
6 yes with comments
5 no with comments
1 abstain
1 not voting
Plum reiterated our goal of closing every issue at this meeting.
1.8 Liaison reports
Benito gave the WG14 (C language) liaison report. ISO C is currently in the registration ballot. The ISO C committee have added inline, declarations in for loops and extended identifiers, all in a manner compatible with C++. He said they have also added a bool type compatible with C++, either as a keyword or as a macro.
1.9 New business requiring actions by the committee
Colvin introduced a revision of the paper from Abrahams on exception safety in the library.
2. Working Paper for Draft Proposed Standard
2.1 Review of changes in the Working Paper (Committee Draft)
Koenig said a few typographical bugs have been fixed since Nashua.
3. Organize subgroups, establish working procedures.
There were three Core Language Working Groups chaired by Lajoie, Adamczyk and Gibbons, and two Library Working Groups chaired by Dawes and Schwarz.
The committees recessed at 10:25am.
4. WG sessions (Monday, Tuesday, Wednesday)
The committees reconvened at 16:00 on Wednesday afternoon.
5. General session I
The WG chairs summarised their progress.
6. General session II
Clamage said that WGs would present only controversial issues today.
6.1 Core II Language WG
Adamczyk presented the "major" issues from his group detailed in N1091 = 97-0053. Only one item generated any discussion.
Adamczyk explained the resolution of Canada comment 10, as described in N1084 = 97-0046 and noted that this passed with large majority in the combined Core WG.
Straw vote passed J16: 19 yes, 3 no, a few abstain.
Straw vote passed WG21: 3 yes, 1 no, 2 abstain. A count of W21 representatives showed Germany, Netherlands, France, Sweden, Canada, USA and UK were present. Japan was temporarily absent.
6.2 Core III Language WG
Stroustrup presented his proposal, N1043 = 97-0005, to change the handling of default arguments so that they are checked at instantiation instead of declaration.
Clamage explained the background to the proposal.
template< class T > void foo( const T& = T() ); struct C { C(int); }; C c; foo( c ); // fails on T()
There was a library proposal considered that would introduce:
template< class U > U default_value() { return U(); } template< class T > void foo( const T& = default_value<T>() );
Gibbons said that Core III felt the language did not need to change to support this usage - it was an editorial issue over when an expression is "used". Plum established that no one actually objected to this clarification.
There was extensive discussion about how to characterize the proposal for a vote. Plauger said that Stroustrup's proposal needs a vote in its own right.
Straw vote on Stroustrup's proposal passed J16: 27 yes, 8 no.
Straw vote on Stroustrup's proposal passed WG21: 5 yes, 0 no, 2 abstain.
Straw vote on adding default_value<T>() to the library failed: 0 yes, lots no.
Straw vote on adding an unknown number of extra signatures to the library failed: 1 yes, lots no.
6.3 Library WG
Dawes explained the proposed resolution to the problem of ambiguities between container member functions taking iterator ranges as parameters (and 'size_t, T' signatures). The proposed resolution is to add wording that the library should "do the right thing". There were no questions about this issue.
Dawes then discussed the proposal for introducing an exception safety policy to the library. This was not controversial.
Dawes then discussed the problem that pointers to C library functions had non-portable linkage. Plum asked for clarification. Dawes explained what the LWG decided:
Dawes then explained the proposed restrictions on what signal handler functions could do (in answer to a German ballot comment). There were no questions.
Plum presented some work on whether C library routines should be in global namespace or in std namespace.
There was quite a bit of discussion about why C library names were put into std in the first place.
Straw vote in favor of adding both clarifications passed: 22 yes, 1 no, 11 abstain.
Plum volunteered to write this up as a formal proposal.
6.4 Core I WG
Lajoie presented N1094 = 97-0056 which proposes that operator new() and operator delete() can be declared static or inline.
Straw vote passed J16: 14 yes, 4 no, 16 abstain. Straw vote passed WG21: 3 yes, 0 no, 4 abstain.
Glassborow suggested that we defer a decision until we have Ireland's feedback on the proposal. Plum asked for a volunteer to liaise with Ireland's technical experts about the issue. Miller volunteered.
Lajoie explained the proposed clarification of when copies of objects can be elided, noting this answered an Australian comment. She said the WP is too broad and allows copies to be elided when they can still be used.
Lajoie said the two cases they wanted to explicitly allow are:
Preference straw vote:
Straw vote on no change: 4 yes.
Straw vote on removing 12.8p15 (remove optimizations): 0 yes.
Straw vote on accepting the proposal and pursuing further changes: 20 yes.
Straw vote on accepting the proposal and not pursuing further changes: 5 yes.
Lajoie said Core would conduct further work to look at other optimizations.
6.5 Core III Language WG (continued)
Gibbons explained the proposal to remove template template arguments. The background is that having discovered some problems, the Core III WG investigated the issue and then became concerned that there were more problems lurking. Brück spoke out against removing a language feature at this stage and feels it would be better to address the German comment by specifying the semantics more fully. Unruh said that as originator of the comment, he would be satisfied by the addition of a single bullet that clarified how template template arguments interact with partial ordering.
Straw vote to remove template template arguments failed: 13 yes, 18 no.
Gibbons said the feature stays so we still have to address the German comment.
Gibbons also mentioned two issues which were explicitly rejected, both of which were considered unnecessary extensions.
6.6 Library II (locale/iostream) WG
Schwarz presented the resolutions from his group. He said they have resolved every issue and produced a list of all the differences. They have also fully specified money_punct in a paper that has been prepared at this meeting but it is too early to go for a straw vote on it yet.
6.7 Other issues
Myers discussed an issue arising from overloading enums. Nelson showed a real example:
(enumval) == (charval) // is ambiguous because: string::operator==( charval ); string::string( charval );
So the result was string( enumval ).operator==( charval ); A straw vote indicated that Core II should attempt to resolve this.
6.8 Disposition of comments
Plum asked WG chairs to draft responses to the NB comments (or delegate someone to do it for them). For comments with which we agreed, this will be easy, but for comments that we rejected the responses should indicate the due care and attention that the committee applied to the issue.
Myers asked what we should do about errors we find in the document. Dawes said they should go on an issue list for later resolution. Unruh asked that any major issues be raised more visibly. Clamage suggested the reflector be used to discuss any such issues.
7. Distribution of formal motions
A list of the papers which would constitute the formal motions was distributed. The majority of the papers consisted of troff diffs that should be applied to the WP.
8. Review of the meeting
Clamage said this had been a very productive meeting and thanked everyone for their cooperation.
8.1 Formal motions
Koenig asked Clamage to confirm that the next meeting agenda will include a vote to approve the WP once at the end of the meeting since we are producing an interim WP only. Clamage agreed. Clamage then counted J16 voting members (29 out of a possible 34) and WG21 voting members (8).
Core I
1. Motion by Lajoie/Miller to adopt various small Core language changes:
Move we amend the WP as described in N1095 = 97-0057 "Core I WP Changes" by Lajoie, Miller, Nelson.
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
2. Motion by Lajoie/Stump to clarify copy elision:
Move we amend the WP as described in N1103 = 97-0065R1 "Copy Elision" by Lajoie
Motion passed J16: lots yes, 2 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
Core II
3. Motion by Adamczyk/Welch to adopt various small Core language changes:
Move we amend the WP as described in N1104 = 97-0066 "Core II WP Changes" by Adamczyk
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
3a. Motion by Adamczyk/Welch to clarify overload resolution:
Move we amend the WP as described in N1084 = 97-0046 "Change to lvalue/rvalue resolution of overload" by Adamczyk
Motion passed J16: 19 yes, 5 no, 5 abstain.
Motion passed WG21: 4 yes, 0 no, 4 abstain.
The WG21 vote caused some discussion. The WG agreed to review this issue before the next meeting.
Core III
4. Motion by Lajoie/Gibbons to accept a revised clause 4 [templates]
Move we amend the WP by replacing clause 14 by N1089 = 97-0051 "Revised template clause" by Lajoie
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.
Gibbons explained that this revision contained only non-controversial issues and that N1101 = 97-0063R1- to be voted on later - included the larger resolutions.
5. Motion by Spicer/Gibbons to clarify template argument deduction:
Move we amend the WP as described in N1090 = 97-0052 "Revised template argument deduction" by Spicer
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
6. Motion by Spicer/Lajoie to adopt various small clarifications to templates:
Move we amend the WP as described in N1092 = 97-0054 "Core III WP changes part 1" by Spicer
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
7. Motion by Brück/Corfield to change when default arguments are checked:
Move we amend the WP as described in N1093 = 97-0055 "Default arguments" by Stroustrup
Motion passed J16: 24 yes, 5 no, 0 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.
8. Motion by Gibbons/Lajoie to adopt various Core language clarifications:
Move we amend the WP as described in N1101 = 97-0063R1 "Core III WP changes part 2" by Gibbons.
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
Library I
9. Motion by Rumsby/Dawes to adopt various small Library changes:
Move we amend the WP as described in N1098 = 97-0060 "Library WP changes" by Rumsby
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
10. Motion by Rumsby/Dawes to adopt some Library clarifications:
Move we amend the WP as described in N1102 = 97-0064 "Other Library changes" by Rumsby
Motion passed J16: lots yes, 1 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
11. Motion by Unruh/Dawes to clarify what names the C library reserves:
Move we amend the WP as described in N1105 = 97-0067 "The C library and global names" by Plum
Motion passed J16: lots yes, 0 no, 2 abstain.
Motion passed WG21: 7 yes, 0 no, 1 abstain.
Library II
12. Motion by Schwarz/Andersson to clarify money and time format in locale:
Move we amend the WP as described in N1096 = 97-0058 "Clarification of locale money and time formats" by Myers, Kühl
Motion passed J16: lots yes, 0 no, 3 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
13. Motion by Schwarz/Andersson to adopt various small changes to locale:
Move we amend the WP as described in N1097 = 97-0059 "Changes to locale" by Plum
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
14. Motion by Schwarz/Rumsby to adopt various small changes to iostream:
Move we amend the WP as described in N1099 = 97-0061 "Changes to iostream" by Schwarz
Motion passed J16: lots yes, 0 no, 0 abstain.
Motion passed WG21: 8 yes, 0 no, 0 abstain.
15. Motion by Rumsby/Clamage to thank the hosts:
Move we thank Jean Stride and BSI for hosting the meeting, Programming Research for the reception, Glassborow and the ACCU for refreshments at breaks, Corfield and Object Consultancy Services for loan of computer equipment
Motion passed WG21+J16 by acclamation.
8.2 Review of action items, decisions made, and documents approved by the committee
The following issues have been deferred and need resolution at or before the New Jersey meeting in November:
Koenig reminded the committee of the outstanding problem with enum and overloading. This is a core issue (Core 889) and the WG21 representatives present in London were unanimous that the problem needs a resolution.
Dawes said that the LWG still needs to add explicit to some signatures (the exception and fpos constructors). This change is previously approved but not yet in the draft and addresses Germany's comment 191 and USA comment CD2-27-036.
Dawes noted there are also half a dozen "editorial" comments outstanding which include a couple of substantive but minor issues.
The committee will also consider further issues from the reflector and private email subject to unanimous consent of WG21.
Unruh raised the issue of auto_ptr again since this was controversial within WG21. He also noted that the resolution regarding C library and namespaces might not satisfy Germany.
Someone noted that the rvalue/lvalue overload resolution adjustment needs to be revisited after feedback from National Bodies.
8.3 Issues delayed until Friday
None.
9. Plans for the future
9.1 Next meeting
Koenig said the next meeting would be 9-14 November at Headquarters Plaza Hotel in Morristown, NJ hosted by AT&T. Clamage said the WG will complete resolution of CD2 ballot comments and produce the DIS for submission.
9.2 Mailings
Miller said the usual schedules apply: 1st August is the deadline for post-London mailing.
9.3 Following meetings
Plum said it is hard to decide an agenda for the March '98 meeting yet since we will not know the result of the JTC1 letter ballot on the FDIS until just before the meeting, which will be in Sofia Antipolis, SE France. The meeting will be hosted by the University of Nice.
Motion by Corfield/Dawes:
Move we adjourn.
Motion passed WG21+J16: lots yes, 0 no.
The committees adjourned at 10:20 on Friday.
Appendix A
Name |
Affiliation |
M |
T |
W |
Th |
F |
Becker, Pete |
self |
A |
A |
A |
A |
A |
Dawes, Beman |
self |
V |
V |
V |
V |
V |
Gibbons, Bill |
self |
V |
V |
V |
V |
V |
Kühl, Dietmar |
self |
A |
A |
A |
|
|
Langer, Angelika |
self |
A |
A |
A |
A |
A |
Myers, Nathan |
self |
A |
A |
A |
A |
|
Koenig, Andrew |
AT&T |
V |
V |
V |
V |
V |
Stroustrup, Bjarne |
AT&T |
A |
A |
A |
A |
A |
Charney, Reg |
Charney & Day |
V |
V |
V |
V |
|
Sutter, Herb |
CNTC |
|
|
A |
A |
A |
Comeau, Greg |
Comeau Computing |
V |
V |
|
V |
V |
Stump, Mike |
Cygnus Solutions |
V |
V |
V |
V |
V |
Ward, Judy |
Digital Equipment Corp |
V |
V |
V |
V |
V |
Whitman, Sandra |
Digital Equipment Corp |
A |
A |
A |
A |
A |
Plauger, P. J. |
Dinkumware Ltd |
V |
V |
V |
V |
V |
Plauger, Tana |
Dinkumware Ltd |
A |
A |
|
A |
A |
Brück, Dag |
Dynasim AB |
V |
V |
V |
V |
V |
Adamczyk, Steve |
Edison Design Group |
V |
V |
V |
V |
V |
Spicer, John |
Edison Design Group |
A |
A |
A |
A |
A |
Jonsson, Fredrik |
Ericsson Austria AG |
V |
V |
V |
V |
V |
Klarer, Robert |
IBM |
A |
A |
A |
A |
A |
Lajoie, Josee |
IBM |
V |
V |
V |
V |
V |
Lextrait, Vincent |
ILOG |
V |
V |
V |
V |
V |
Colvin, Greg |
IMR |
V |
V |
V |
V |
V |
Nelson, Clark |
Intel |
V |
V |
V |
V |
V |
Sütö, Gyuszi |
Intel |
A |
A |
A |
A |
|
Schwarz, Jerry |
Intrinsa |
V |
V |
V |
V |
V |
Andersson, Per |
Ipso Object Software |
V |
V |
V |
V |
V |
Kumoluyi, Akin |
Motorola |
V |
V |
V |
V |
V |
Corfield, Sean |
Object Consultancy Services |
V |
|
|
V |
V |
Goldthwaite, Lois |
Objectspace |
A |
A |
|
|
|
Benito, J. |
Perennial |
V |
V |
V |
V |
V |
Plum, Thomas |
Plum Hall |
V |
V |
V |
V |
V |
Southworth, Mark |
Programming Research |
V |
V |
|
|
|
Wilcox, Tom |
Rational Software Corp |
V |
V |
V |
V |
V |
Glassborow, Francis |
Richfords |
V |
V |
V |
V |
V |
Smithey, Randy |
Rogue Wave Software |
V |
V |
V |
V |
V |
Saks, Dan |
Saks & Associates |
V |
V |
V |
V |
V |
Rouse, Jack |
SAS Institute |
V |
V |
V |
V |
V |
Schilling, Jonathan |
SCO |
V |
V |
V |
V |
V |
Austern, Matt |
SGI |
V |
V |
V |
V |
V |
Unruh, Erwin |
Siemens Nixdorf |
V |
V |
V |
V |
V |
Miller, William M. |
Software Emancipation Tech |
V |
V |
V |
V |
V |
Clamage, Steve |
Sun Microsystems |
A |
A |
A |
A |
A |
Crowl, Lawrence |
Sun Microsystems |
V |
V |
V |
V |
V |
Welch, Jim |
Sybase |
V |
V |
V |
V |
V |
Crowfoot, Norm |
Xerox |
V |
V |
V |
V |
V |
Total Attending |
|
46 |
45 |
42 |
44 |
41 |
Total Voting |
|
34 |
33 |
31 |
33 |
32 |
Appendix B - J16 US TAG Meeting
Minutes of the U.S. TAG Meeting (recorded by William M. Miller)
The U.S. TAG convened immediately following the adjournment of the joint meeting of J16 and WG21, chaired by J16 IR Clark Nelson. Miller volunteered to record the minutes, since J16 secretary Corfield is not a member of the U.S. TAG. 25 of the 29 TAG members with voting rights were present, satisfying quorum requirements.
Nelson stated that the only business for the TAG at this meeting was to select the U.S. delegation for the next WG21 meeting. He explained that there had been requests that Beman Dawes be added to the delegation to represent the Library subgroup and that Benito had volunteered to leave the delegation. The suggested delegation of Clamage, Dawes, Koenig, Nelson, and Stroustrup was approved unanimously.
The U.S. TAG meeting adjourned at 10:25 a.m.