Compiler
The meeting was mostly triage, but some recent PRs of note include:
- further progress on MIR: #30337, #29907
- a big overhaul of the privacy rules which fixed a large number of bugs: [#29773]
- a preliminary type ascription PR: #30184
Lang
This week we decided to merge RFC 1384, which is a clarification and extension of the macro forwards compatibility rules.
Libs
This week we decided on unstable APIs to move into FCP for the 1.7 cycle:
- path::relative_from - stabilize after renaming
- ip methods - stabilize after investigation
- fs_mode - deprecate
- custom hashers - stabilize with a renaming
- path_prefix - deprecate
- formatting w/ radix - deprecate
- as_slice - deprecate
- IntoCow - deprecate
- iter_arith - stabilize
- clone_from_slice - stabilize after deciding panic semantics
- num_bits_bytes - deprecate
- wrapping - stabilize in a different location
- debug tuple formatter - deprecate
- str escaping - stabilize
- Semaphore - deprecate
- fnbox - stabilize if coherence is appeased
- cstring owned conversions - stabilize
- sort_by_key - stabilize
In addition, we accepted the custom panic handler RFC:
Tools
Rust 1.5 Released!
Although the actual release was last week, it’s worth giving extra thanks to @brson again for prep’ing the release and make sure all the artifacts are in order!
Rustfmt
There’s been steady progress on Rustfmt, it’s now a very capable tool - indicated by it’s recent promotion to the rust-lang-nursery repo. You should try it out, and doing so is now easier than ever thanks to some recent PRs from the community:
# To install
cargo install rustfmt
# To run on a Cargo project
cargo fmt
Or check out the source code at https://github.com/rust-lang-nursery/rustfmt
Refactoring
Garming Sam (@GSam) has been working on a refactoring tool for Rust. Adolfo Ochagavía (@aochagavia) will be working on more refactorings for his final year project next year and has already got stuck in with a big PR bringing the code up to date. Check out the source at https://github.com/GSam/rust-refactor.
Macros
Daniel Campbell is conducting a summer research project on improving Rust’s tool support for macros. This is mainly focused on compiler support. The first visible changes will be making DXR macro-aware. This work will be useful in the future for IDE support and static analysis tools.
Benchmarking compile time
If you’re interested in our compile times, check out http://www.ncameron.org/perf-rustc/. We’re tracking compile time and memory use for every phase of compilation on a number of benchmarks and the compiler bootstrap.
Landed PRs
- The Windows SDK detection code has been updated to more closely match what VS does and work with the newest release of VS.
-
Better support for
--llvm-root
has been implemented, so custom LLVM installations with odd configurations should work more robustly.