Language

Full report

Last week, we had five RFCs in the final comment period. Of those, two of them failed to reach consensus one way or the other. For these, it would be great to have more comments from the community:

FCP PR #756: Allow closure expressions to expand to a & or &mut temporary. The discussion here has centered on whether making it easier to write fns that accept closure objects as arguments is worth making the expansion of || more complex.

or temporary. The discussion here has centered on whether making it easier to write fns that accept closure objects as arguments is worth making the expansion of more complex. FCP PR #873: Allow macros in types. The discussion here has centered on possible interactions with hygiene and the question of whether expanding the current macro system will make it harder to implement fundamental improvements down the line.

RFC 1156 proposes a change to the defaults for object lifetime bounds that aims to make them easier to understand and more useful in practice. Based on discussion last week, RFC 1156 underwent some evolution. It now proposes a phased deprecation, in which Rust 1.2 issues a warning if it detects code that is relying on the current defaults, and Rust 1.3 actually makes the change. We’ve decided to accept this specific RFC. However, the RFC raises more general policy questions about when such changes might be accepted in the future, and this conversation will continue in an internals post (currently being written).

We also decided to accept two smaller RFCs:

FCP PR #1052: Clarify cast rules, especially regarding fat pointers.

FCP PR #865: Update RFC 195 to account for RFC 246.

Due to the fact that there are two RFCs still in FCP from last week, no new RFCs are entering final comment period ths week.

— nmatsakis

Libs

Full report

The following RFCs are entering their final comment period:

The following features are entering their final comment period:

FCP PR #26241: Implement DerefMut for String

Here are the decisions for last week’s FCP items:

Tools

Full report

This was another quiet week for the tools team, but there were a number of advances made on the MSVC front:

All rust-lang crates now have CI on MSVC as well as MinGW (using AppVeyor)

A successful Cargo build using MSVC has been produced, which primarily involved ensuring all native dependencies work with MSVC (e.g. libssh2, libgit2, libcurl, miniz, …).

The update for llvm has finally landed, enabling work to continue on implementing unwinding for MSVC!

This past week also saw a number of improvements for Cargo land on nightly:

Compiler

Full report