Friend of the Tree
This week we’d like to nominate @petrochenkov for Friend of the
Tree. Vadim has been doing some absolutely amazing compiler work recently such
as fixing privacy bugs, fixing hygiene bugs, fixing pattern
bugs, paving the way and implementing
#[deprecated]
, fixing and closing many privacy
holes, refactoring and improving the HIR, and
reviving the old type ascription PR. The list of outstanding bugs and
projects in the compiler is growing ever smaller now; thanks @petrochenkov!
Lang
We have decided to promote the following RFCs to final comment period:
- RFC #1384: This RFC amends RFC 550 to includ an abstract specification rather than an algorithm. It is the result of revisiting the code in light of numerous bugs that were uncovered in practice. Note that fixing these bugs is known to break some macros that were found in the wild. Macro authors may wish to read the RFC, or at least look at the list of [regressions found on crater][regr]. (Note that we also plan to amend RFC 550 to be more accepting so to avoid most of those regressions.)
We did not reach firm decisions on the two pending FCP RFCs; but we discussed a number of aspects and posted lengthy comments with our tentative conclusions ([#1129] and [#1196]).
Note: Next week is Mozilla’s company wide “all hands” work week, so we may or may not have a meeting and will likely not have any subteam report.
Compiler
This week there was a fair amount of triage and discussion of the high priority bugs below.
One issue that was raised, but not firmly settled, was what the policy ought to be towards breaking changes in libsyntax. Clearly there are a number of people “in the wild” who rely on libsyntax, and so some amount of consideration is warranted, and yet just as clearly we need to continue to evolve that crate – and in some cases dramatically – as the compiler evolves. It’s not clear yet if there is a satisfactory middle-ground.
Libs
This week the team made decisions on stabilizations for the 1.6 cycle. The decisions are as follows, with more detail available in the linked issues:
-
FCP Issue #27701:
Tracking issue for libcore + no_std stabilization
- Stabilize
-
FCP Issue #27704:
Tracking issue for OsStr conversions
- Deprecate
-
FCP Issue #27707:
Tracking issue for fs::walk_dir
- Deprecate
-
FCP Issue #27709:
Tracking issue for Ipv{4,6}Addr convenience methods
- Wait
-
FCP Issue #27710:
Tracking issue for fs::DirBuilder
- Stabilize
-
FCP Issue #27711:
Tracking issue for
drain
stabilization- Stabilize
-
FCP Issue #27713:
Tracking issue for custom hashers in HashMap
- Stabilize
-
FCP Issue #27724:
Tracking issue for {min,max} on iterators
- Stabilize
-
FCP Issue #27727:
Tracking issue for
path_components_peek
stabilization- Deprecate
-
FCP Issue #27740:
Tracking issue for std::slice::bytes
- Deprecate
-
FCP Issue #27744:
Tracking issue for
push_all
stabilization- Stabilize
-
FCP Issue #27750:
Tracking issue for
clone_from_slice
stabilization- Stabilize
-
FCP Issue #27799:
Tracking issue for Duration::span
- Deprecate
-
FCP Issue #27801:
Tracking issue for IpAddr
- Deprecate
-
FCP Issue #27802:
Tracking issue for standard Read/Write adapters
- Deprecate (mostly)
-
FCP Issue #28796:
Tracking issue for FnBox()
- Wait
-
FCP Issue #28968:
Tracking Issue for Mutex and RWLock unique accessors
- Stabilize.
These changes will ship in the 1.6 beta being cut next week.
Tools
With Thanksgiving last week and the 1.5 release just around the corner this was a quiet few weeks for the tools team, but that doesn’t mean exciting things weren’t happening!
- @brson’s been working on getting a port of Rust to work with Emscripten, and initial results are promising with “hello world” already working!
- Support has landed in Cargo to allow build scripts to explicitly specify their file dependencies. This should reduce the number of rebuilds seen because Cargo reruns a build script.
- The libc crate now tests against rumprun, becoming the first BSD platform to have automation verifying the definitions in libc.
- The deadline for returning a hard error from publishing crates with a wildcard version has been pushed back as the Cargo warning will be released with 1.5.