Warning
This post was published 63 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 and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
This week's crate is tower-async, a currently nightly-only async library to build network servers, based on tower.
Thanks to Glen De Cauwsemaecker 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.
ockam project enroll
ockam project ticket
should return a proper error messageIf you are a Rust project owner and are looking for contributors, please submit tasks here.
406 pull requests were merged in the last week
target_arch
valuesriscv64gc-unknown-hermit
targetx86_64-unknown-linux-ohos
targetx86_64-unknown-uefi
.comment
section like GCC/Clang (!llvm.ident
)from_bits, to_bits
to IP addresses#[inline]
to core debug assertion helpersno-builtins
attribute to functions when no_builtins
is applied at the crate level#[inline(always)]
on closures with target feature 1.1inline_const
with interpolated blockunused_qualifications
suggestion!nonnull
metadata on slice iterators, without assume
ssimd_shuffle
-Z reference-niches
optionScope::Elision
from bound-vars resolutionarg_iter
to iter_instantiated
rustc_llvm
: Add a -Z print-codegen-stats
option to expose LLVM statisticscodegen_ssa
monomorphization errors in codegen_gcc
-Z reference-niches
option"--print KIND=PATH
command line syntaxtry
and async
features()
over features_untracked()
where possiblesize_hint
for EncodeUtf16
OsString
bytes{Rc,Arc}::allocator
associated functionsunix_chown
)Path::with_extension
core::sync::atomic::ATOMIC_*_INIT
constantsimpl Extend<&'a T> for Vec<T, A>
Equivalent
from the crate rootTryStreamExt::try_ready_chunks
as failable version of StreamExt::ready_chunks
"ffi_const"
function attribute~/.cargo/{git,registry}
doc(hidden)
default
in method renderingsignificant_drop_tightening
don't lint literal-returning functionssignificant_drop_tightening
fix tuple drop recognitioninherent_to_string
: Don't lint unsafe
or extern
fnsmanual_filter_map
: lint on matches
and pattern matchingptr_arg
should ignore extern functionsredundant_pattern_matching
: include guard in suggestionunnecessary_literal_unwrap
: fix ICE on None.unwrap_or_default()
unused_async
: don't lint if paths reference async fn without immediate callunwrap_or_else_default
โ unwrap_or_default
and improve resulting lintSelf::cmp(self, other)
as a correct implunnecessary_cast
SpanlessEq::eq_expr
unwrap_or_else_default
false positiveneedless_pass_by_ref_mut
lintoption_env!
in ifs_same_cond
comparison_to_empty
work on if let
/let
chainsabsolute_paths
,
error_impl_error
,
four_forward_slashes
,
iter_skip_zero
,
needless_return_with_try
,
redundant_guards
,
string_lit_chars_any
,
redundant_locals
dereference.rs
to util functions#![allow(unused)]
and --crate-name
from cargo dev new_lint
generated teststuple_array_conversions
is_dyn_method
incorrect-ident-case
for inner itemschange_visibility
assist to applicable itemsA relatively light week with respect to performance changes. The one major
regressing PR was reverted (for other reasons), and we saw some very nice gains
on compile-times from (1.) changes to our codegen-unit merging logic and from
(2.) changes to the stdlib slice iterators encoding its non-null guarantees
directly, allowing the removal of a call to the assume
intrinsic.
Triage done by @pnkfelix. Revision range: 6b9236ed..0308df23
1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 35 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.
noop_method_call
warn by defaultAn 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-07-26 - 2023-08-23 ๐ฆ
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
A rustacean is a programmer that dislikes being told "yes" in situations where they'll regret it later.
โ Predrag Gruevski on mastodon
Thanks to Kevin Mehall 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