2023-10-11
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.
#[diagnostic] namespace to improve rustc error messages in complex cratesThis week's crate is yarer, a library and command-line tool to evaluate mathematical expressions.
Thanks to Gianluigi Davassi 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 node delete (no args) interactive by asking the user to choose from a list of nodes to delete (tuify)ockam enroll ----help text by adding doc comment for identity flag (clap command)If you are a Rust project owner and are looking for contributors, please submit tasks here.
384 pull requests were merged in the last week
non_lifetime_binders: fix ICE in lint opaque-hidden-inferred-bound
bring back generic parameters for indices in rustc_abi and make it compile on stable
coverage: allow each coverage statement to have multiple code regions
ensure that ~const trait bounds on associated functions are in const traits or impls
fix to register analysis passes with -Zllvm-plugins at link-time
for a single impl candidate, try to unify it with error trait ref
more accurately point to where default return type should go
properly export function defined in test which uses global_asm!()
in smir find_crates returns Vec<Crate> instead of Option<Crate>
miri: do not use host floats in simd_{ceil,floor,round,trunc}
miri: ensure RET assignments do not get propagated on unwinding
miri: refactor dlsym: dispatch symbols via the normal shim mechanism
fix generic bound of str::SplitInclusive's DoubleEndedIterator impl
cargo: refactor(toml): Make manifest file layout more consitent
rustdoc: rename issue-\d+.rs tests to have meaningful names (part 2)
clippy: into_iter_without_iter: walk up deref impl chain to find iter methods
clippy: std_instead_of_core: avoid lint inside of proc-macro
clippy: avoid invoking ignored_unit_patterns in macro definition
clippy: fix items_after_test_module for non root modules, add applicable suggestion
rust-analyzer: add config option to use rust-analyzer specific target dir
rust-analyzer: add configuration for the default action of the status bar click action in VSCode
rust-analyzer: do flyimport completions by prefix search for short paths
rust-analyzer: add assist for applying De Morgan's law to Iterator::all and Iterator::any
rust-analyzer: add backtick to surrounding and auto-closing pairs
rust-analyzer: implement tuple return type to tuple struct assist
rust-analyzer: fix path syntax produced by the into_to_qualified_from assist
rust-analyzer: recognize custom main function as binary entrypoint for runnables
Rusty Events between 2023-10-11 - 2023-11-08 🦀
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
The Rust mission -- let you write software that's fast and correct, productively -- has never been more alive. So next Rustconf, I plan to celebrate:
- All the buffer overflows I didn't create, thanks to Rust
- All the unit tests I didn't have to write, thanks to its type system
- All the null checks I didn't have to write thanks to Option and Result
- All the JS I didn't have to write thanks to WebAssembly
- All the impossible states I didn't have to assert "This can never actually happen"
- All the JSON field keys I didn't have to manually type in thanks to Serde
- All the missing SQL column bugs I caught at compiletime thanks to Diesel
- All the race conditions I never had to worry about thanks to the borrow checker
- All the connections I can accept concurrently thanks to Tokio
- All the formatting comments I didn't have to leave on PRs thanks to Rustfmt
- All the performance footguns I didn't create thanks to Clippy
– Adam Chalmers in their RustConf 2023 recap
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