It is my pleasure to announce that we have now entered the final countdown for Rust 2018. We’ve just issued a new beta that is chock full of updates and we would dearly love people to spend some time testing it before we announce the final release (which takes place on December 6).
- Rustfmt is now 1.0
- RLS and Clippy are no longer installed via “preview” components
- Update: Apparently this isn’t quite true yet, and we are waiting on a rustup update here still
Help us find bugs!
We would like help looking for bugs in this new beta, particularly in two areas:
- the module system implementation
- the RLS
As before, the best thing is to perform the Rust 2015 -> Rust 2018 migration on your local crates (instructions here) and let us know how it goes (in particular if you hit any problems). If you’ve already migated, then simply executing
rustup update beta is already helpful (and working from beta, of course, not nightly)!
Pending for the next release
You may recall from the Preview 2 announcement that we were evaluating two variants for the module system (“anchored paths” vs “uniform paths”). This evaluation continues in the beta, which means that the compiler accepts only code that both variants would accept. You can use
#![feature(uniform_paths)] on Nightly to try out the uniform paths variant. Based on the feedback receiver thus far, the current tentative plan is to stabilize uniform paths, but not as part of the initial Rust 2018 release (i.e., not until 1.32.0 at the earliest).
(The main difference between that two variants is that
uniform_paths permits you to write
use foo::bar to refer to either an external crate named
foo or a local module. In other words, you no longer need to write
use self::foo::bar (except for cases of ambiguity, where there exists an external crate and a local module). This means that paths in
use statements and paths outside of
use statements work roughly the same way. Note that this is a pure extension of the current beta behavior, which always requires
use self::foo for local modules, but still errors in the case of ambiguity.)