Warning
This post was published 217 days ago. The infomation described in this article may have changed.
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? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, 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 Darkbird, a high-concurrency real-time in-memory database.
Thanks to DanyalMh for the self-suggestion!
Please submit your suggestions and votes for next week!
Always wanted to contribute to open-source projects but did not 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.
396 pull requests were merged in the last week
relaxed-simd
target feature#[thread_local]
on armv6k-nintendo-3dskernel-address
sanitizer support for freestanding targets#[rustc_coinductive]
attributeSized
(in new solver)for<..> ||
closure binderswith_reveal_all_normalized
in const-eval when param_env
has inference vars in it#[doc(hidden)]
trait methods with matching return typedyn*
's value backend type a pointerLazyLock
sizemk_region
min_choice
algorithm of member constraintsimpl
self typesis_str
instead of string kind comparisontarget
instead of machine
for mir interpreter integer handlingRangeBounds
, RangeX::contains
and RangeX::is_empty
(where applicable)vec_deque::IntoIter
read_buf
in Read for &'a FileDescAbortHandle::is_aborted()
rustdoc::all
grouplet_underscore_untyped
lintquestion_mark_used
linttransmute_int_to_non_zero
lintsignificant_drop_tightening
lintsignificant_drop_tightening
: evaluate the return expression of a blocksignificant_drop_tightening
: ignore inexpensive statementsextra_unused_type_parameters
bytes_nth
from suggesting code that does not compiledoc_markdown
requiring backticks on links to external websitesbox_default
: don't omit the type of the removed trait objectmanual_let_else
: do not suggest semantically different replacementsmanual_let_else
: let/else is not divergent by defaultnever_loop
Fix false positive with labeled blocksuninlined_format_args
: do not inline argument with generic parametersunusual_byte_groupings
to only require byte groupings of equal sizemap_entry
lint suggestion on expanded codeneedless_return
incorrect suggestion when returning if sequenceextra_unused_type_parameters
needless_pass_by_value
if
block which has an else
blockOverall a fairly positive week, with few noise-related regressions or improvements and many benchmarks showing significant improvements. The one large regression is limited to documentation builds and has at least a partial fix already planned.
Other wins this week include an average improvement of around 1% in maximum memory usage of optimized builds, and a 2% average reduction in compiled binary sizes. These are fairly significant wins for these metrics.
Triage done by @simulacrum. Revision range: 9bb6e60..3fee48c1
3 Regressions, 3 Improvements, 3 Mixed; 2 of them in rollups 45 artifact 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.
!
--test-run-directory
str
as containing [u8]
for auto trait purposesAn 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:
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.
Rusty Events between 2023-02-22 - 2023-03-22 🦀
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.
Please see the latest Who's Hiring thread on r/rust
It’s enjoyable to write Rust, which is maybe kind of weird to say, but it’s just the language is fantastic. It’s fun. You feel like a magician, and that never happens in other languages.
– Parker Timmerman cited in a TechnologyReview article
Thanks to robin 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
🏷️ Rust_feed