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.
This Week in Rust is openly developed on GitHub. If you find any errors in this week's issue, please submit a PR.
Updates from Rust Community
News & Blog Posts
- AMA with Rust Language team.
- Accepted RFCs are now available to read in a book format.
- Multithreading in Rust with MPSC (Multi-Producer, Single Consumer) channels.
- Obtaining and using Microsoft's link.exe on Linux+Wine with Rust.
- Custom static assertions in Rust.
- When will the RLS be released?
- Portability concerns with Path.
- Simple event hooks in Rust.
- This week in Rust docs 80.
- [video playlist] Talks from RustFest Zürich 2017.
- [podcast] Rusty Spike Podcast - Episode 6. Cisco using Rust, StackOverflow’s survey, alternative registries, more NLL news, fun facts about Rust, and SpiderMonkey and Rust.
Crate of the Week
This week's crate is futures-await, a crate to simplify writing futures-based async code. Thanks to LilianMoraru for the suggestion.
Submit your suggestions and votes for next 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.
- Help us benchmark incremental compilation!
- Contribute to Rust's 2017 impl period.
- MusicBrainz crate is looking for maintainers.
- [docs] rust-ffi-guide: CString.as_ptr() problem.
- [docs] rust-ffi-guide: Enum from integer is UB problem.
- [docs] rust-ffi-guide: More examples of UB and FFI footguns.
- [docs] rust-ffi-guide: Beware of allocators mismatch.
- [docs] rust-ffi-guide: Rust enums and tagged unions.
- [docs] rust-ffi-guide: Unwinding problem.
- [docs] rust-ffi-guide: Linker errors and name mangling problem.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
125 pull requests were merged in the last week
- enable non-lexical lifetimes in the MIR borrow checker
- fix MIR inlining panic in generic function
- optimize some span operations
- display spans correctly when there are zero-width or wide characters
- typeck: suggest use of match_default_bindings feature
- typeck: use subtyping on the LHS of binops
- suggest renaming import if names clash
- future-proofing enums/structs with
#[non_exhaustive]
attribute (RFC #2008) - implement auto trait syntax
- incr.comp.: Implement compiler diagnostic persistence
- incr.comp.: Fix two problems with HIR hashing
- save-analysis: emit crate disambiguators, fixes), more fixes, union support
BufReader::is_empty(..)
- bring back
slice::ref_slice
asslice::from_ref
- remove the
T: Sync
requirement forRwLock<T>: Send
- implement
TryFrom<&[T]>
for&[T; N]
- copy all
AsciiExt
methods to the primitive types directly in order to deprecate it later - impl
From<T>
forAtomicT
- next_power_of_two now panics on overflow
- cargo: support uninstallation of multiple packages
- rustdoc: improve sidebar rendering and add methods list
New Contributors
- David Wood
- Fredrik Larsson
- Jonathan Behrens
- Lance John
- laurent
- matt rice
- Rolf Karp
Approved RFCs
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. This week's FCPs are:
- [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.
New RFCs
- Semantic build scripts for Cargo.
- Constants in array repeat expressions.
- The ConstDefault trait.
#[derive unfinished(..)]
and#[unfinished]
.
Upcoming Events
- Nov 9. Rust DC - Mid-month Rustful.
- Nov 9. Columbus Rust Society - Monthly Meeting.
- Nov 9. San Diego Rust November Meetup - Beginner's Training Session.
- Nov 10. Rust Meetup Stuttgart (Germany)
- Nov 13. Seattle Rust Meetup - Monthly meetup.
- Nov 15. OpenTechSchool Berlin - Rust Hack and Learn.
- Nov 15. Rust Community Team Meeting at #rust-community on irc.mozilla.org.
- Nov 15. Rust Documentation Team Meeting at #rust-docs on irc.mozilla.org.
- 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 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.
If you are running a Rust event please add it to the calendar to get it mentioned here. Email the Rust Community Team for access.
Rust Jobs
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
durka42: IMO the name "dangling" is scary enough :) Havvy gives durka42 a ptr::dangling::
(). durka42 declines to unwrap() it
— durka42 and Havvy discussing PR #45527.
Thanks to Centril for the suggestion!