2023-05-24
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 whichlang, a fast no-dependencies OSS natural language detector.
Thanks to Brian Kung for the 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.
-Bits derivesCardsInfoInterface for MockDbDisputeInterface for MockDbIf you are a Rust project owner and are looking for contributors, please submit tasks here.
314 pull requests were merged in the last week
always fall back to PartialEq when a constant in a pattern is not recursively structural-eq
fix duplicate arcinner_layout_for_value_layout calls when using the uninit Arc constructors
fix local libs not included when printing native static libs
fix: emit error when fragment is MethodReceiverExpr and items is empty
give a more useful location for where a span_bug was delayed
keep only the trait when emitting the error for MyTrait + 'a
move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rs
process current bucket instead of parent's bucket when starting loop for dominators
rename {drop,forget}_{copy,ref} lints to more consistent naming
specialize query execution for incremental and non-incremental
suppress "erroneous constant used" for constants tainted by errors
use error term in projection if missing associated item in new solver
use code with reliable branchless code-gen for slice::sort merge
rustdoc: hide repr attribute from doc of types without guaranteed repr
clippy: redundant_pattern_matching: check for single-arm match
clippy: dbg_macro: don't remove dbg! in arbitrary expressions
clippy: don't suggest unnameable types in box_default, let_underscore_untyped
clippy: enhance needless_collect: lint in method/function arguments that take an IntoIterator
clippy: fix invalid_regex not recognizing new syntax introduced after regex-1.8.0
clippy: fix some suggestions generated by the option_if_let_else lint
clippy: ignoring let_underscore_untyped warnings in code from proc macros
rust-analyzer: consider block impls in lookup_impl_assoc_item_for_trait_ref
rust-analyzer: highlight used trait assoc items when cursor is on trait import or trait bound
rust-analyzer: render hover actions for closure captures and sig
rust-analyzer: consider all tokens in macro expr when analyzing locals
rust-analyzer: fix preorder_expr skipping the else block of let-else statements
rust-analyzer: fix evaluating negation for floating point types
rust-analyzer: introduce new type var when expectation for ref pat is not ref
rust-analyzer: place type inlay hints after the item and without left-padding
rust-analyzer: process macro_use prelude in semantic scope resolver
Rusty Events between 2023-05-24 - 2023-06-21 🦀
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
I guess the nicest example of this phenomenon is shared mutability. Programmers have been arguing for decades whether it is sharing xor mutability that causes memory safety bugs:
- "It's threads!" – shouted JavaScript and Python, and JS remained single-threaded, and Python introduced the GIL.
- "It's mutability!" – screamed Haskell and Erlang, and they made (almost) everything immutable.
And then along came Rust, and said: "you are fools! You can have both sharing and mutability in the same language, as long as you isolate them from each other."
Thanks to Jacob Pratt 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