Discussion:
Upcoming C++ standards meeting in San Diego, California
Botond Ballo
2018-10-22 21:52:14 UTC
Permalink
Hi everyone!

The next meeting of the C++ Standards Committee will be November 5-10
in San Diego, California.

This is promising to be the Committee's largest meeting to date, both
in terms of attendees (expected over 150), and submitted proposals
(over 250 in the pre-meeting mailing). This is encouraging, as it
reflects a heightened level of interest in the language and its
standardization. At the same time, the committee is undertaking some
procedural changes to stay afloat this sea of proposals, notably
spinning up new Incubator subgroups to process / filter through
proposals for new extensions before the main Evolution and Library
Evolution groups look at them.

Meanwhile, work continues on C++20, with Ranges and "natural syntax"
Concepts on the brink of consensus, Modules making really good
progress with the committee working extra hard to get them into C++20,
and Coroutines continuing to be under debate with two competing
proposals. 2D Graphics is dead for now, though it may yet rise from
the ashes [1]. Reflection, Executors, and several other features are
moving forward in the form of Technical Specifications.

If you're curious about the state of C++ standardization, I encourage
you to check out my blog posts where I summarize each meeting in
detail (most recent one here [2]), and the list of proposals being
considered by the committee (new ones since the last meeting can be
found here [3] and here [4]).

I will be attending this meeting, likely splitting my time between
Evolution Working Group (where new language features are discussed at
the design level), and the EWG Incubator group (where proposals bound
for Evolution undergo a preliminary round of feedback). As always, if
there's anything you'd like me to find out for you at the meeting, or
any feedback you'd like me to communicate, please let me know!

Finally, I encourage you to reach out to me if you're thinking of
submitting a proposal to the committee. I'm always happy to help with
formulating and, if necessary, presenting a proposal.

Cheers,
Botond


[1] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1200r0.pdf
[2] https://botondballo.wordpress.com/2018/06/20/trip-report-c-standards-meeting-in-rapperswil-june-2018/
[3] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/#mailing2018-06
[4] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/#mailing2018-10
g***@mozilla.com
2018-10-22 23:47:59 UTC
Permalink
Post by Botond Ballo
I will be attending this meeting
So jealous! Enjoy ;-)
Post by Botond Ballo
Finally, I encourage you to reach out to me if you're thinking of
submitting a proposal to the committee. I'm always happy to help with
formulating and, if necessary, presenting a proposal.
Here's one I'd like:
for (int i = ...; test(i); i = next(i)) {
if (good_stuff(i)) { break; /* goto past `else` block */ }
} else {
/* test(i) failed, i.e., we didn't `break` */
do_something(i); // decls inside `for(...)` still in scope.
}
and/or:
for (auto& x: xs) {
if (good_stuff(x)) { break; /* goto past `else` block */ }
} else {
/* went off-range, i.e., we didn't `break` */
}


Thanks in advance! :-D
(Though seriously: Worth pursuing?)

Cheers,
Gerald
Botond Ballo
2018-10-22 23:57:27 UTC
Permalink
Post by g***@mozilla.com
for (int i = ...; test(i); i = next(i)) {
if (good_stuff(i)) { break; /* goto past `else` block */ }
} else {
/* test(i) failed, i.e., we didn't `break` */
do_something(i); // decls inside `for(...)` still in scope.
}
for (auto& x: xs) {
if (good_stuff(x)) { break; /* goto past `else` block */ }
} else {
/* went off-range, i.e., we didn't `break` */
}
This has actually been proposed before! Here's the latest iteration of
the proposal (dated February 2017):

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0082r2.pdf

and here's my summary of its discussion, from my blog post about the
meeting where it was discussed [1]:

"An updated version of for loop exit strategies, which proposes to
allow adding blocks of code at the end of a for loop that run when the
loop exits by breaking (introduced by the keyword on_break), and when
the loop runs to completion (introduced by on_complete). The only
thing that has changed since the last revision of this proposal is the
keywords – they were catch break and catch default in the previous
version. EWG didn’t love the new keywords, either, and was generally
lukewarm towards the proposal in terms of motivation, so it’s not
clear if this is going anywhere."

Given that this has already been proposed and effectively shot down, I
think it makes to try and re-propose it only if we have new
information to bring to the table, e.g. compelling new motivation or a
design alternative that hasn't been considered.

Cheers,
Botond


[1] https://botondballo.wordpress.com/2017/03/27/trip-report-c-standards-meeting-in-kona-february-2017/
g***@mozilla.com
2018-10-23 00:06:38 UTC
Permalink
Post by Botond Ballo
Post by g***@mozilla.com
for (int i = ...; test(i); i = next(i)) {
if (good_stuff(i)) { break; /* goto past `else` block */ }
} else {
/* test(i) failed, i.e., we didn't `break` */
do_something(i); // decls inside `for(...)` still in scope.
}
for (auto& x: xs) {
if (good_stuff(x)) { break; /* goto past `else` block */ }
} else {
/* went off-range, i.e., we didn't `break` */
}
This has actually been proposed before! Here's the latest iteration of
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0082r2.pdf
and here's my summary of its discussion, from my blog post about the
"An updated version of for loop exit strategies, which proposes to
allow adding blocks of code at the end of a for loop that run when the
loop exits by breaking (introduced by the keyword on_break), and when
the loop runs to completion (introduced by on_complete). The only
thing that has changed since the last revision of this proposal is the
keywords – they were catch break and catch default in the previous
version. EWG didn’t love the new keywords, either, and was generally
lukewarm towards the proposal in terms of motivation, so it’s not
clear if this is going anywhere."
Given that this has already been proposed and effectively shot down, I
think it makes to try and re-propose it only if we have new
information to bring to the table, e.g. compelling new motivation or a
design alternative that hasn't been considered.
Cheers,
Botond
[1] https://botondballo.wordpress.com/2017/03/27/trip-report-c-standards-meeting-in-kona-february-2017/
Thanks for the info.
I guess it's quite a common need, it must have been on many minds since 1972. :-)
Botond Ballo
2018-11-30 17:26:18 UTC
Permalink
Hi everyone,

My blog post about the C++ standards meeting that took place earlier
this month is now published:

https://botondballo.wordpress.com/2018/11/30/trip-report-c-standards-meeting-in-san-diego-november-2018/

Cheers,
Botond
Post by Botond Ballo
Hi everyone!
The next meeting of the C++ Standards Committee will be November 5-10
in San Diego, California.
This is promising to be the Committee's largest meeting to date, both
in terms of attendees (expected over 150), and submitted proposals
(over 250 in the pre-meeting mailing). This is encouraging, as it
reflects a heightened level of interest in the language and its
standardization. At the same time, the committee is undertaking some
procedural changes to stay afloat this sea of proposals, notably
spinning up new Incubator subgroups to process / filter through
proposals for new extensions before the main Evolution and Library
Evolution groups look at them.
Meanwhile, work continues on C++20, with Ranges and "natural syntax"
Concepts on the brink of consensus, Modules making really good
progress with the committee working extra hard to get them into C++20,
and Coroutines continuing to be under debate with two competing
proposals. 2D Graphics is dead for now, though it may yet rise from
the ashes [1]. Reflection, Executors, and several other features are
moving forward in the form of Technical Specifications.
If you're curious about the state of C++ standardization, I encourage
you to check out my blog posts where I summarize each meeting in
detail (most recent one here [2]), and the list of proposals being
considered by the committee (new ones since the last meeting can be
found here [3] and here [4]).
I will be attending this meeting, likely splitting my time between
Evolution Working Group (where new language features are discussed at
the design level), and the EWG Incubator group (where proposals bound
for Evolution undergo a preliminary round of feedback). As always, if
there's anything you'd like me to find out for you at the meeting, or
any feedback you'd like me to communicate, please let me know!
Finally, I encourage you to reach out to me if you're thinking of
submitting a proposal to the committee. I'm always happy to help with
formulating and, if necessary, presenting a proposal.
Cheers,
Botond
[1] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1200r0.pdf
[2] https://botondballo.wordpress.com/2018/06/20/trip-report-c-standards-meeting-in-rapperswil-june-2018/
[3] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/#mailing2018-06
[4] http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/#mailing2018-10
Loading...