Warning
This post was published 70 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.
rustdoc
achieves a genius design[release] A Decade of Rust, and Announcing Ferrocene
This week's crate is ratatui, a crate to build rich terminal user interfaces and dashboards.
Thanks to orhun for the (partial 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 list
1If you are a Rust project owner and are looking for contributors, please submit tasks here.
391 pull requests were merged in the last week
#[rustc_confusables]
attribute to allow targeted "no method" error suggestions on standard library typesunused_qualifications
lintnormalize_erasing_regions
in new solverpredicate_must_hold
-esque functions during fulfillment in intercratetry_run
returns an errorimpl Trait
in path positionpotential_query_instability
lint in rustc_hir_typeck
Unsize
for better coercion behaviorsolve
clippy::fn_null_check
lintMove()
function arguments during the callcustom_mir
spanrustc_target
: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the processmaybe_lint_level_root_bounded
UnDerefer
, againRc
& Arc
std::io
: add back BorrowedBuf::filled_mut
Box
and Vec
pure
function attributereturns_twice
function attributearithmetic_side_effect
: allow different types on the right hand side for Wrapping<T>
panic_in_result_fn
remove todo!
, unimplemented!, unreachable!
semicolon_if_nothing_returned
: add an autofixtuple_array_conversions
: move from complexity
to nursery
unnecessary_literal_unwrap
: also lint unwrap_(err_)unchecked
needless_return
in fns across a macro boundaryformat_collect
write_bytes
and ctlz intrinsicsdiscriminant_type
to chalkprojected_ty
mir::Terminator
publicprojected_ty
projected_ty"
A lot of spurious results in the regressions this week. However, we did see some real gains with PR #113609, with nearly 40 real-world benchmarks improving their check-build performance by >=1%.
Triage done by @pnkfelix. Revision range: 1d4f5aff..6b9236ed
5 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups 57 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.
try
and async
clippy::option_env_unwrap
lintAn 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-19 - 2023-08-16 🦀
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
(...) complexity in programming is just like energy in physics: it cannot be created, nor destroyed, but only transformed. So, if a programming language is simple and can only express very simple concepts, the complexity is going to move from the language constructs to your source code and vice versa. One needs to find a balance here, it's a personal choice based on mindset and experience.
Thanks to Arthur Rodrigues 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