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.
This week's crate is kajiya, an experimental real-time global illumination renderer made with Rust and Vulkan.
llogiq is pretty pleased with himself for this suggestion.
Please submit your suggestions and votes for next week!
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.
340 pull requests were merged in the last week
-Z randomize-layout
&mut
for
-loop, ?
and .await
desugaringunused_results
lint<>
and <=>
Hash
for DefId
#[thread_local]
for all windows-msvc targetsBinaryHeap::try_reserve
and BinaryHeap::try_reserve_exact
io::Error::other
Option
methodsbool::then
{,_some
}MaybeUninit::zeroed
const
PartialEq
/PartialOrd
methods as constvec::retain
performancetrack_caller
to Result::from_residual
destructuring_assignment
iter::zip
asm!
and global_asm!
P: Unpin
bound on impl Stream for Pin
StreamExt::count
methodFuturesUnordered
max value of yield_every
unnecessary_to_owned
lintreturn_self_not_must_use
lint if Self
already is marked as #[must_use]
return_self_not_must_use
is not emitted if the method already has #[must_use]
SAFETY
comment tag casing in undocumented_unsafe_blocks
Unfortunately a change introduced in rust-lang/rust#89836 has made performance across different compiler artifacts much more variable by embedding compiler version information (including a git commit hash) in demangled symbol names. This means that even if two compiler artifacts are built from the same exact source code (with only the git commit changed), the compiler will have slightly different performance characteristics. This makes comparisons across pull requests virtually impossible.
The compiler team is still deciding what to do to handle this, but in the mean time, performance testing is largely broken. This issue is currently being tracked inrust-lang/rustc-perf#1126.
Triage done by @rylev. Revision range: 404c847..3d57c61
2 Regressions, 2 Improvements, 23 Mixed; 9 of them in rollups 38 comparisons made in total
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
Every week the team announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.
Rusty Events between 12/22/2021 - 1/15/2022 🦀
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.
Astropad
Timescale
Tangram
Kraken
Parity Technologies
Tweet us at @ThisWeekInRust to get your job offers listed here!
Important crab-related diagnostics improvement shipping in nightly @rustlang
error: Ferris cannot be used as an identifier --> src/main.rs:2:9 | 2 | let 🦀 = 123; | ^^ help: try using their name instead: `ferris` 3 | 4 | for i in 0..🦀 { |
Thanks to Julian Wollersberger 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.
Email list hosting is sponsored by The Rust Foundation