Friend of the Tree
This week wed’d like to nominate @mitaa as Friend of the Tree. Recently @mitaa has went a wave of fixes to rustdoc (yes those are all separate links) with even more on the way! Rustdoc has historically been a tool in need of some love, and the extra help in fixing bugs is especially appreciated. Thanks @mitaa!
Tools
- The compiler now supports a
--print target-list
flag to print out all supported targets the compiler can generate code for. - A new i586-unknown-linux-gnu target is available for older 32-bit x86 CPUs.
- The jemalloc build on linux is now longer prefixed, giving a nice small perf improvement now that LLVM is using jemalloc.
- Cargo now supports target-specific-dependencies via
#[cfg]
-like syntax. - Cargo now reads configuration generically from environment
variables in addition to
.cargo/config
locations.
Libs
This report is going to cover the last two weeks of activity.
First, we reached decisions on a number of RFCs:
-
FCP PR #1218: RFC: Checked integer conversions
- The RFC remains open, but moved out of FCP, while we sort out how exactly we want to handle failable conversions in general.
-
FCP PR #1258: Add macros to get the values of configuration flags
- Closed.
-
FCP PR #1353: Add retain_mut to Vec and VecDeque
- Remains open but out of FCP, while we explore possible generalizations.
-
FCP PR #1393: Expand
try!
macro with additional case- Closed.
-
FCP PR #1394: Add
maybe!
macro equivalent totry!
- Closed.
-
FCP PR #1419: Safe memcpy for slices ([T]::copy_from)
- Merged.
-
FCP PR #1443: Extend atomic compare_and_swap
- Merged.
-
FCP PR #1461: Move some net2 functionality into libstd
- Merged.
-
FCP PR #1467: Stabilize volatile read and write
- Merged.
In addition, we reached decisions on APIs for stabilization/deprecation:
-
FCP Issue #27714: Tracking issue for
str_utf16
stabilization- Stabilize.
-
FCP Issue #27715: Tracking issue for Scoped TLS
- Deprecate.
-
FCP Issue #27719: Tracking issue for
recover
stabilization- Leaning toward removing the bounds; we would love more discussion on this topic, especially from those who prefer the current API.
-
FCP Issue #27746: Tracking issue for
cell_extras
stabilization- Stabilize core
map
API, deprecate other APIs.
- Stabilize core
-
FCP Issue #27748: Tracking issue for
wait_timeout_with
stabilization- Deprecate.
-
FCP Issue #27780: Tracking issue for <*mut T, *const T>::{as_ref, as_mut_ref}
- Discussion timed out.
-
FCP Issue #27809: Tracking issue for make_ascii_{upper,lower}case
-
Inconclusive,
but we are adding
into_
variants for the time being.
-
Inconclusive,
but we are adding
-
FCP Issue #27908: Tracking issue for drop_in_place
- Stabilize.
-
FCP Issue #28235: Tracking issue for overloaded
+=
operators (RFC 953) (feature augmented_assignments)- Stabilize.
-
FCP Issue #29866: Expand the std::time module
- Stabilize, with some minor changes.
Lang
We’ve reached decisions on some longstanding RFCs:
-
FCP PR #1210: RFC: impl specialization
- Accepted, with a detailed summary by @nikomatsakis
-
FCP PR #1303: Add a
let...else
expression, similar to Swift’sguard let...else
- Closed as postponed.
In addition, we’ve reached some stabilization decisions:
-
FCP PR #28235: Tracking issue for overloaded
+=
operators (RFC 953) (feature augmented_assignments)- Stabilize.
-
FCP PR #29720: Tracking issue for
braced_empty_structs
(RFC 218)- Stabilize.
We spent the rest of our time making decisions on various outstanding PRs and issues, as per usual.
Next week, we will decide which language features to consider for stabilization in Rust 1.9. Please take a look at the issue tracker for candidates for stabilization, and leave comments on any that you’d like to nominate.