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
- Why I'm building a new async runtime.
- Futures explained in 200 lines of Rust.
- Sled: Error handling in a correctness-critical Rust project.
- Most commonly ignored lints.
- A brief apology of Ok-Wrapping.
- From failure to Fehler.
- The embedded WG's Raspberry Pi OS dev tutorials: Tutorial 14 - exceptions part 2: peripheral IRQs.
- Contributing to Rust: Nine patches.
- Inside Rust: Update on the GitHub Actions evaluation.
- Programming Servo: Workers at your service.
- Iced, a cross-platform GUI library: New release featuring custom styling, event subscriptions, additional widgets, new examples, and more.
- rust-analyzer changelog 19.
- This month in rustsim 10 - March 2020.
- This month in Rust GameDev 8 - March 2020.
Crate of the Week
This week's crate is explaine.rs, an interactive Rust syntax playground.
Thanks to Vlad Frolov for the suggestion!
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.
No issues were proposed for CfP.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
443 pull requests were merged in the last week
- handle unterminated raw strings with no
- parse: recover on
- improve error messages for raw strings
- remove unused discriminant reads from MIR bodies
- track the finalizing node in the specialization graph
- use smaller span for suggestion restricting lifetime
- fix performance regression in debuginfo
- enable layout debugging for
impl Traittype aliases
- polonius: update facts to remove the rest (🤞) of the move errors false positives
- chalk: use fallback debug impls instead of
- chalk: goal builder
- chalk: intern
- typeck/type_of: let wfcheck handle generics in opaque types' substs
- miri: make backtrace function names and spans match up
- miri terminator handling: only do progress sanity check for 'Call' terminator
- fix double-free and undefined behaviour in
- std: fix over-aligned allocations on wasm32-wasi
-Z dump-mir-dataflowflag for dumping dataflow results visualization
- avoid creating unnecessary reference in Windows
- add shims for
- stdarch: support
crc32even if on arm32
- detailed panic messages for
- fix some aliasing issues in
- keep track of position when deleting from a
- match options directly in the
- place TLS initializers with relocations in .tdata
- futures: reduce box allocation in bilock
- futures: impl
- hashbrown: micro optimize
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
No RFCs were approved this week.
Final Comment Period
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
- [disposition: merge] Unsafe blocks in unsafe fn.
- [disposition: merge] Tracking issue for PathBuf capacity methods.
- [disposition: merge] Remove -Z no-landing-pads flag.
- [disposition: merge] Move LLVM bitcode destination.
- Apr 10. Samara, RU - Rust Users Team Samara - Online meetup.
- Apr 14. Seattle, WA, US - Seattle Rust Meetup - Monthly meetup.
- Apr 23. Turin, IT - Rust Turin online meetup.
- Apr 15. Vancouver, BC, CA - Vancouver Rust - Rust Study/Hack/Hang-out night.
- Apr 22. Ann Arbor, MI, US - Ann Arbor Rust Meetup - Monthly Gathering.
- Rust Developer (US & Canada) at 1Password.
- Infrastructure Engineer at Aleph Alpha, Heidelberg, Germany.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
In many cases, it is possible to completely rearchitect the underlying code while leaving the public API as-is, and without introducing new bugs. I've literally never had such a liberating experience with refactoring until Rust.
Thanks to Louis Cloete for the suggestions!