Marshall's Combined August and September Update
Sep 27, 2019There are four main areas where I spend my time.
- Libc++, where I am the “code owner”
- WG21, where I am the chair of the Library Working Group (LWG)
- Boost
- Speaking at conferences
Lots of work these month(s) behind the scenes, getting stuff ready for C++20, LLVM 9, and Boost 1.71.0.
Libc++
The LLVM 9.0 release has shipped! The release date was 19-September, a few days later than planned. There are a lot of new libc++ features in the release.
As the “code owner” for libc++, I also have to review the contributions of other people to libc++, and evaluate and fix bugs that are reported. That’s a never-ending task; there are new contributions ever day.
Many times, bug reports are based on misunderstandings, but require a couple of hours of work in order to figure out where the misunderstanding lies.
We’re working on a major redesign of the “debug mode” for libc++, after we realized that the existing (not widely used) debug mode is useless when you’re trying to do things at compile (constexpr) time.
I have been spending a lot of time the last few weeks working on the calendaring stuff in <chrono>
, specifically the interface with the OS for getting time zone information. It is a surprisingly complicated task. Fortunately for me, I have a friend who has been down this road in the past, and is willing to answer questions.
LWG issues resolved in libc++ (almost certainly incomplete)
- LWG3296 Add a missing default parameter to
regex::assign
LLVM features implemented (almost certainly incomplete)
- P1466 Parts of P1466 “Misc Chrono fixes” more to come here.
LLVM bugs resolved (definitely incomplete)
-
Bug 42918 Fix thread comparison by making sure we never pass our special ‘not a thread’ value to the underlying implementation
-
Bug 43063 Fix a couple of unguarded
operator,
calls in algorithm -
Bug 43034 Add a missing
_VSTD::
before a call tomerge
. -
Bug 43300 Add a missing
_VSTD::
Only initialize the streamscout
/wcout
/cerr
/wcerr
etc once, rather than any timeInit::Init
is called
Other interesting LLVM bits from (certainly incomplete)
- Revision 368299 Implement
hh_mm_ss
from P1466. Part of the ongoing<chrono>
implementation work.
The current status of libc++ can be found here:
- C++20 status
- C++17 status
- C++14 status (Complete)
- Libc++ open bugs
WG21
We shipped a CD out of Cologne in July. Now we wait for the National Bodies (members of ISO, aka “NBs”) to review the draft and send us comments. When we’ve resolved all of these comments, we will send the revised draft out for balloting. If the NBs approve, then that draft will become C++20.
The next WG21 meeting will be November 2-8 in Belfast, Northern Ireland. This will be the first of two meetings that are focused on resolving NB comments; the second one will be in Prague in February.
I have several “clean-up” papers for the Belfast mailing. The mailing deadline is a week from Monday (5-October), so I need to finish them up.
- P1718R0: Mandating the Standard Library: Clause 25 - Algorithms library
- P1719R0: Mandating the Standard Library: Clause 26 - Numerics library
- P1720R0: Mandating the Standard Library: Clause 28 - Localization library
- P1721R0: Mandating the Standard Library: Clause 29 - Input/Output library
- P1722R0: Mandating the Standard Library: Clause 30 - Regular Expression library
- P1723R0: Mandating the Standard Library: Clause 31 - Atomics library
We polled the NBs before Cologne, and they graciously agreed to have these changes made post-CD.
Boost
Boost 1.71.0 was released on 19-August. Micheal Caisse was the release manager, with some help from me.
As part of the Boost Community maintenance team, I (and others) made many changes to libraries whose authors are no longer able (or interested) in maintaining them.
I have a couple of suggestions for additions to the Boost.Algorithms library that I will be working on in the near future.
Conferences
I was a speaker at CppCon last week. I gave a new talk “std::midpoint - How hard could it be?” (no link yet) which was quite well received. I got a few questions that will require additional research, and may improve my implementation.
I also participated in the “Committee Fireside Chat”, at CppCon, where conference members get to ask questions of the committee members who are present.
Upcoming talks:
- LLVM Developer’s Conference is in San Jose in October. I will not be speaking, but I will be moderating the lightning talks.
- C++ Russia is at the end of October in St. Petersburg.
- ACCU Autumn is right after the WG21 meeting in early November.
- Meeting C++ is in mid-November in Berlin.
I will be making the “Fall 2019 C++ European Tour”, going from St. Petersburg to Belfast to Berlin before heading home mid-November.
All Posts by This Author
- 09/27/2019 Marshall's Combined August and September Update
- 08/05/2019 Marshall's July Update
- 07/02/2019 Marshall's June Update
- 06/01/2019 Marshall's May Update
- 05/01/2019 Marshall's April Update
- 04/02/2019 Marshall's March Update
- 03/04/2019 Marshall's March Update
- 01/14/2019 Marshall's January Update
- View All Posts...