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
- Tokio roadmap to 1.0.
- Shipping a compiler every six weeks.
if
andmatch
in 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.
#Rust2020
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!
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.
- [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
- stabilize
!
- stabilize
cfg(doc)
- debuginfo: support for
std::collections::Hash*
in windows debuggers - make gdb pretty-printing more robust when printing uninitialized
Vec
- 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
let
assignment on type errors - suggest calling async closure when needed
- suggest
#[repr(C)]
instead of#[repr(C, packed, ...)]
- add outlives suggestions for some lifetime errors
- use a
SmallVec
forCandidate::match_pairs
- miri: add
acos
,asin
, andatan
foreign functions - mir-opt: asking
?
s in a more optimized fashion - mir-opt: turn on the
ConstProp
pass by default - miri: support unwinding after a panic
- handle statics in MIR as const pointers
- delay an
is_local_ever_initialized
call - reduce size of
hir::Expr
by boxing more ofhir::InlineAsm
- use proc-macro to derive HashStable everywhere
- remove
compiler_builtins_lib
feature from libstd - std::error::Chain: remove
Copy
- use
drop_in_place
inarray::IntoIter::drop
- stabilize
Result::map_or_else
- 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
edition
annotation - rustdoc: preserve whitespace inside one-backtick codeblocks
- measureme: optimize FileSerializationSink by using parking_lot::Mutex and avoiding heap allocations in write_atomic
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.
RFCs
No RFCs are currently in final comment period.
Tracking Issues & PRs
- [disposition: merge] Stabilize
std::{rc,sync}::Weak::{weak_count, strong_count}
. - [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.
New RFCs
Upcoming Events
Online
Africa
Asia Pacific
Europe
- 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.
North America
- 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.
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Rust Jobs
- 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!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nasa42, llogiq, and Flavsditz.