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
- Tokio roadmap to 1.0.
- Shipping a compiler every six weeks.
matchin constants on nightly rust.
- Towards a unified theory of reactive UI.
- Surveying error handling libraries.
- Porting librsvg to Rust: Refactoring the Length type.
- Lessons learned by transpiling C to Rust.
- How to panic in Rust.
- Neat Rust tricks: Passing Rust closures to C.
- Moving gnome-shell's styles to Rust.
- Async-awaitifying a Rust CLI App.
- Building a Rust driver for PineTime’s touch controller.
- RustFest Barcelona talk recordings are now available.
- Cryptowatch is sponsoring development of Rust GUI library iced.
Find all #Rust2020 posts at Read Rust.
Crate of the Week
This week's crate is rerast, a rule-based Rust code transformation tool.
Thanks to Jan Riemer for the suggestions!
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.
- [seeking input] Time v0.2 pre-release feedback.
- [good first issue] what: Shared os behaviour.
- what: Listen on all interfaces.
- crates.io: carols10cents will be mentoring multiple issues for the month of November & December.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from Rust Core
260 pull requests were merged in the last week
- debuginfo: support for
std::collections::Hash*in windows debuggers
- make gdb pretty-printing more robust when printing uninitialized
- generate DWARF address ranges for faster lookups
- fix cycle when debug-printing opaque types
- resolve: give derive helpers highest priority during resolution
- remove pretty printing of specific nodes in AST
- point at type in
letassignment on type errors
- suggest calling async closure when needed
#[repr(C, packed, ...)]
- add outlives suggestions for some lifetime errors
- use a
- miri: add
- mir-opt: asking
?s in a more optimized fashion
- mir-opt: turn on the
ConstProppass by default
- miri: support unwinding after a panic
- handle statics in MIR as const pointers
- delay an
- reduce size of
hir::Exprby boxing more of
- use proc-macro to derive HashStable everywhere
compiler_builtins_libfeature from libstd
- std::error::Chain: remove
- libc: deprecate vfork
- libc: add initial support for sparc-unknown-linux-gnu
- cargo: extend documentation on security concerns of crate names in a registry
- cargo: turn the new lock file format on by default
- cargo: stabilize install-upgrade
- rustdoc: stabilize
- rustdoc: preserve whitespace inside one-backtick codeblocks
- measureme: optimize FileSerializationSink by using parking_lot::Mutex and avoiding heap allocations in write_atomic
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.
No RFCs are currently in final comment period.
- [disposition: merge] Stabilize
- [disposition: merge] Tracking issue for extra floating-point logarithm constants.
- [disposition: merge] Implement Debug for MaybeUninit.
- [disposition: close] Fixes soundness bug 18510 by aborting on unwind from safe extern "C" functions only.
- Nov 26+28, Rome, Italy - Weekly Rust course at "La Sapienza" University: 2nd lesson.
- Nov 27. Copenhagen, DK - Copenhagen Rust Hack Night #20.
- Nov 30. Kharkiv, UA - Peer Lab Kharkiv #Rust: Algorithmic problems solving.
- Dec 2. Karlsruhe, DE - Rust Hack & Learn Karlsruhe - Rust Meet-up.
- Dec 4. Wroclaw, PL - Rust Wroclaw Meetup #15.
- Dec 4. Cologne, DE - Rust Cologne - Advent of .await.
- Dec 11. Berlin, DE - OpenTechSchool Berlin - Rust Hack and Learn.
- Dec 12. Kyiv, UA - Rails Reactor - Rust Ukraine Meetup.
- Dec 12. Turin, IT - Mozilla Torino - Gruppo di studio Rust.
- Dec 3. San Francisco, CA, US - Rust Bay Area - [@ Cloudflare] Declarative UIs in Rust and Real-world production CLIs.
- Dec 4. Indianapolis, IN, US - Indy.rs.
- Dec 4. Portland, OR, US - PDXRust - macros_rule!.
- Dec 10. Seattle, WA, US - Seattle Rust Meetup - Monthly meetup.
- Dec 11. Mesa, AZ, US - Desert Rust - Rust: Crates and Organization.
- Dec 11. Vancouver, BC, CA - Vancouver Rust meetup.
- Dec 12. San Diego, CA, US - San Diego Rust December Meetup.
- Dec 12. Columbus, OH, US - Columbus Rust Society - Monthly Meeting.
- Dec 12. Lehi, UT, US - Utah Rust - December 2019 Regular Meetup.
- PhD, postdoc & intern positions in RustBelt and Iris projects at Max Planck.
- Senior Software Engineer at ConsenSys R&D, Remote.
Tweet us at @ThisWeekInRust to get your job offers listed here!
Quote of the Week
I said it before, and I'll say it again: If one views Rust as a critique on C++, one should view it as a constructive critique.
Thanks to Dmitry Kashitsyn for the suggestion!