Post-Wrocław update: Plans for the next quarter or two #1345
hsutter
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
We're back from the Wrocław ISO C++ meeting! Here is my trip report.
The good news is that the meeting was very successful for moving forward language safety Profiles proposals for C++26, including work derived from cppfront (e.g., the automatic bounds-checking of subscript expressions). This is important and time-sensitive because we are close to the feature-freeze deadline for C++26, and there's a lot of internal and external pressure to deliver as much for language safety as we can get at high quality in C++26.
But this means it's crunch time: In Wrocław, I told the committee that if they encouraged this work, Bjarne and I would basically volunteer our holidays ("there's always Xmas 2025!") to do our best to get papers with initial draft wording ready for the January mailing in time for the February meeting, and continue further improving them up to the meeting. The committee did encourage it, and so improving language safety for C++26 is going to take over a lot of my life for the next few months -- Profiles take priority because "if" we can succeed in delivering major language safety improvements to new/updated C++ code with C++26 Profiles enabled, including some fraction of that benefit also to existing C++ code just by recompiling, then we will be able to deliver an outsize impact on software security and software safety across our society in the near/medium term.
In the Q&A after my code::dive talk last week (video is coming soon), someone asked a question along the lines of why I chose to contribute to Profiles rather than to Carbon or Rust. My answer was that those efforts are fine and I applaud those who spend their time there, but personally I want to help deliver the most value possible, because I'm a customer of our civilization's infrastructure -- I'm a customer of our power grid, I'm a customer of our health care system, I'm a customer of our government, and so I want to contribute the most I can to protect and defend these and other key parts of our civilization against the ongoing attacks from criminals and enemies. If I chose to primarily spend time on plans that only help new/updated code (e.g., a new or divergent/successor language, or even a 'switch to Cpp2' strategy) I won't have as much impact, because even all the programmers in the world can only write so much new/updated code to make it safer (plus, anytime you write code you write new bugs too). Instead, I'm choosing to spend my time on a strategy to improve existing C++ code, to the extent possible without manual source changes, because that could let us deliver orders of magnitude greater actual security and safety improvements to harden the critical infrastructure we all rely on. I just want to make the biggest contribution I can to help the problem, with not just formal safety as the only driver, but also with practical adoptability and impact at scale as additional and equal driving design concerns.
That's worth sacrificing a holiday to try to achieve, including time I had been looking forward to spending on cppfront right now. My original plan was to resume working on statement and expression reflection now, including for new metatype functions like
actor
and supporting autodiff. That's still the next thing on my list when I can get back to cppfront, but will now happen only after C++26 Profiles are well in hand. (I might still occasionally do a little cppfront here and there when I need a break from C++26 Profiles.)The actual C++26 feature freeze is June, but it's essential to get as much done for February as possible. Then we'll see how much is left to be done for June. The nice thing about deadlines is that either way you know end is nigh (in a good way)!
So you'll be seeing a bit less of me here for a few months, but that's not a lack of interest -- it's actually to help bring some of this work and your great suggestions (thanks again!) into ISO C++ itself. I'll post more updates as we go.
Beta Was this translation helpful? Give feedback.
All reactions