Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.
Updates from Rust Community
News & Blog Posts
- Fearless concurrency in Firefox Quantum.
- Zoxc joins Rust compiler team.
- Rust futures: a short tutorial - part 1.
- Cross-compiling Rust for the Raspberry Pi on macOS.
- A linear hashing implementation in Rust.
- This week in Rust docs 81.
- Impl period newsletter 3.
- [video] How Rust gets polymorphism right.
- [podcast] Rusty Spike Podcast - episode 7. Stanford using Rust, the Rust AMA, RLS release dates, crates.io growth, and Servo audio.
Crate of the Week
Call for Participation
Always wanted to contribute to open-source projects but didn't know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
- Contribute to Rust's 2017 impl period.
- Help us benchmark saturating float casts.
- Want to learn more about Wayland? Here are some detailed issues on how to help implement a safe wlroots wrapper in Rust.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
137 pull requests were merged in the last week
- refactor Option::filter method
- MIR-borrowck: fix diagnostics for closures
- compiletest: Fix a couple of test re-run issues
- fix test case header parsing code in presence of multiple revisions
- rustbuild: Disable ThinLTO for libtest
- make saturating u128 -> f32 casts the default behavior
- check::method - unify receivers before normalizing method signatures
- fix core for targets with max-atomic-width = 0
- restore move out dataflow, add report of move out errors
- implement arbitrary_self_types
- incr.comp.: Verify stability of incr. comp. hashes and clean up various other things
libbacktraceon Apple platforms
- fix help for duplicated names:
extern crate (...) as (...)
- disable LLVM assertions on Nightly, enable them in "alt" builds
- make positional argument error in format! clearer
- deduplicate projection error (E0271) messages
- add missing div and rem vector intrinsics
- prefer libproc_macro APIs to libsyntax ones in the quasi-quoter
- fixes to MIR effectck
- display all emission types in error msg if user inputs invalid option
- accept interpolated patterns in trait method parameters
- add error for
- resolve: Use same rules for disambiguating fresh bindings in
- change MIR dump filenames from
- fix MIR CopyPropagation errneously propagating assignments to function args
- handle anon lifetime arg being returned with named lifetime return type
- refactor internal suggestion API
- extend NLL with preliminary support for free regions on functions
- allow overriding the thread-local statics model
- use a
Set<T>instead of a
- regenerate libcore/char_private.rs
:typo in let bindings
- forbid casting to/from a pointer of unknown kind
- working towards a libc-less (wasm32) libstd
- rustc: add item name to deprecated lint warning
- RwLock guards are Sync if T is
T: Sizedon pointer
- impl FromIterator<()> for ()
- improve SliceExt::binary_search performance
- saturating casts between integers and floats
- cargo: List available binary names
- rustdoc: Fix duplicated impls with generics
- rustdoc: Search over generic types in docs
- rustdoc: add more elements in the sidebar
- rustdoc: add
#[allow(unused)]to every doctest
- Alec Theriault
- Alkis Evlogimenos
- John Ford
- John-John Tedro
- Sebastian Dröge
- Sébastien Santoro
- Shotaro Yamada
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Final Comment Period
- [disposition: merge] Fallible collection allocation 1.0.
- [disposition: merge] Implicit caller location (third try to the unwrap/expect line info problem).
- [disposition: merge] Unsized rvalues.
- [disposition: merge] eRFC: Cargo build system integration.
- [disposition: merge] Type privacy and private-in-public lints.
- Nov 16. Cambridge Rust Meetup #5.
- Nov 16. Rust release triage.
- Nov 19. Rust India Community Monthly Call.
- Nov 21. Beginning Rust and Rust Hack Night @ Valtech Stockholm Sweden.
- Nov 21. Rust Zürich - Intro to Rust: November Community Meetup.
- Nov 22. Rust Milano - Meet Rust Language with a live coding session.
- Nov 22. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Nov 22. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Nov 24. Monkey Tech Days Toulouse, France - Explore Languages (Go Vs Rust) - MKTD#5.
- Nov 25. Rust Bangalore - Rust Concurrency (part 2 of 2).
- Nov 27. Triangle Rustaceans Durham, NC - Algebraic Data Types in Practice and Theory.
- Nov 29. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Nov 29. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- Nov 29. OpenTechSchool Berlin - Rust Hack and Learn.
- Nov 30. Rust Munich: Rust Machine Learning with Juice.
- Nov 30. Rust Detroit - Introducing Tock OS 1.0.
- Nov 30. Rust release triage.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
No quote was selected for QotW.