Info
This post is auto-generated from RSS feed This Week in Rust. Source: This Week in Rust 575
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 X (formerly 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.
Want TWIR in your inbox? Subscribe here.
Functor
In Rust?This week's crate is postcard, a battle-tested, well-documented #[no_std]
compatible serializer/deserializer geared towards use in embedded devices.
Thanks to Reto Trappitsch for the suggestion!
Please submit your suggestions and votes for next week!
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:
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.
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.
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 or through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
Are you a new or experienced speaker looking for a place to share something cool? This section highlights events that are being planned and are accepting submissions to join their event as a speaker.
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a PR to TWiR or by reaching out on X (formerly Twitter) or Mastodon!
405 pull requests were merged in the last week
lints_that_dont_need_to_run
: never skip future-compat-reported lintswasm32v1-none
when exporting TLS symbolsvisit
methods to ast nodes that already have walk
s on ast visitorsmacro_rules
macro as attribute/deriveflat_maps
in ast::MutVisitor
Deref
/DerefMut
traits, tooParamEnv
to TypingEnv
transitionwasm32-wasip2
llvm_tools_enabled
when no config.toml
is presentStep::steps_between
-Zunstable-options
to take a value-sWASM_BIGINT
x86_64-win7-windows-msvc
extract_callable_info
, generalize it to async closures~const Destruct
effect goal in the new solver~const Fn
trait goal in the new solver~const
item bounds in RPITPointerLike
opt-in instead of built-in-Zhir-stats
into -Zinput-stats
const
definition when used instead of a binding in a let
statementwhere
predicates, and reserve for attributes supportis_trivially_const_drop
unexpected_cfgs
lint in external macrosabi_unsupported_vector_types
lint in future breakage reportsConstArgKind::Path
for all single-segment paths, not just params under min_generic_const_args
confstr(_CS_DARWIN_USER_TEMP_DIR, ...)
as a TMPDIR
fallback on Darwindangling_pointers_from_temporaries
lintstrerror_r
AnonSocket::read/write
for blocking socketpairRwLock::downgrade
bugPathBuf
APIs to correctly do some path manipulation cross-platformReveal
removalIpv6Addr::is_unique_local
and Ipv6Addr::is_unicast_link_local
const_float_methods
const_pin_2
Add
<[T; N]>::as_mut_slice
with the const
specifierget_mut
and set_position
in std::io::Cursor
as constDisplay
implementation sizeOsString::truncate
AsyncFn*
to the prelude in all editionsBorrowedBuf::into_filled{,_mut}
methods to allow returning buffer with original lifetimestd::thread::add_spawn_hook
vec_deque::Iter::as_slices
and friendseach_ref
and each_mut
in [T; N]
in constant expressionsasm_experimental_reg
feature)test(rustflags)
: Verify -Cmetadata directly, not through -Cextra-filename'exec_with_output'
to 'run'to_string,
it's already impl Displayraw_ref_macros
featuredoc_include_without_cfg
cfg(doc)
extra_unused_lifetimes
FP)unnecessary_map_or
lintadd_braces
to SyntaxFactory SyntaxEditor abstractionstruct
that includes itself as the tail fieldmerge_match_arms
assistreorder_impl_items
Assist to Use SyntaxFactory
This week saw more regressions than improvements, mostly due to three PRs that performed internal refactorings that are necessary for further development and modification of the compiler.
Triage done by @kobzol. Revision range: 7d40450b..7db7489f
Summary:
(instructions:u) | mean | range | count |
---|---|---|---|
Regressions ❌ (primary) |
0.6% | [0.1%, 3.6%] | 57 |
Regressions ❌ (secondary) |
0.6% | [0.0%, 2.7%] | 100 |
Improvements ✅ (primary) |
-0.5% | [-1.5%, -0.2%] | 11 |
Improvements ✅ (secondary) |
-0.4% | [-0.5%, -0.3%] | 7 |
All ❌✅ (primary) | 0.4% | [-1.5%, 3.6%] | 68 |
4 Regressions, 2 Improvements, 3 Mixed; 3 of them in rollups 40 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.
sub_ptr
(feature ptr_sub_ptr
)Rusty Events between 2024-11-27 - 2024-12-25 🦀
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
Will never stop being positively surprised by clippy
text error: hypothenuse can be computed more accurately: --> src/main.rs:835:5 | 835 | (width * width + height * height).sqrt() / diag | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `width.hypot(height)` | help: for further information, visit https://rust-lang.github.io/rust-clippy/master/index.html#imprecise_flops
llogiq is quite self-appreciative regarding his 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