Marshall's March Update
Apr 2, 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
This month, I spent far more time reviewing other people’s code and preparing talks for conferences than the previous few months. The Boost release process consumed a fair chunk of time as well.
Libc++
The big news is: we released LLVM 8 this month! (March 20th). You can get the sources and pre-built binaries from the LLVM download page, or wait for your system vendor to provide you with an update.
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.
LWG papers implemented this month.
- P0811
std::midpoint
for integral and pointer types. This turned out to be quite involved, and spawned a clang bug report. On the plus side, now I have a topic for a talk for CppCon this fall.
Still to do, std::midpoint
for floating point types. This is done, but it needs better tests.
LWG issues implemented this month
- I didn’t actually commit any LWG issue fixes this month. I worked with others on several bug fixes that landed, but not under my name.
LLVM features implemented this month (certainly incomplete)
- Add noexcept to
operator[]
forarray
anddeque
- Mark
vector::operator[]
andfront
/back
as noexcept - Mark
front()
andback()
as noexcept forarray
/deque
/string
/string_view
- Make
to_chars
/from_chars
work back to C++11. This lets us use them into_string
.
LLVM bugs resolved this month (probably incomplete)
- Bug 35967 <regex>
syntax_option_type
is not a proper bitmask - No bug # Fix a minor bug with
std::next
andprev
not handling negative numbers. - No bug # Cleanup of requirements for
optional
- we no longer allowoptional<const in_place_t>
- Bug 41130
operator/
ofstd::chrono::duration
and custom type.
Also, there was a series of general cleanups in the libc++ tests to improve portability and readability. Eric and I (mostly Eric) revamped the debug-mode support, and there will be more activity there in the future. Also, we’re moving towards using more of the ASSERT_XXXX
macros for readability, and I revamped about 30 of the tests to use them. Only several thousand to go!
The current status of libc++ can be found here:
- C++20 status
- C++17 status
- C++14 status (Complete)
- Libc++ open bugs
WG21
The “winter” WG21 meeting was held in Kona, HI on February 18-24. This was the last meeting for new features for C++20, and as such, it was both contentious and very busy.
Between now and the next meeting (July), LWG will be working on reviewing papers and issues to be adopted in July. We have had three teleconferences since Kona, and a fourth is scheduled for mid-April.
I am working on more “cleanup” papers similar to P1458 - Mandating the Standard Library: Clause 16 - Language support library, and my P0805 - Comparing Containers needs an update.
The goal of the July meeting is to have a “Committee Draft” (CD) of the proposed C++20 standard that can be sent out for review.
Boost
It’s time for another Boost release (1.70), and I am acting as the release manager again. The release calendar is available (as always) on the Boost website.
The cut-off for contributions for the release is 3-April, with a release candidate to follow close behind, and the actual release to happen on the 10th.
Once the release is over, I’ll be putting some serious time into Boost.Algorithm; there are a bunch of C++17/20 algorithms that can be added to the library (among other things).
Conferences
I had submitted talk proposals to three conferences, and all three were accepted.
I will be speaking at:
- LLVM European Developer’s Conference, April 8-9 in Brussels
- ACCU, April 10-13 in Bristol
- CppNow, May 5-10 in Aspen, CO
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...