Lang
This week two RFCs were approved:
-
RFC #243, which adds the
?
suffix operator as a synonym for today’stry!
macro, and adds another constructcatch { }
that can be used to delimit the scope of the?
operator. That is, whereastry!
today always propagates errors out of the current function, thecatch {}
block allows the scope of the error to be restricted to something smaller. -
RFC #1445, which restricts the uses of constants of
user-defined type in patterns to those types which are annotated
with
#[derive(Eq)]
. The semantics of constants in patterns was never formally settled; this change adopts a common subset that everyone can agree on for the time being. The change has been tested using crater and was found to cause 6 regressions among the tested crates.
Compiler
Panic handling in Windows has been undergoing serious improvement
lately. Alex Crichton landed
PR #30448, which
enables support for Structured Exception Handling (SEH) on MSVC
targets. PR #31313
(still pending) will transition the pc-windows-gnu
target as well.
On a less jolly note, two regressions in compiler performance were recently reported. One has a fix pending, the other is still under investigation:
- #31157, which concerned complex uses of traits where we were doing less caching than before (fixed by PR #31349).
- We recently noticed a large drop in bootstrap time connected to a recent LLVM update. Investigation ongoing.
Libs
The libs team reached decisions on the following RFCs:
-
FCP PR #1299:
std::sync::mpsc::SharedSender
- Decision: close, and continue this exploration out of three.
-
FCP PR #1359:
RFC: Add CommandExt::{exec, before_exec}
- Merge.
-
FCP PR #1423:
Amend RFC 1270 to describe actual implementation
- Merge.
The following RFCs will remain in final comment period:
-
FCP PR #1353:
Add retain_mut to Vec and VecDeque
- Want to explore the possibility of deprecating
retain
, and perhaps introducing this method with an entirely new name.
- Want to explore the possibility of deprecating
-
FCP PR #1415:
RFC: Deprecate type aliases in std::os::*::raw
- Want to explore the breakage caused by this change.