Hello and welcome to another issue of This Week in Rust!
Rust is a programming language empowering everyone to build reliable and efficient software.
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
Newsletters
Project/Tooling Updates
Observations/Thoughts
Rust Walkthroughs
Research
Crate of the Week
This week's crate is HyperQueue, a runtime for ergonomic execution of programs on a distributed cluster.
Thanks to Jakub Beránek for the self-suggestion!
Please 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.
If you are a Rust project owner and are looking for contributors, please submit tasks here.
Updates from the Rust Project
388 pull requests were merged in the last week
- support casting boxes to dyn*
- support default-body trait functions with return-position
impl Trait in traits
- mark derived
StructuralEq as automatically derived
- allow compiling the
wasm32-wasi std library with atomics
- detect and reject out-of-range integers in format string literals
- drop temporaries created in a condition, even if it's a let chain
- fix
let keyword removal suggestion in structs
- make
dyn* casts into a coercion, allow dyn* upcasting
- make
overlapping_impls not generic
- point out incompatible closure bounds
- populate effective visibilities in
rustc_resolve
- print return-position
impl Trait in trait verbosely if -Zverbose
- add suggestion to the "missing native library" error
- suggest
== to the first expr which has ExprKind::Assign kind
- suggest candidates for unresolved import
- suggest parentheses for possible range method calling
- suppress irrefutable let patterns lint for prefixes in match guards
- unify
tcx.constness query and param env constness checks
- remove type traversal for mir constants
- scoped threads: pass closure through MaybeUninit to avoid invalid dangling references
- never panic in
thread::park and thread::park_timeout
- use semaphores for thread parking on Apple platforms
- nicer errors from
assert_unsafe_precondition
- optimize TLS on Windows
- stabilize
map_first_last
- constify
Location methods
- add
MaybeUninit array transpose From impls
- add
Box<[T; N]>: TryFrom<Vec<T>>
- add
IsTerminal trait to determine if a descriptor or handle is a terminal
- add
is_empty() method to core::ffi::CStr
- panic for invalid arguments of
{integer primitive}::ilog{,2,10} in all modes
- impl
AsFd and AsRawFd for io:: {Stdin , Stdout , Stderr }, not the sys versions
- prevent UB in child process after calling
libc::fork
- fix
Duration::{try_,}from_secs_f{32,64}(-0.0)
- SIMD: mark more mask functions inline
- futures: fix soundness hole in join macros
- cargo: fix deadlock when build scripts are waiting for input on stdin
- cargo: support 'publish.timeout' config behind '-Zpublish-timeout'
- rustdoc: change default level of
invalid_html_tags to warning and stabilize it
- clippy: add
as_ptr_cast_mut lint
- clippy: add
unused_format_specs lint
- clippy: add a suggestion and a note about orphan rules for
from_over_into
- clippy: add new lint
partial_pub_fields
- clippy: change
uninlined_format_args into a style lint
- clippy: don't lint
ptr_arg when used as an incompatible trait object
- clippy: fix
to_string_in_format_args in parens
- clippy: don't lint
default_numeric_fallback on constants
- clippy: don't lint
unnecessary_cast on negative hexadecimal literals when cast as floats
- clippy:
zero_prefixed_literal : Do not advise to use octal form if not possible
- clippy: add
cast-nan-to-int lint
- clippy: fix
box-default linting no_std non-boxes
- clippy: fix:
uninlined_format_args shouldn't inline panic! before 2021 edition
- rust-analyzer: migrate assists to format args captures, part 2
- rust-analyzer: diagnose some incorrect usages of the question mark operator
- rust-analyzer: fix formatting requests hanging when r-a is still starting
Rust Compiler Performance Triage
Overall a fairly busy week, with many improvements and regressions, though the
net result ends up being a small regression. Pretty busy week in terms of
regressions in rollups as well, which unfortunately mostly were not followed up
on prior to the report being put together, despite the relative ease of running
perf against individual PRs now.
Triage done by @simulacrum.
Revision range: 1e926f06..e0f8e60
2 Regressions, 4 Improvements, 4 Mixed; 4 of them in rollups
47 artifact comparisons made in total
See full report for details.
An important step for RFC implementation is for people to experiment with the
implementation and give feedback, especially before stabilization. The following
RFCs would benefit from user testing before moving forward:
- No RFCs issued a call for testing this week.
If you are a feature implementer and would like your RFC to appear on the above list, add the new call-for-testing
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.
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 entered Final Comment Period this week.
-
- No Tracking Issues or PRs entered Final Comment Period this week.
Upcoming Events
Rusty Events between 2022-10-19 - 2022-11-16 🦀
Virtual
- 2022-10-19 | Virtual (Boulder, CO, US) | Boulder Elixir and Rust
- 2022-10-19 | Virtual (Chennai, IN) | Techceleration at Toyota Connected
- 2022-10-19 | Virtual (Vancouver, BC, CA) | Vancouver Rust
- 2022-10-19 | Virtual | Boston NoSQL Database Group (ScyllaDB)
- 2022-10-20 | Virtual (Bellingham, WA, US) | bellingham.codes
- 2022-10-20 | Virtual (Buenos Aires, AR) | Nerdearla
- 2022-10-20 | Virtual (México City, MX) | Rust MX
- 2022-10-20 | Virtual (Stuttgart, DE) | Rust Community Stuttgart
- 2022-10-25 | Virtual (Berlin, DE) | OpenTechSchool Berlin
- 2022-10-25 | Virtual (Dallas, TX, US) | Dallas Rust
- 2022-10-26 | Virtual (Redmond, WA, US / New York, NY, US / Toronto, CA / Stockholm, SE / London, UK) | Microsoft Reactor Redmond
- 2022-10-27 | Virtual (Charlottesville, VA, US) | Charlottesville Rust Meetup
- 2022-10-27 | Virtual (Karlsruhe, DE) | The Karlsruhe Functional Programmers Meetup Group
- 2022-10-29 | Virtual (Ludwigslust, DE) | Ludwigslust Rust Meetup
- 2022-11-01 | Virtual (Beijing, CN) | WebAssembly and Rust Meetup (Rustlang)
- 2022-11-01 | Virtual (Buffalo, NY, US) | Buffalo Rust Meetup
- 2022-11-02 | Virtual (Cardiff, UK) | Rust and C++ Cardiff
- 2022-11-02 | Virtual (Indianapolis, IN, US) | Indy Rust
- 2022-11-02 | Virtual (Redmond, WA, US / San Francisco, SF, US / New York, NY, US / Toronto, CA / London, UK) | Microsoft Reactor Redmond
- 2022-11-02 | Virtual (Stuttgart, DE) | Rust Community Stuttgart
- 2022-11-08 | Virtual (Dallas, TX, US) | Dallas Rust
- 2022-11-08 | Virtual (Stockholm, SE) | Func Prog Sweden
- 2022-11-10 | Virtual (Budapest, HU) | HWSW free!
- 2022-11-12 | Virtual | Rust GameDev
- 2022-11-15 | Virtual (Washington, DC, US) | Rust DC
- 2022-11-16 | Virtual (Vancouver, BC, CA) | Vancouver Rust
Europe
North America
- 2022-10-20 | New York, NY, US | Rust NYC
- 2022-10-20 | New York, NY, US | Cloud Native New York
- 2022-10-25 | Toronto, ON, CA | Rust Toronto
- 2022-10-27 | Lehi, UT, US | Utah Rust
- 2022-11-10 | Columbus, OH, US | Columbus Rust Society
Oceania
South America
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.
Jobs
Please see the latest Who's Hiring thread on r/rust
Quote of the Week
I think it's worth noting that the fact that this program fails to compile whereas the analogous Python runs but gives the wrong answer is exactly what Rust's ownership and borrowing system is about.
– Kevin Reid on rust-users
Thanks to Kill The Mule for the suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation
Discuss on r/rust
|