Language
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. - 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
The following RFCs are entering their final comment period:
- FCP PR #1015: Add read_into_buf and get_buf to BufRead
- FCP PR #1102: Rename connect to join
- FCP PR #1130: Implement FromIterator for the unit type
-
FCP PR #1152:
Add some of
[T]
’s methods to strings and vice versa - FCP PR #980: RFC for read_all (staying on from last week)
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:
- FCP PR #980: RFC for read_all
- FCP PR #1095: Add unsafe Option::unwrap_unchecked()
-
FCP PR #25646:
Make
align_of
behave likemin_align_of
. -
FCP PR #25844:
std: Stabilize a number of new fs features
- Stabilized and backported to 1.1.
Tools
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:
- Support for a shared target directory was improved by fixing a number of bugs.
- Cargo now compiles with stable Rust 1.1.
- ZSH completion has been fixed.