WG21 2017-07 Toronto Minutes

ISO/IEC JTC1 SC22 WG21 N4691 — 2017-08-03

Patrice Roy, Patrice.Roy@USherbrooke.ca

July 10 - July 15, 2017 - Toronto, ON, Canada

Chair: Clark Nelson

1. Opening activities (Monday 9:00)

1.1 Opening comments, welcome from host (PL22.16)

Wong welcomes everyone, and thanks sponsors. He reminds people of a social event set for Wednesday and for which registration is required.

1.2 Meeting guidelines (PL22.16)

Every participant is responsible for understanding and abiding by the INCITS Antitrust Guidelines and Patent Policy and the ISO Code of Conduct.

1.3 Membership, voting rights, and procedures for the meeting (PL22.16)

The chair requests that prospective PL22.16 members inform the chair (Nelson) or vice-chair (Spicer) that they are present.

Spicer explains the attendance sheet rules and requests people adding themselves print their names clearly.

Sutter explains that the two-stage plenary session that was the norm in previous meetings has been fused into a single plenary session scheduled for Saturday, 8:30 up to 14:00 at most. There will be no plenary session on Friday afternoon.

Meredith expresses concern that 8:00 PM Friday deadline is a too late. Sutter states there is room to adjust that deadline in future meetings. Nelson expresses hope that motions will be displayed on the voting page before the deadline for the most part.

1.4 Introductions

Representatives from the following countries:

Canada Finland France Poland Russia Spain Switzerland UK US

1.5 Agenda review and approval (PL22.16 motion)

Agenda is in a revision of N4662, posted on the wiki.

Clow moved to adopt the agenda, Dawes seconded.

Approved by unanimous consent (for both WG21 and .16 polls).

1.6 Editor's reports, approval of working drafts

Document Editor's Report Prospective WD
C++20 Standard N4661 N4659
Modules TS N4668 N4667
Coroutines TS N4650 N4649
Ranges TS N4672 N4671
Networking TS N4657 N4656
Parallelism TS N4670 N4669
Concepts TS N4675 N4674

Approved by unanimous consent.

1.7 Approval of the minutes of the previous meetings (PL22.16 motion)

Meeting Minutes
WG21 Kona N4654
PL22.16 Kona N4655
WG21 pre-Toronto administrative telecon N4676

Adlestein-Lelbach moved to accept the PL22.16 Kona minutes, Alday seconded. Approved by unanimous consent.

WG21 minutes approved by unanimous consent.

2. Liaison reports, and WG21 study group reports (see pre-meeting WG21 telecon minutes)

Already summarized in the pre-meeting minutes

3. WG progress reports and work plans for the week (Core, Evolution, Library, Library Evolution)

Already summarized in the pre-meeting minutes

4. New business requiring action by the committee

Nothing was mentioned for this item

5. Organize working groups and study groups, establish working procedures

(Clarify rooms available for evening sessions)

6. WG and SG sessions

The WG and SG chairs must arrange for any proposals to be written up in the form of a motion, and made available by 8:00 PM Friday.

7. Review of the meeting (Saturday 8:30 AM)

WG and SG status and progress reports. Presentation and discussion of proposals to be considered for consensus adoption by full WG21.

SG5: Transactional memory (Wong)

SG6: Numerics (Brown, replacing Crowl)

SG7: Reflection/Compile-Time Programming (Carruth)

SG10: Feature test (Nelson)

SG12: Undefined and unspecified behavior (Dos Reis)

SG14: Games & low latency (Wong)

SG1: Concurrency (Boehm)

Evolution (Voutilainen)

Library Evolution (Yasskin)

Core (Miller)

CWG Motions

Motion 1 Move to accept as Defect Reports the issues in P0710R1 (Core Language "ready" issues) and apply their proposed resolutions to the C++ working paper.

Miller: this is an R1, as with the document in the pre-meeting mailing there were concerns on an issue and we adjusted accordingly

Approved by unanimous consent

Motion 2 Move to accept as Defect Reports the issues in P0711R0 (Core Language "tentatively ready" issues) and apply their proposed resolutions to the C++ working paper.

Approved by unanimous consent

Motion 3 Move to accept as Defect Reports the issues in P0727R0 (Core Issue 1299: Temporary objects vs temporary expressions) and apply their proposed resolutions to the C++ working paper.

Approved by unanimous consent

Motion 4 Move to apply the changes in P0683R1 (Default member initializers for bit-fields (revision 1)) to the C++ working paper.

Approved by unanimous consent

Motion 5 Move to apply the changes in P0704R1 (Fixing const-qualified pointers to members) to the C++ working paper.

Approved by unanimous consent

Motion 6 Move to apply the changes in P0409R2 (Allow lambda capture [=, this]) to the C++ working paper.

Approved by unanimous consent

Motion 7 Move to apply the changes in P0306R4 (Comma omission and comma deletion) to the C++ working paper.

Approved by unanimous consent

Motion 8 Move to apply the changes in P0329R4 (Designated Initialization Wording) to the C++ working paper.

Concerns were raised as to whether this feature promotes a low-level style of programming; some stated when passing a large number of arguments to an API, using an "options struct" can give cleaner syntax with names at the call site

Favor Opposed Abstain
39 2 2

Motion passed.

Motion 9 Move to apply the changes in P0428R2 (Familiar template syntax for generic lambdas) to the C++ working paper.

Concerns were raised to the effect that this could complicate the definition of lambdas and showed an intersection with concepts as syntax resembles suggested terse syntax

Favor Opposed Abstain
41 2 4

Motion passed.

Motion 10 Move to apply the changes in P0702R1 (Language support for Constructor Template Argument Deduction) to the C++ working paper and accept it as a Defect Report.

Favor Opposed Abstain
36 4 8

Motion passed.

Motion 11 Move to apply the changes in P0734R0 (Wording Paper, C++ extensions for Concepts) to the C++ working paper.

Favor Opposed Abstain
41 2 6

Motion passed.

Motion 12 Move to direct the convener to transmit N4681 (Working Draft, Extensions to C++ for Modules) for PDTS ballot.

Favor Opposed Abstain
33 8 7

Motion passed.

Library (Clow)

LWG Motions

Coroutines TS

Motion 13 Move that we apply the changes in P0664R1 (Coroutine TS NB Comments / Issues) to the Coroutines TS.

Favor Opposed Abstain
43 1 3

Motion passed.

Motion 14 Move that we appoint an editing committee of Geoffrey Romer, Bryce Lelbach, Gor Nishanov, and Marshall Clow, to verify the correctness of the Coroutines TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Favor Opposed Abstain
45 2 4

Motion passed.

Ranges TS

Motion 15 Move that we apply the changes in P0663R0 (Ranges TS “Ready” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.

Approved by unanimous consent

Motion 16 Move that we apply the changes in P0740R0 (Ranges TS “Immediate” Issues for the July 2017 (Toronto) meeting) to the Ranges TS.

Approved by unanimous consent

Motion 17 Move that we apply the changes in P0541R1 (Ranges TS: Post-Increment on Input and Output Iterators) to the Ranges TS.

Clow: all papers that follow in this section respond to NB comments on the Ranges TS

Approved by unanimous consent

Motion 18 Move that we apply the changes in P0547R2 (Ranges TS: Assorted Object Concept Fixes) to the Ranges TS.

Approved by unanimous consent

Motion 19 Move that we apply the changes in P0579R1 (Constexpr for <experimental/ranges/iterator>) to the Ranges TS.

Approved by unanimous consent

Motion 20 Move that we apply the changes in P0651R1 (Switch the Ranges TS to Use Variable Concepts) to the Ranges TS.

Approved by unanimous consent

Motion 21 Move that we apply the changes in P0662R0 (Wording for Ranges TS Issue 345 / US-2: Update ranged-for-loop wording) to the Ranges TS.

Approved by unanimous consent

Motion 22 Move that we appoint an editing committee of Eric Niebler, Casey Carter, Marshall Clow and Guy Davidson to verify the correctness of the Ranges TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Approved by unanimous consent

Networking TS

Motion 23 Move that we apply the changes in P0728R0 (Wording for Networking PDTS ballot comment 005) to the Networking TS.

Approved by unanimous consent

Motion 24 Move that we apply the changes in P0729R0 (Proposed wording for Networking TS NB comment GB 9) to the Networking TS.

Approved by unanimous consent

Motion 25 Move that we apply the changes in P0742R0 (Wording for Networking PDTS ballot comment resolutions) to the Networking TS.

Approved by unanimous consent

Motion 26 Move that we apply the changes in P0746R0 (Wording for Networking PDTS ballot comment 011 (US-10)) to the Networking TS.

Approved by unanimous consent

Motion 27 Move that we apply the changes in P0747R1 (Wording for Networking PDTS ballot comment 026 (GB-15), but not 027 (GB-16)) to the Networking TS.

Approved by unanimous consent

Motion 28 Move that we apply the changes in P0748R0 (Wording for Networking PDTS ballot comments on reentrancy) to the Networking TS.

Approved by unanimous consent

Motion 29 Move that we appoint an editing committee of Jonathan Wakely, Chris Kohlhoff, Lars Gullik Bjønnes, Mikael Kilpeläinen, and Marshall Clow to verify the correctness of the Networking TS working paper as modified by the motions approved at this meeting, and to direct the Convener to transmit the approved updated working paper for publication.

Approved by unanimous consent

Parallelism TS

Motion 30 Move that we apply the changes in P0076R4 (Vector and Wavefront Policies) to the Parallelism TS V2.

Approved by unanimous consent

C++ Working Paper

Motion 31 Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0698R0 (C++ Standard Library Issues to be moved in Toronto).

Approved by unanimous consent

Motion 32 Move to apply to the C++ working paper the proposed resolutions of all of the issues in P0699R0 C++ Standard Library Issues Resolved Directly In Toronto.

Clow: there are two issues moved as DRs against C++17. One is in allocation support for variant (it was not implementable), and we had failed to remove it from the C++ standard. Another is in filesystem, as something referred to a part that had been removed, so we fixed that

Approved by unanimous consent

Motion 33 Move that we apply the changes in P0463R1 (Endian just Endian) to the C++ working paper.

Approved by unanimous consent

Motion 34 Move that we apply the changes in P0682R1 (Repairing elementary string conversions) to the C++ working paper. This also resolves LWG issue 2955.

Approved by unanimous consent

Motion 35 Move to acccept as a Defect Report andthat we apply the changes in P0739R0 (Some improvements to class template argument deduction integration into the standard library) to the C++ working paper.

Clow: LEWG considered that they had passed it on to us, expecting it to be accepted as a DR against C++17. Along the way, information got lost and we did not process it right away, so I might come back with the same paper in Albuquerque to treat is as a DR

Sutter: there is the option of asking the whole group assembled here if they are willing to accept it as a DR. Is there any objection to treating it as a DR?

(no objection)

Approved by unanimous consent

Motion 36 Move that we apply the changes in P0674R1 (Extending make_shared to Support Arrays) to the C++ working paper. This also resolves LWG issue 2070.

Favor Opposed Abstain
34 1 14

Motion passed.

Stroustrup: (the direction group wants) to make a list of changes to describe how we'd like to deal with those changes. Winters will prepare something for vote in Albuquerque. We will try to gather feedback for the Bill of Rights and return in Albuquerque. Dawes will look for a way to gather library proposals

8. Closing activities (Saturday 11:16)

Nelson reminds those present about an INCITS email about fees.

Brown moves to thank the host and a large number of individuals, including:

8.1 PL22.16 motions, if any

None.

8.2 Issues delayed until today

None.

9. Plans for the future (PL22.16)

9.1 Next and following meetings

Discussions follow about the possibility of hosting two out-of-the-US meetings per year in 2019. Results were inconclusive.

9.2 Mailings

Deadline for papers is 14:00 UTC.

10. Adjournment (PL22.16 motion)

Clow moved to adjourn. Hedquist seconded.

Plenary concludes at 11:40 AM

11. Attendance

The column "WG21" designates official PL22.16 or WG21 status ("P", "A", "E", "M")

The column "PL22.16" indicates organizations eligible to vote by "V", and advisory membership by "A".

PL22.16 members

Company / Organization NB Representative WG21 PL22.16
Amazon Louis Dionne P V
Amazon John McFarlane
AMD Siu Chi Chan
Apple Duncan Exon Smith A
Apple CA JF Bastien A
Apple Tim Northover A
Apple Bruno Cardoso Lopes A
Argonne National Lab Hal Finkel P V
Bloomberg John Lakos P V
Bloomberg UK Alisdair Meredith A
Bloomberg UK Dietmar Kühl A
Bloomberg David Sankel A
Bloomberg Alexander Beels
Brown Walter E. Brown E
Cisco Systems Lars Gullik Bjønnes P V
Edison Design Group John H. Spicer P V
Edison Design Group Daveed Vandevoorde A
Edison Design Group Jens Maurer A
Edison Design Group William M. Miller A
EPAM Systems Inc Mateusz Pusz P
Facebook Louis Brandy P V
Facebook Eric Niebler A
Facebook Lee Howes A
Facebook Maged Michael A
Facebook Nathan Sidwell
FlightSafety International Billy Baker P V
Google Chandler Carruth A V
Google Geoffrey Romer A
Google Hans Boehm A
Google James Dennett A
Google Jeffrey Yasskin A
Google UK Richard Smith A
Google Thomas Koeppe
Google Titus Winters A
Google Gennadiy Civil v
GrammaTech Inc, Aaron Ballman P V
GreenWireSoft Juan Alday P V
IBM Paul E. McKenney P V
IBM CA Hubert Tong A
IBM CA Shuo Feng Liu
Intel Clark Nelson P V
Intel Pablo Halpern A
Intel Erich Keane
Lawrence Berkeley Bryce Adelstein-Lelbach P V
Lawrence Berkeley Brian Van Straalen A
Lawrence Livermore James Frederick Reus P V
Linden Research, Inc. Nat Goodspeed P V
Los Alamos National Laboratory S. Davis Herring A
Louisiana State University Hartmut Kaiser P V
LTK Engineering Alan Talbot P V
Microsoft Jonathan Caves P V
Microsoft Gabriel Dos Reis A
Microsoft Herb Sutter A
Microsoft Gor Nishanov A
Microsoft Andrew Pardoe A
Microsoft Casey Carter A
Microsoft Billy R. O'Neal III
MongoDB Adam Martin P V
MongoDB Nathan Myers A
Morgan Stanley Bjarne Stroustrup P V
NVidia Jared Hoberock A V
NVidia Olivier Giroux A
Oak Ridge National Laboratory Graham Lopez P
Oracle Maxim Kartashev A V
Perennial Barry Hedquist P V
Perennial Beman G. Dawes A
Plum Hall FI Ville Voutilainen A
Programming Research Group Christof Meerwald A V
Qualcomm Marshall Clow P V
Red Hat Torvald Riegel A V
Ripple Labs Howard E. Hinnant P V
Sandia National Labs Carter Edwards P V
Sony Computer Entertainment Michael Spencer A V
Symantec Mike Spertus P V
Synopsys Thierry Lavoie P V
Synopsys Tom Honermann A
University of Akron Andrew Sutton P V

Other WG21 members

Company / Organization NB Representative WG21
Codeplay CA Michael Wong M
Mozilla CA Botond Ballo M
Christie Digital CA Tony Van Eerd M
Université de Sherbrooke CA Patrice Roy M
CERN CH Axel Naumann M
Vollmann Engineering CH Detlef Vollmann M
HSR CH Peter Sommerlad M
CH Mauro Bianco M
University Carlos III ES J. Daniel García M
CryptoTec FI Mikael Kilpeläinen M
FR Loïc Joly M
Symantec UK Dinka Ranns M
PDT Partners UK Jeff Snyder M
UK Roger Orr M
Jetbrains UK Timur Doumler M

Participating non-members

Company / Organization NB Representative
Allan Deutsch
KEWB Computing Bob Steagall
Canada Seneca Chris Szarwinski
Faisal Vali
Creative Assembly Guy Davidson
Blizzard James Touton
University of Nice Jean-Paul Rigault
Numscale Joel Falcou
Graphcore Jon Chesterfield
Tanium Lisa Lippincott
VMWare Mark Zeren
Matt Calabrese
Melissa Mears
Nokia Michał Dominiak
Michael Park
Bob Taco Industries Michael McLaughlin
Michael Young
Nicolai Josuttis
University of Windsor Paul Preney
KCG Holdings Robert Douglas
Xilinx Ronan Keryell
Nokia Vicente J. Botet Escriba
ARM Will Deacon
Yander Alexsander [illegible]
Cadence Zach Laine

`