Subteam reports 2016-02-05


#1

Lang

Full report

This week two RFCs were approved:

  • RFC #243, which adds the ? suffix operator as a synonym for today’s try! macro, and adds another construct catch { } that can be used to delimit the scope of the ? operator. That is, whereas try! today always propagates errors out of the current function, the catch {} 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

Full report

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

Full report

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.
  • FCP PR #1415: RFC: Deprecate type aliases in std::os::*::raw
    • Want to explore the breakage caused by this change.