This Week in Rusthttps://this-week-in-rust.org/2024-03-13T00:00:00-04:00This Week in Rust 5382024-03-13T00:00:00-04:002024-03-13T00:00:00-04:00TWiR Contributorstag:this-week-in-rust.org,2024-03-13:/blog/2024/03/13/this-week-in-rust-538/<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send …</a></p><p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2>
<!--
Dear community contributors:
Please read README.md for guidance on submissions.
Each submitted link should be of the form:
* [Title of the Linked Page](https://example.com/my_article)
If you don't know which category to use, feel free to submit a PR anyway
and just ask the editors to select the category.
-->
<h3 id="official"><a class="toclink" href="#official">Official</a></h3>
<ul>
<li><a href="https://blog.rust-lang.org/2024/03/11/Rustup-1.27.0.html">Announcing Rustup 1.27.0</a></li>
<li><a href="https://blog.rust-lang.org/2024/03/11/crates-io-download-changes.html">crates.io: Download changes</a></li>
</ul>
<h3 id="newsletters"><a class="toclink" href="#newsletters">Newsletters</a></h3>
<ul>
<li><a href="https://rust-osdev.com/this-month/2024-02/">This Month in Rust OSDev: February 2024</a></li>
</ul>
<h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3>
<ul>
<li><a href="https://bevyengine.org/news/bevy-foundation/">Bevy Foundation</a></li>
<li><a href="https://github.com/ad-si/Rust-Flashcards">Rust Flashcards - 557 cards to learn Rust from first principles</a></li>
<li><a href="https://users.rust-lang.org/t/lib-rs-website-improvements/108218">Lib.rs website improvements</a></li>
<li><a href="https://www.memorysafety.org/blog/reducing-dependencies-in-sudo/">Sudo-rs dependencies: when less is better</a></li>
<li><a href="https://rust-analyzer.github.io/thisweek/2024/03/11/changelog-224.html">rust-analyzer changelog #224</a></li>
<li><a href="https://www.lpalmieri.com/posts/biscotti-http-cookies-in-rust/">biscotti, a new crate for HTTP cookies</a></li>
<li><a href="https://boajs.dev/blog/2024/03/07/boa-release-18">Boa release v0.18</a></li>
<li><a href="https://relm4.org/blog/posts/announcing_relm4_v0.7/">Announcing Relm4 0.7 and 0.8</a></li>
<li><a href="https://blog.meilisearch.com/meilisearch-1-7/">Meilisearch 1.7 — New OpenAI models & GPU support for Hugging Face embeddings</a></li>
<li><a href="https://kobzol.github.io/rust/cargo/2024/03/10/rust-cargo-wizard.html">Cargo wizard: automate Cargo project configuration</a></li>
<li><a href="https://greptime.com/blogs/2024-03-07-greptimedb-v0.7">GreptimeDB v0.7 is ready for cloud-native monitoring</a></li>
<li>[video] <a href="https://www.youtube.com/watch?list=PL85XCvVPmGQipj690WrVgsnU4K4x7qFGy&v=N7GMHcX-WdA">Project Syn - Simon Gerber - Rust Zürisee March 2024</a></li>
</ul>
<h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3>
<ul>
<li><a href="https://blog.sdf.com/p/fast-development-in-rust-part-one">Fast Development In Rust, Part One</a></li>
<li><a href="https://ia0.github.io/unsafe-mental-model/">Mental model for unsafe (complete rewrite)</a></li>
<li><a href="https://ochagavia.nl/blog/10-years-in-open-source/">10 years in Open Source</a></li>
<li>[audio] <a href="https://corrode.dev/podcast/s01e07-season-finale/">Season Finale - Rust in Production Podcast</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=VArNQtYBC6Y">SemVer in Rust: Breakage, Tooling, and Edge Cases</a></li>
</ul>
<h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3>
<ul>
<li><a href="https://www.infoq.com/articles/rust-procedural-macros-replace-panic/">How to Use Rust Procedural Macros to Replace Panic with syn’s Fold</a></li>
<li><a href="https://blog.jetbrains.com/rust/2024/03/12/rust-iterators-beyond-the-basics-part-i-building-blocks/">Rust Iterators Beyond the Basics - part 1</a></li>
<li><a href="https://rust.code-maven.com/multi-crate-project">Rust Multi-crate project in a monorepo</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/03/07/stripe-payments-rust">Using Stripe Payments with Rust</a></li>
<li><a href="https://blog.weiznich.de/blog/async-transaction-problem/">Problems around modelling an asynchronous API for database transaction in Rust</a></li>
<li><a href="https://apollolabsblog.hashnode.dev/embedded-rust-bluetooth-on-esp-ble-scanner">Embedded Rust Bluetooth on ESP: BLE Scanner</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=u0VotuGzD_w">Implementing (parts of) git from scratch in Rust</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=-1VGwmFKKf8">The Billion Rows Challenge in Rust - an intro to Rust for data engineering</a></li>
</ul>
<h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3>
<ul>
<li><a href="https://bastienvigneron.medium.com/rust-impact-on-engineering-management-59647e5d0265">Rust impact on engineering management</a></li>
<li><a href="https://surrealdb.com/blog/from-medical-doctor-to-rust-developer--interview-with-our-new-senior-clinical-research-fellow">From medical doctor to rust developer</a></li>
<li><a href="https://filtra.io/rust-feb-24">February 2024 Rust Jobs Report</a></li>
</ul>
<h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2>
<p>This week's crate is <a href="https://github.com/LukeMathWalker/biscotti">biscotti</a>, an opinionated library to deal with HTTP cookies on the server side.</p>
<p>We saw a lamentable lack of suggestions this week. Nevertheless, llogiq is pleased with his selection.</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h2 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h2>
<p>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:</p>
<ul>
<li><a href="https://github.com/rust-lang/rust/issues/119612">Tracking Issue for <code>min_exhaustive_patterns</code></a><ul>
<li><a href="https://github.com/rust-lang/rust/issues/119612#issuecomment-1967092452">Testing Steps</a></li>
</ul>
</li>
</ul>
<p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code>
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.</p>
<h2 id="call-for-participation-projects-and-speakers"><a class="toclink" href="#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h2>
<h3 id="cfp-projects"><a class="toclink" href="#cfp-projects">CFP - Projects</a></h3>
<p>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!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
<ul>
<li><a href="https://github.com/juspay/hyperswitch/issues/4054">Hyperswitch - [REFACTOR]: Remove Default Case Handling - Bambora</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/4055">Hyperswitch - [REFACTOR]: Remove Default Case Handling - Mollie</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/4058">Hyperswitch - [REFACTOR]: Remove Default Case Handling - Braintree</a></li>
<li><a href="https://github.com/GreptimeTeam/greptimedb/issues/3492">GreptimeDB - Painless integrating with Grafana via Prometheus plugin</a></li>
<li><a href="https://github.com/GreptimeTeam/greptimedb/issues/3435">GreptimeDB - Add strict mode to validate protocol strings</a></li>
<li><a href="https://github.com/infinyon/fluvio/issues/3765">Fluvio - fvm switch fails on some systems with running local cluster</a></li>
<li><a href="https://github.com/infinyon/fluvio/issues/3810">Fluvio - Add new command fluvio cluster resume</a></li>
<li><a href="https://github.com/quinn-rs/quinn/issues/1778">quinn - Add CI for mobile platforms (iOS & Android)</a></li>
</ul>
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p>
<h3 id="cfp-speakers"><a class="toclink" href="#cfp-speakers">CFP - Speakers</a></h3>
<p>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. They are ordered below by when the CFP closes.</p>
<ul>
<li><a href="https://rustfest.ch/cfp/">RustFest Zürich 2024</a> | Closes 2024-03-31 | Zürich, Switzerland | Event date: 2024-06-19 - 2024-06-24</li>
<li><a href="https://pretalx.com/oxidize-berlin-2024/cfp">Oxidize 2024</a> | Closes 2024-03-24 | Berlin, Germany | Event date: 2024-05-28 - 2024-05-30</li>
<li><a href="https://foundation.rust-lang.org/news/the-rustconf-2024-call-for-talk-proposals-is-open/">RustConf 2024</a> | Closes 2024-04-25 | Montreal, Canada | Event date: 2024-09-10</li>
<li><a href="https://www.papercall.io/eurorust-2024">EuroRust 2024</a>| Closes 2024-06-03 | Vienna, Austria & online | Event on 2024-10-10</li>
<li><a href="https://scientificcomputing.rs/">Scientific Computing in Rust 2024</a>| Closes 2024-06-14 | online | Event date: 2024-07-17 - 2024-07-19</li>
</ul>
<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a>.</p>
<h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2>
<p>506 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-03-05..2024-03-12">merged in the last week</a></p>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/121832">add new Tier-3 target: <code>loongarch64-unknown-linux-musl</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119199">add arm64ec-pc-windows-msvc target</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/117458">LLVM Bitcode Linker: A self contained linker for nvptx and other targets</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122004">AST validation: Improve handling of inherent impls nested within functions and anon consts</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121894"><code>const_eval_select</code>: make it safe but be careful with what we expose on stable for now</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121975"><code>hir_analysis</code>: enums return <code>None</code> in <code>find_field</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121905">add a <code>description</code> field to target definitions</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121976">add an option to have an external download/bootstrap cache</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119365">add asm goto support to <code>asm!</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122305">add metadata to targets</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122066">add proper cfgs for <code>struct</code> HirIdValidator used only with debug-assert</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122157">add the new description field to <code>Target::to_json,</code> and add descriptions for some MSVC targets</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/116791">allow codegen backends to opt-out of parallel codegen</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122315">allow multiple <code>impl Into<{D,Subd}iagMessage></code> parameters in a function</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/116793">allow targets to override default codegen backend</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122043">apply <code>EarlyBinder</code> only to <code>TraitRef</code> in <code>ImplTraitHeader</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122010">avoid invoking the <code>intrinsic</code> query for DefKinds other than <code>Fn</code> or <code>AssocFn</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121190">avoid overlapping privacy suggestion for single nested imports</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122014">change some attributes to <code>only_local</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122078">check that return type is WF in typeck</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121752">detect unused <code>struct</code> impls pub trait</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122293">diagnostics: do not suggest using <code>#[unix_sigpipe]</code> without a value</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121662">distinguish between library and lang UB in <code>assert_unsafe_precondition</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122026">do not try to format removed files</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122172">don't ICE if we collect no RPITITs unless there are no unification errors</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122173">don't ICE in CTFE if raw/fn-ptr types differ</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122137">don't pass a break scope to <code>Builder::break_for_else</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122123">don't require specifying unrelated assoc types when trait alias is in <code>dyn</code> type</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/113525">dynamically size sigaltstk in std</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121301">errors: share <code>SilentEmitter</code> between rustc and rustfmt</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122181">fix crash in internal late lint checking</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122271">fix legacy numeric constant diag items</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122038">fix linting paths with qself in <code>unused_qualifications</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122304">fix metadata for dyn-star in new solver</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122164">fix misaligned loads when loading UEFI arg pointers</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121958">fix redundant import errors for preload extern crate</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119385">fix type resolution of associated const equality bounds (take 2)</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122244">fix: localWaker memory leak and some stability attributes</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121857">implement async closure signature deduction</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122152">improve diagnostics for parenthesized type arguments</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122249">interpret: do not call machine read hooks during validation</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121202">limit the number of names and values in check-cfg diagnostics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/118879">lint singleton gaps after exclusive ranges</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122022">loongarch: add frecipe and relax target feature</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121282">lower transmutes from int to pointer type as gep on null</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122103">make TAITs and ATPITs capture late-bound lifetimes in scope</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121796">make <code>DefiningAnchor::Bind</code> only store the opaque types that may be constrained, instead of the current infcx root item</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122147">make <code>std::os::unix::ucred</code> module private</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122114">make not finding core a fatal error</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122063">make the lowering of <code>thir::ExprKind::If</code> easier to follow</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122221">match lowering: define a convenient <code>struct</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121846">only compare ambiguity item that have hard error</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122018">only set noalias on Box with the global allocator</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122138">record mtime in bootstrap's LLVM linker script</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121194">refactor pre-getopts command line argument handling</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122072">refer to "slice" instead of "vector" in Ord and PartialOrd trait impl of slices</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121089">remove <code>feed_local_def_id</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121959">removing absolute path in proc-macro</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121382">rework <code>untranslatable_diagnostic</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122140">run a single huge <code>par_body_owners</code> instead of many small ones after each other</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121863">silence mismatched types errors for implied projections</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119888">stabilize the <code>#[diagnostic]</code> namespace and <code>#[diagnostic::on_unimplemented]</code> attribute</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121438">std support for wasm32 panic=unwind</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122299">store backtrace for <code>must_produce_diag</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122107">temporarily make allow-by-default the <code>non_local_definitions</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122076">tweak the way we protect in-place function arguments in interpreters</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122027">uplift some feeding out of <code>associated_type_for_impl_trait_in_impl</code> and into queries</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122048">use GEP inbounds for ZST and DST field offsets</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122320">use ptradd for vtable indexing</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122290">MIR printing: print the path of uneval'd const</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122233">miri: do not apply aliasing restrictions to <code>Box</code> with custom allocator</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3340">miri: remove the ability to disable ABI checking</a></li>
<li>perf: build <code>rustc</code> with 1CGU on <a href="https://github.com/rust-lang/rust/pull/112268"><code>x86_64-apple-darwin</code></a> and <a href="https://github.com/rust-lang/rust/pull/112267"><code>x86_64-pc-windows-msvc</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120268">replace the default branch with an unreachable branch If it is the last variant</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122059">optimize write with <code>as_const_str</code> for shorter code</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121938">fix quadratic behavior of repeated vectored writes</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121428">net: don't use checked arithmetic when parsing numbers with known max digits</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121201"><code>align_offset, align_to</code>: no longer allow implementations to spuriously fail to align</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121403">impl <code>From<TryReserveError></code> for <code>io::Error</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/114655">make <code>impl<Fd: AsFd></code> impl take <code>?Sized</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/99153">add <code>Read</code> impl for <code>&Stdin</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121942"><code>std::rand</code>: enable getrandom for dragonflybsd too</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122002"><code>std::threads</code>: revisit stack address calculation on netbsd</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121633">win10: use <code>GetSystemTimePreciseAsFileTime</code> directly</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121956">windows: implement condvar, mutex and rwlock using futex</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121148">add <code>slice::try_range</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121280">implement <code>MaybeUninit::fill{,_with,_from}</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122298"><code>RawVec::into_box</code>: avoid unnecessary intermediate reference</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120504"><code>Vec::try_with_capacity</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/122099">add <code>#[inline]</code> to <code>BTreeMap::new</code> constructor</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/112136">add <code>std::ffi::c_str</code> module</a></li>
<li><a href="https://github.com/rust-lang/futures-rs/pull/2825">futures: add a helper for always ready futures</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13399">cargo: cli: allow logging to chrome traces</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13557">cargo: doc: collapse down generated statuses without --verbose</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13538">cargo: log: trace parameters to align with profile</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13564">cargo: lockfile: make diffing/printing more reusable</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13537">cargo: consistently compare MSRVs</a></li>
<li><a href="https://github.com/rust-lang/rustfmt/pull/6092">rustfmt: fix failure with <code>=></code> in comment after match <code>=></code></a></li>
<li>clippy: new lints: <a href="https://github.com/rust-lang/rust-clippy/pull/12378"><code>duplicated_attributes</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/12440"><code>manual_unwrap_or_default</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/12401"><code>nonminimal_bool</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/12449"><code>zero_repeat_side_effects</code></a> and <a href="https://github.com/rust-lang/rust-clippy/pull/12310"><code>const_is_empty</code></a></li>
<li>clippy: fix duplicate diagnostics in <a href="https://github.com/rust-lang/rust-clippy/pull/12452"><code>manual_retain</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/12442"><code>mut_mut</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/12443"><code>no_effect_replace</code></a> and <a href="https://github.com/rust-lang/rust-clippy/pull/12448"><code>single_match</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12429">clippy: don't lint <code>redundant_field_names</code> across macro boundaries</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12447">clippy: fix <code>std_instead_of_core</code> false positive</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12433">clippy: fix <code>missing_docs_in_private_items</code> on some proc macros</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12446">clippy: have more lints respect <code>#[allow]</code> on exprs</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16762">rust-analyzer: add QuickFix for unresolved field</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16810">rust-analyzer: add fix for <code>unused_variables</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16808">rust-analyzer: add proc macro semantic token type</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16773">rust-analyzer: add config and capability for test explorer</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16781">rust-analyzer: don't escape <code>\</code> and <code>$</code> in "Extract format expressions" assist</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16776">rust-analyzer: don't force draw a dependency edge to the <code>real_span_map</code> query</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16777">rust-analyzer: don't invalid body query results when generating desugared names</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16811">rust-analyzer: fix method resolution snapshotting <code>receiver_ty</code> too early</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16769">rust-analyzer: function argument type inference with associated type impl trait</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16766">rust-analyzer: keep attributes in assist <code>'generate_delegate_trait'</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16770">rust-analyzer: panic when using float numbers without dots in chain calls</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16782">rust-analyzer: preserve $ and \ in postfix format completions</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16775">rust-analyzer: remove accidental dependency between <code>parse_macro_expansion</code> and <code>parse</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16779">rust-analyzer: skip match diagnostics for partially unknown types</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16755">rust-analyzer: for toolchain binaries use the full path found in $PATH</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16473">rust-analyzer: stop eagerly resolving inlay hint text edits for VSCode</a></li>
</ul>
<h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3>
<p>A mixed week, with a vast number of improvements (in large part due to PR</p>
<h1 id="122010-which-undoes-a-prior-regression-pr-120985-a-host-llvm-update"><a class="toclink" href="#122010-which-undoes-a-prior-regression-pr-120985-a-host-llvm-update">122010, which undoes a prior regression; PR #120985, a host LLVM update).</a></h1>
<p>But also three admittedly small-ish regressions which seemed unanticipated and
were still large enough that I did not feel comfortable rubber-stamping them
with a perf-regression-triaged marking.</p>
<p>Triage done by <strong>@pnkfelix</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=41d97c8a5dea2731b0e56fe97cd7cb79e21cff79&end=e919669d42dfb8950866d4cb268c5359eb3f7c54&absolute=false&stat=instructions%3Au">41d97c8a..e919669d</a></p>
<p>2 Regressions, 5 Improvements, 9 Mixed; 5 of them in rollups
54 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/69fb50d19f3d9bb28a903ddcee7326eef6a11518/triage/2024-03-11.md">Full report here</a></p>
<h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3243">RFC: Packages as (optional) namespaces</a></li>
</ul>
<h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4>
<ul>
<li><em>No RFCs entered Final Comment Period this week.</em></li>
</ul>
<h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs">Tracking Issues & PRs</a></h4>
<h5 id="rust"><a class="toclink" href="#rust"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Rust</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/117164">Normalize trait ref before orphan check & consider ty params in alias types to be uncovered</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121720">Split refining_impl_trait lint into _reachable, _internal variants</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/120845">debuginfo: Stabilize <code>-Z debug-macros</code>, <code>-Z collapse-macro-debuginfo</code> and <code>#[collapse_debuginfo]</code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/122055">Stabilize associated type bounds (RFC 2289)</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/115285"><code>c_unwind</code> full stabilization request: change in <code>extern "C"</code> behavior</a></li>
<li>[disposition: postpone] <a href="https://github.com/rust-lang/rust/issues/120797">Consider linting against 00B7 aka interpunct aka middle dot</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/116935">Prevent opaque types being instantiated twice with different regions within the same function</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/119820">instantiate higher ranked goals outside of candidate selection</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/117918">Add <code>wasm_c_abi</code> <code>future-incompat</code> lint</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121948">stabilize ptr.is_aligned, move ptr.is_aligned_to to a new feature gate </a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121952">feat: <code>implement {Div,Rem}Assign<NonZero<X>></code> on <code>X</code></a></li>
</ul>
<h5 id="cargo"><a class="toclink" href="#cargo"><a href="https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Cargo</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/cargo/pull/12783">cargo: prevent dashes in lib.name</a></li>
</ul>
<h4 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h4>
<ul>
<li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3585">Make <code>cargo install</code> respect lockfiles by default</a></li>
</ul>
<h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2>
<p>Rusty Events between 2024-03-13 - 2024-04-10 🦀</p>
<h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3>
<ul>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">OpenTechSchool Berlin</a><ul>
<li><a href="https://www.meetup.com/opentechschool-berlin/events/298406445/"><strong>Web Frontend Co-Learning (online)</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457903/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a> | <a href="https://berline.rs/2024/03/14/rust-hack-and-learn.html"><strong>Mirror: Berline.rs page</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nüremberg</a><ul>
<li><a href="https://www.meetup.com/rust-noris/events/297945252/"><strong>Rust Nürnberg online</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (San Diego, CA, US) | <a href="https://www.meetup.com/san-diego-rust/">San Diego Rust</a><ul>
<li><a href="https://www.meetup.com/san-diego-rust/events/299743034/"><strong>San Diego Rust March 2024 Tele-Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Virtual | <a href="https://github.com/formal-land/">Formal Land</a><ul>
<li><a href="https://lecture.senfcall.de/hay-gmh-wox-mru"><strong>Rust for Lunch: Formal verification for Rust with coq-of-rust. Speaker: Guillaume Claret</strong></a> | <a href="https://github.com/formal-land/coq-of-rust">Docs</a></li>
</ul>
</li>
<li>2024-03-19 | Virtual (Washinigton, DC, US) | <a href="https://www.meetup.com/rustdc/">Rust DC</a><ul>
<li><a href="https://www.meetup.com/rustdc/events/299335006/"><strong>Mid-month Rustful</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul>
<li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/299505703/"><strong>Rust for Rustaceans Book Club: Chapter 3 - Designing Interfaces</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Virtual (Vancouver, BC, CA)| <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/292763494/"><strong>Rust Study/Hack/Hang-out</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298368793/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Virtual + In Person (Barcelona, ES) | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a> - <a href="https://www.youtube.com/@bcnrust">Stream</a></li>
</ul>
</li>
<li>2024-03-26 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/299644917/"><strong>Last Tuesday</strong></a></li>
</ul>
</li>
<li>2024-03-28 | Virtual + In Person (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457904/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a></li>
</ul>
</li>
<li>2024-04-02 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/">Buffalo Rust</a><ul>
<li><a href="https://www.meetup.com/buffalo-rust-meetup/events/mrnrktygcgbdb/"><strong>Buffalo Rust User Group</strong></a></li>
</ul>
</li>
<li>2024-04-03 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul>
<li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/299507234/"><strong>Rust for Rustaceans Book Club: Chapter 4 - Error Handling</strong></a></li>
</ul>
</li>
<li>2024-04-03 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/299047892/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2024-04-09 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/298341660/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
</ul>
<h3 id="africa"><a class="toclink" href="#africa">Africa</a></h3>
<ul>
<li>2024-04-05 | Kampala, UG | <a href="https://www.eventbrite.com/o/rust-circle-kampala-65249289033">Rust Circle Kampala</a><ul>
<li><a href="https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763176587"><strong>Rust Circle Meetup</strong></a></li>
</ul>
</li>
</ul>
<h3 id="asia"><a class="toclink" href="#asia">Asia</a></h3>
<ul>
<li>2024-03-30 | New Delhi, IN | <a href="https://www.meetup.com/rustdelhi/">Rust Delhi</a><ul>
<li><a href="https://www.meetup.com/rustdelhi/events/299771772/"><strong>Rust Delhi Meetup #6</strong></a></li>
</ul>
</li>
</ul>
<h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3>
<ul>
<li>2024-03-13 | Paris, FR | <a href="https://www.eventbrite.com/o/paris-rustaceans-74289178383">Paris Rustaceans</a><ul>
<li><a href="https://www.eventbrite.fr/e/rust-meetup-in-paris-tickets-830340830777"><strong>Rust Meetup in Paris</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/">Reading Rust Workshop</a><ul>
<li><a href="https://www.meetup.com/reading-rust-workshop/events/298533419/"><strong>Reading Rust Meetup at Browns</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/299028814/"><strong>Hack Night</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/">Rust - Modern Systems Programming in Leipzig</a><ul>
<li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/299309224/"><strong>Rust Interactive Session</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Prague, CZ | <a href="https://www.meetup.com/rust-prague/events/299515169/">Rust Prague</a><ul>
<li><a href="https://www.meetup.com/rust-prague/events/299515169/"><strong>Rust Meetup @ Charles University</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Girona, ES | <a href="https://www.meetup.com/rust-girona/">Rust Girona</a><ul>
<li><a href="https://www.meetup.com/rust-girona/events/299172343/"><strong>Introduction to programming Microcontrollers with Rust</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/">Rust Lyon</a><ul>
<li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/299527560/"><strong>Rust Lyon Meetup #9</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Augsburg, DE | <a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/">Rust Meetup Augsburg</a><ul>
<li><a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/events/299354449/"><strong>Augsburg Rust Meetup #6</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Lille, FR | <a href="https://www.meetup.com/meetup-group-zgphbyet/">Rust Lille</a><ul>
<li><a href="https://www.meetup.com/meetup-group-zgphbyet/events/299295547/"><strong>Rust Lille #6: Du RSS et de L'ECS !</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Vienna, AT | <a href="https://www.meetup.com/rust-vienna/">Rust Vienna</a><ul>
<li><a href="https://www.meetup.com/rust-vienna/events/299682390/"><strong>Rust Vienna Meetup - March - Unsafe Rust</strong></a></li>
</ul>
</li>
<li>2024-03-23 | Stockholm, SE | <a href="https://www.google.com/calendar/event?eid=NWMzaDNqZDZjcG5oZXNwYzJycHRzMXI5djUgYXBkOXZtYmMyMmVnZW5tdHU1bDZjNWpiZmNAZw&ctz=America/Los_Angeles">Ferris' Fika Forum</a><ul>
<li><a href="https://www.google.com/calendar/event?eid=NWMzaDNqZDZjcG5oZXNwYzJycHRzMXI5djUgYXBkOXZtYmMyMmVnZW5tdHU1bDZjNWpiZmNAZw&ctz=America/Los_Angeles"><strong>Ferris' Fika Forum</strong></a> | <a href="https://maps.google.com/maps?hl=en&q=Starbucks%2C%20Hamngatan%2033%2C%20111%2047%20Stockholm%2C%20Sweden">Map</a></li>
</ul>
</li>
<li>2024-03-26 | Barcelona, ES + Virtual | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-26 - 2024-03-28 | London, UK | <a href="https://www.rustnationuk.com/">Rust Nation UK</a><ul>
<li><a href="https://www.rustnationuk.com/"><strong>Rust Nation 2024 - Conference</strong></a></li>
</ul>
</li>
<li>2024-03-28 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/299288961/"><strong>Rust and Tell</strong></a></li>
</ul>
</li>
<li>2024-04-10 | Cambridge, UK | <a href="https://www.meetup.com/cambridge-rust-meetup/">Cambridge Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/cambridge-rust-meetup/events/299730322/"><strong>Rust Meetup Reboot 3</strong></a></li>
</ul>
</li>
<li>2024-04-10 | Oslo, NO | <a href="https://www.meetup.com/rust-oslo/">Rust Oslo</a><ul>
<li><a href="https://www.meetup.com/rust-oslo/events/299488225/"><strong>Rust Hack'n'Learn at Kampen Bistro</strong></a></li>
</ul>
</li>
</ul>
<h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3>
<ul>
<li>2024-03-13 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299262009/"><strong>Northeastern Rust Lunch</strong></a></li>
</ul>
</li>
<li>2024-03-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul>
<li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/299186823/"><strong>Rust Hacking in Person</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/298631832/"><strong>Seattle Rust User Group Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-22 | Somerville, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299262036/"><strong>Somerville Union Square Rust Lunch, Mar 22</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Minneapolis, MN, US | <a href="https://www.meetup.com/minneapolis-rust-meetup/">Minneapolis Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/minneapolis-rust-meetup/events/299489274/"><strong>Minneapolis Rust: Getting started with Rust!</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/299220136/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Hawthorne, CA, US | <a href="https://freeform.co/">Freeform</a><ul>
<li><a href="https://freeformxrust.rsvpify.com/"><strong>Rust in the Physical World 🦀 Tech Talk Event at Freeform</strong></a></li>
</ul>
</li>
<li>2024-03-31 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299262047/"><strong>Beacon Hill Rust Lunch, Mar 31</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2>
<!--
Rust Jobs:
TWiR has stopped featuring individual job postings. You can read more about this change here:
https://github.com/rust-lang/this-week-in-rust/issues/3412
-->
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1arr8xi/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p>
<h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1>
<blockquote>
<p>In 10 years we went from “Rust will never replace C and C++” to “New C/C++ should not be written anymore, and you should use Rust”. Good job.</p>
</blockquote>
<p>– <a href="https://lobste.rs/s/dbwn98/secure_by_design_google_s_perspective_on#c_f6j9ok">dpc_pw on lobste.rs</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1547">Dennis Luxen</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1bec9sy/this_week_in_rust_538/">Discuss on r/rust</a></small></p>This Week in Rust 5372024-03-06T00:00:00-05:002024-03-06T00:00:00-05:00TWiR Contributorstag:this-week-in-rust.org,2024-03-06:/blog/2024/03/06/this-week-in-rust-537/<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send …</a></p><p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2>
<h3 id="official"><a class="toclink" href="#official">Official</a></h3>
<ul>
<li><a href="https://blog.rust-lang.org/2024/02/28/Clippy-deprecating-feature-cargo-clippy.html">Clippy: Deprecating <code>feature = "cargo-clippy"</code></a></li>
<li><a href="https://blog.rust-lang.org/2024/02/26/Windows-7.html">Updated baseline standards for Windows targets</a></li>
</ul>
<h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3>
<ul>
<li><a href="https://polar.sh/davidhewitt/posts/replacing-pyo3-api-pt1">Replacing PyO3's API without breaking everything downstream</a></li>
<li><a href="https://rust-analyzer.github.io/thisweek/2024/03/04/changelog-223.html">rust-analyzer changelog #223</a></li>
<li><a href="https://rust-gcc.github.io/2024/03/05/2024-02-monthly-report.html">rust-gcc February 2024 Monthly report</a></li>
<li><a href="https://godot-rust.github.io/dev/february-2024-update/">godot-rust February 2024 dev update</a></li>
<li><a href="https://www.fluvio.io/news/this-week-in-fluvio-0059/">Fluvio v0.11.5 Release Updates</a></li>
<li><a href="https://crates.io/crates/sshd-openpgp-auth">sshd-openpgp-auth version 0.3.0</a> and <a href="https://crates.io/crates/ssh-openpgp-auth">ssh-openpgp-auth version 0.2.2</a> as updates to the tooling providing <a href="https://codeberg.org/wiktor/ssh-openpgp-auth">OpenPGP based authentication for SSH host keys</a></li>
</ul>
<h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3>
<ul>
<li><a href="https://smallcultfollowing.com/babysteps/blog/2024/03/04/borrow-checking-without-lifetimes/">Borrow checking without lifetimes</a></li>
<li><a href="https://nnethercote.github.io/2024/03/06/how-to-speed-up-the-rust-compiler-in-march-2024.html">How to speed up the Rust compiler in March 2024</a></li>
<li><a href="https://nnethercote.github.io/2024/03/05/code-review-in-the-rust-compiler.html">Code review in the Rust compiler</a></li>
<li><a href="https://swatinem.de/blog/slow-thread-local/">Rust <code>thread_local!</code>s are surprisingly expensive</a></li>
<li><a href="https://blog.yoshuawuyts.com/building-an-async-runtime-for-wasi/">Designing an Async Runtime for WASI 0.2</a></li>
</ul>
<h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3>
<ul>
<li><a href="https://ferrous-systems.com/blog/rustls-borrow-checker-p3/">Storing borrowed data in trait objects</a></li>
<li><a href="https://blog.the-pans.com/rusts-early-vs-late-lifetime-binding/">Rust's early vs. late lifetime binding</a></li>
<li><a href="https://dev.to/check/how-moving-from-pandas-to-polars-made-me-write-better-code-without-writing-better-code-52bl">How moving from Pandas to Polars made me write better code without writing better code</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/02/29/fullstack-loco-rust">A Full Stack SaaS Template with Loco</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/02/29/async-rust">Async Rust in a Nutshell</a></li>
<li><a href="https://infinyon.com/blog/2024/02/fluvio-deep-causality-rs/">Real-time Streaming Analytics with Fluvio, DeepCausality, and Rust</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=Pr6T0Phjvgc">Modern All Rust Stack - Dioxus, Axum, Warp, SurrealDB</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=PK_FKzgPDWg">Serverless Data Pipelines in Rust by Michele Vigilante</a></li>
<li><a href="https://www.youtube.com/watch?v=8_Pj6q_mVQw">[FR] [video] Rust Lyon Meetup #8 - Impl Snake for Micro:bit — Cyril MARPAUD</a></li>
</ul>
<h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3>
<ul>
<li><a href="https://rustlang.cz/">Czech Rust community index</a></li>
<li><a href="https://mainmatter.com/blog/2024/02/29/launching-rustrover/">Launching RustRover: JetBrains’ Investment in Rust</a></li>
<li>[audio] <a href="https://ieni.dev/2024/03/%EF%B8%8F-rust-in-art-with-lisa-passing-rustship-6/">RustShip: Rust in Art with Lisa Passing</a></li>
</ul>
<h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2>
<p>This week's crate is <a href="https://github.com/alexpovel/srgn">srgn</a>, a mix of tr, sed, rip-grep and tree-sitter.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1294">Alex Povel</a> for the self-suggestion!</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h2 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h2>
<p>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:</p>
<ul>
<li><em>No RFCs issued a call for testing this week.</em></li>
</ul>
<p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code>
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.</p>
<h2 id="call-for-participation-projects-and-speakers"><a class="toclink" href="#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h2>
<h3 id="cfp-projects"><a class="toclink" href="#cfp-projects">CFP - Projects</a></h3>
<p>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!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
<ul>
<li><a href="https://github.com/build-trust/ockam/issues/7473">Ockam - Output for both <code>ockam project ticket</code> and <code>ockam project enroll</code> is improved, with support for <code>--output json</code></a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7471">Ockam - Syntax highlighting for fenced code blocks, in command help output, on Linux works</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/6706">Ockam - Command - refactor to use typed interfaces to implement commands for <code>kafka services</code></a></li>
<li><a href="https://github.com/google/zerocopy/issues/553">ZeroCopy - Don't generate warning when deriving on deprecated type</a></li>
<li><a href="https://github.com/google/zerocopy/issues/367">ZeroCopy - Test the output of zerocopy-derive</a></li>
<li><a href="https://github.com/google/zerocopy/issues/357">ZeroCopy - [CI] Check semver compatibility with all target platforms, not just the host platform</a></li>
<li><a href="https://github.com/google/zerocopy/issues/7">ZeroCopy - Inline many trait methods (in zerocopy and in derive-generated code)</a></li>
<li><a href="https://github.com/infinyon/fluvio/issues/3765">Fluvio - fvm switch fails on some systems with running local cluster</a></li>
<li><a href="https://github.com/infinyon/fluvio/issues/3810">Fluvio - Add new command fluvio cluster resume</a></li>
</ul>
<h3 id="cfp-speakers"><a class="toclink" href="#cfp-speakers">CFP - Speakers</a></h3>
<p>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.</p>
<ul>
<li><a href="https://oxidizeconf.com/">Oxidize 2024</a> <a href="https://pretalx.com/oxidize-berlin-2024/cfp">CFP</a> closes 2024-03-24 | Berlin, Germany | Event date: 2024-05-28 - 2024-05-30</li>
<li><a href="https://foundation.rust-lang.org/news/the-rustconf-2024-call-for-talk-proposals-is-open/">RustConf 2024</a> | CFP closes 2024-04-25 | Montreal, Canada | 2024-09-10</li>
<li><a href="https://www.papercall.io/eurorust-2024">EuroRust 2024</a>| CFP closes 2024-06-03 | Vienna, Austria & online | Event on 2024-10-10</li>
</ul>
<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a>.</p>
<h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2>
<p>488 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-02-27..2024-03-05">merged in the last week</a></p>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/121548"><code>ffi_unwind_calls</code>: treat RustIntrinsic like regular Rust calls</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121000"><code>pattern_analysis</code>: rework how we hide empty private fields</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121464">rustc: fix wasm64 metadata object files</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121927">add a proper <code>with_no_queries</code> to printing</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121703">add a way to add constructors for <code>rustc_type_ir</code> types</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120761">add initial support for DataFlowSanitizer</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121917">add new <code>pattern_complexity</code> attribute to add possibility to limit and check recursion in pattern matching</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121765">add platform-specific function to get the error number for HermitOS</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121730">add profiling support to AIX</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121753">add proper cfg to keep only one AlignmentEnum definition for different <code>target_pointer_widths</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121782">allow statics pointing to mutable statics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121665">always generate GEP i8 / ptradd for <code>struct</code> offsets</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121895">avoid collecting into vecs in some places</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121993">avoid using unnecessary queries when printing the query stack in panics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121528">consider middle segments of paths in <code>unused_qualifications</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121855">correctly generate item info of trait items</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120305">delete line if suggestion would replace it with an empty line</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121739">display short types for unimplemented trait</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121864">don't grab variances in <code>TypeRelating</code> relation if we're invariant</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121913">don't panic when waiting on poisoned queries</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120646">fix incorrect suggestion for uninitialized binding in pattern</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121226">fix issues in suggesting importing extern crate paths</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121680">fix link generation for foreign macro in jump to definition feature</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121824">implement missing ABI structures in StableMIR</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121792">improve renaming suggestion when item starts with underscore</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/111505">made <code>INVALID_DOC_ATTRIBUTES</code> lint deny by default</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121850">make <code>ZeroablePrimitive</code> trait unsafe</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121784">make the success arms of <code>if lhs || rhs</code> meet up in a separate block</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121716">match lowering: Lower bindings in a predictable order</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121750">match lowering: Separate the <code>bool</code> case from other integers in <code>TestKind</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121715">match lowering: pre-simplify or-patterns too</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121803">never say <code>"</code>Trait is implemented for {type error}<code>"</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121853">normalizes-to: handle negative impls</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121743">opportunistically resolve regions when processing region outlives obligations</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121735">pattern analysis: Don't panic when encountering unexpected constructor</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121987">pattern analysis: abort on arity mismatch</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121622">preserve same vtable pointer when cloning raw waker, to fix <code>Waker::will_wake</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121702">process alias-relate obligations in CoerceUnsized loop</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121912">properly deal with GATs when looking for method chains to point at</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121681">safe Transmute: Revise safety analysis</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121376">skip unnecessary comparison with half-open range patterns</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121695">split <code>rustc_type_ir</code> to avoid <code>rustc_ast</code> from depending on it</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121888">style library/core/src/error.rs</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121130">suggest moving definition if non-found <code>macro_rules!</code> is defined later</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121153">suggest removing superfluous semicolon when statements used as expression</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121892">the ordinary lowering of <code>thir::ExprKind::Let</code> is unreachable</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121596">use volatile access instead of <code>#[used]</code> for <code>on_tls_callback</code></a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3346">miri: add -Zmiri-track-alloc-accesses to readme and fix its wording</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3348">miri: log when we change the active thread, and fix logging for concurrency</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3338">miri: print thread name in miri error backtraces; add option to track read/write accesses</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3343">miri: tree Borrows diagnostic improvements</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3345">miri: windows: support getting the thread name</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121138">add ASCII fast-path for <code>char::is_grapheme_extended</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121001">perf: improve <code>write_fmt</code> to handle simple strings</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120051">add <code>display</code> method to <code>OsStr</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120291">have <code>String</code> use <code>SliceIndex</code> impls from <code>str</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121666">use the OS thread name by default if <code>THREAD_INFO</code> has not been initialized</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121933">add missing <code>get_name</code> for <code>wasm::thread</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121736">remove <code>Mutex::unlock</code> Function</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121768">implement unwind safety for Condvar on all platforms</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/110543">make <code>ReentrantLock</code> public</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/455">codegen_gcc: debuginfo: Add support for debuginfo, without scope support</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/462">codegen_gcc: switch to the new <code>set_special_chars_allowed_in_func_names</code> API</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13516">cargo add: Fallback to <code>rustc -v</code> when no MSRV is set</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13505">cargo toml: Warn on unset Edition</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13514">cargo msrv: Report all incompatible packages, not just a random one</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13499">cargo rustc: Always pass --edition to rustc</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13533">cargo toml: Don't warn on unset Edition if only 2015 is compatible</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13481">cargo: add all unit's children recursively for <code>doc.extern-map</code> option</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13340">cargo: add "-Zpublic-dependency" for public-dependency feature</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13438">cargo: silently ignore <code>cargo::rustc-check-cfg</code> to avoid MSRV annoyance when stabilizing <code>-Zcheck-cfg</code></a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13492">cargo: stabilize global cache data tracking</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121689">rustdoc: Prevent inclusion of whitespace character after <code>macro_rules</code> ident</a></li>
<li><a href="https://github.com/rust-lang/rustfmt/pull/6085">rustfmt: ensure space around binary exprs</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12409">clippy: <code>identity_op</code>: Fix duplicate diagnostics</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12400">clippy: <code>let_underscore_untyped</code>: fix false positive on async function</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12362">clippy: <code>map_entry</code>: Check insert expression for map use</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12413">clippy: <code>misrefactored_assign_op</code>: fix duplicate diagnostics</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12380">clippy: <code>redundant_closure_call</code>: don't lint closure originating from a macro</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12365">clippy: <code>unnecessary_cast</code>: avoid breaking precedence</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12077">clippy: add <code>assigning_clones</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12354">clippy: add <code>mixed_attributes_style</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12405">clippy: added msrv to threadlocal initializer check</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12341">clippy: check for try blocks in <code>question_mark</code> more consistently</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12406">clippy: dedup <code>std_instead_of_core</code> by using first segment span for uniqueness</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12423">clippy: don't emit "missing backticks" lint if the element is wrapped in <code><code></code> HTML tags</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12276">clippy: fix false positive in <code>threadlocal!</code> when falling back to <code>os_local</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12393">clippy: fix <code>derive_partial_eq_without_eq</code> false positive on trait projection</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12372">clippy: fix <code>nonminimal_bool</code> lint regression</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12010">clippy: fix <code>manual_memcpy</code> wrong indexing for multi dimensional arrays</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12419">clippy: handle plural acronyms in <code>doc_markdown</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12375">clippy: improve <code>is_lint_level</code> code</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12363">clippy: lower <code>bstr</code> version requirement to <code>1.6.0</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12403">clippy: pointers cannot be converted to integers at compile time</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/15938">rust-analyzer: add hover display for trait assoc items</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16719">rust-analyzer: add basic support for native debug</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16723">rust-analyzer: autocomplete constants inside format strings</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16752">rust-analyzer: don't destructure <code>struct</code> with no public fields</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16727">rust-analyzer: don't highlight related assoc items of super traits</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16696">rust-analyzer: goto definition for <code>deref_mut</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16709">rust-analyzer: goto definition for <code>index_mut</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16759">rust-analyzer: goto-definition for constants inside range pattern</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16702">rust-analyzer: ignore generic arguments in intra doc link path resolution</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16757">rust-analyzer: put style lints behind disabled-by-default config</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16693">rust-analyzer: fix rust-project.json projects not preferring sysroot rustc</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16630">rust-analyzer: fix wrong closure kind deduction for closures with predicates</a></li>
<li><a href="https://github.com/rust-lang/futures-rs/pull/2832">futures: parse rhs of <code>select!</code> arms using match-arm rules</a></li>
</ul>
<h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3>
<p>A bunch of noise this week which has been dropped from the report (but may be
present in the summary figures). As a result, the week is pretty busy in amount
of changes, but the net effect is nearly neutral to a slight regression for
most workloads.</p>
<p>Triage done by <strong>@simulacrum</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=71ffdf7ff7ac6df5f9f64de7e780b8345797e8a0&end=41d97c8a5dea2731b0e56fe97cd7cb79e21cff79&absolute=false&stat=instructions%3Au">71ffdf7..41d97c8</a></p>
<p>2 Regressions, 0 Improvements, 10 Mixed; 4 of them in rollups
51 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2024-03-05.md">Full report here</a></p>
<h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3537">RFC: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies</a></li>
</ul>
<h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3543">RFC: patchable-function-entry</a></li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3287">RFC: Add native code coverage support in Cargo</a></li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3243">RFC: Packages as (optional) namespaces</a></li>
</ul>
<h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs">Tracking Issues & PRs</a></h4>
<h5 id="rust"><a class="toclink" href="#rust"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Rust</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/99969">alloc: implement <code>FromIterator</code> for <code>Box<str></code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/116891">rework opaque type region inference</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114655">Make <code>impl<Fd: AsFd></code> impl take <code>?Sized</code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/28937">Tracking issue for Allow a re-export for <code>main</code> (RFC 1260)</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/115141">Update Windows platform support </a></li>
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/121602">Resolve region bounds from components of type projection</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121346">Propagate temporary lifetime extension into if and match.</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/119849">more eagerly instantiate binders</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/121250"><code>E0492: borrow of an interior mutable value may end up in the final value</code> during const eval when no inner mutability is involved</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121201">align_offset, align_to: no longer allow implementations to spuriously fail to align</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/116016">Soft-destabilize <code>RustcEncodable</code> & <code>RustcDecodable</code>, remove from prelude in next edition</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/121403"><code>impl From<TryReserveError></code> for <code>io::Error</code></a></li>
</ul>
<h5 id="cargo"><a class="toclink" href="#cargo"><a href="https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Cargo</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/cargo/issues/10554">Tracking Issue for rustc <code>--check-cfg</code> integration</a></li>
</ul>
<h4 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h4>
<ul>
<li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3579">Public Key Infrastructure for Rust Project</a></li>
</ul>
<h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2>
<p>Rusty Events between 2024-03-06 - 2024-04-03 🦀</p>
<h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3>
<ul>
<li>2024-03-06 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/rust-dublin/">Rust Dublin</a><ul>
<li><a href="https://www.meetup.com/rust-dublin/events/299358988/"><strong>An intro to <code>nom</code>, parsing made easy for Rustaceans</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/299047891/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298368787/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/298341582/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Hybrid (Virtual + In-person) Munich, DE | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-13 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul>
<li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/299505703/"><strong>Rust for Rustaceans Book Club: Chapter 3 - Designing Interfaces</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">OpenTechSchool Berlin</a><ul>
<li><a href="https://www.meetup.com/opentechschool-berlin/events/298406445/"><strong>Web Frontend Co-Learning (online)</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457903/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a> | <a href="https://berline.rs/2024/03/14/rust-hack-and-learn.html"><strong>Mirror: Berline.rs page</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nüremberg</a><ul>
<li><a href="https://www.meetup.com/rust-noris/events/297945252/"><strong>Rust Nürnberg online</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Virtual (Washinigton, DC, US) | <a href="https://www.meetup.com/rustdc/">Rust DC</a><ul>
<li><a href="https://www.meetup.com/rustdc/events/299335006/"><strong>Mid-month Rustful</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Virtual (Vancouver, BC, CA)| <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/292763494/"><strong>Rust Study/Hack/Hang-out</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298368793/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Virtual + In Person (Barcelona, ES) | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a> - <a href="https://www.youtube.com/@bcnrust">Stream</a></li>
</ul>
</li>
<li>2024-03-28 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457904/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a></li>
</ul>
</li>
<li>2024-04-02 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/">Buffalo Rust</a><ul>
<li><a href="https://www.meetup.com/buffalo-rust-meetup/events/mrnrktygcgbdb/"><strong>Buffalo Rust User Group</strong></a></li>
</ul>
</li>
<li>2024-04-03 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul>
<li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/299507234/"><strong>Rust for Rustaceans Book Club: Chapter 4 - Error Handling</strong></a></li>
</ul>
</li>
<li>2024-04-03 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/299047892/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
</ul>
<h3 id="asia"><a class="toclink" href="#asia">Asia</a></h3>
<ul>
<li>2024-03-09 | Karnataka, Bengaluru, IN | <a href="https://hasgeek.com/rustbangalore">Rust Bangalore</a><ul>
<li><a href="https://hasgeek.com/rustbangalore/march-2024-rustacean-meetup/"><strong>March 2024 Rustacean Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Tokyo, JP | <a href="https://www.meetup.com/tokyo-rust-meetup/">Tokyo Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/tokyo-rust-meetup/events/299607311/"><strong>Building the Isograph Compiler in Rust</strong></a></li>
</ul>
</li>
</ul>
<h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3>
<ul>
<li>2024-03-06 | Cologne / Köln, DE | <a href="https://www.meetup.com/rustcologne/">Rust Cologne</a><ul>
<li><a href="https://www.meetup.com/rustcologne/events/299530888/"><strong>Macros by simple Examples</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Zürich, CH | <a href="https://www.meetup.com/rust-zurich/">Rust Zürisee</a><ul>
<li><a href="https://www.meetup.com/rust-zurich/events/299380190/"><strong>How to (partial) Migration - March Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/">Copenhagen Rust Community</a><ul>
<li><a href="https://www.meetup.com/copenhagen-rust-community/events/299451605/"><strong>Rust Hack Night #3: Embedded on Espressif's ESP32C3</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-13 | Paris, FR | <a href="https://www.eventbrite.com/o/paris-rustaceans-74289178383">Paris Rustaceans</a><ul>
<li><a href="https://www.eventbrite.fr/e/rust-meetup-in-paris-tickets-830340830777"><strong>Rust Meetup in Paris</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/">Reading Rust Workshop</a><ul>
<li><a href="https://www.meetup.com/reading-rust-workshop/events/298533419/"><strong>Reading Rust Meetup at Browns</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/299028814/"><strong>Hack Night</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/">Rust - Modern Systems Programming in Leipzig</a><ul>
<li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/299309224/"><strong>Rust Interactive Session</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Prague, CZ | <a href="https://www.meetup.com/rust-prague/events/299515169/">Rust Prague</a><ul>
<li><a href="https://www.meetup.com/rust-prague/events/299515169/"><strong>Rust Meetup @ Charles University</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Girona, ES | <a href="https://www.meetup.com/rust-girona/">Rust Girona</a><ul>
<li><a href="https://www.meetup.com/rust-girona/events/299172343/"><strong>Introduction to programming Microcontrollers with Rust</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/">Rust Lyon</a><ul>
<li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/299527560/"><strong>Rust Lyon Meetup #9</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Augsburg, DE | <a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/">Rust Meetup Augsburg</a><ul>
<li><a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/events/299354449/"><strong>Augsburg Rust Meetup #6</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Lille, FR | <a href="https://www.meetup.com/meetup-group-zgphbyet/">Rust Lille</a><ul>
<li><a href="https://www.meetup.com/meetup-group-zgphbyet/events/299295547/"><strong>Rust Lille #6: Du RSS et de L'ECS !</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Barcelona, ES + Virtual | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-27 - 2024-03-28 | London, UK | <a href="https://www.rustnationuk.com/">Rust Nation UK</a><ul>
<li><a href="https://www.rustnationuk.com/"><strong>Rust Nation 2024 - Conference</strong></a></li>
</ul>
</li>
<li>2024-03-28 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/299288961/"><strong>Rust and Tell</strong></a></li>
</ul>
</li>
</ul>
<h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3>
<ul>
<li>2024-03-07 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/mv-rust-meetup/events/299043793/"><strong>Rust Meetup at Hacker Dojo</strong></a></li>
</ul>
</li>
<li>2024-03-12 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/">Rust NYC</a><ul>
<li><a href="https://www.meetup.com/rust-nyc/events/299619615/"><strong>Rust NYC Monthly Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-13 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299262009/"><strong>Northeastern Rust Lunch</strong></a></li>
</ul>
</li>
<li>2024-03-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul>
<li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/299186823/"><strong>Rust Hacking in Person</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/298631832/"><strong>Seattle Rust User Group Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/299220136/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Hawthorne, CA, US | <a href="https://freeform.co/">Freeform</a><ul>
<li><a href="https://freeformxrust.rsvpify.com/"><strong>Rust in the Physical World 🦀 Tech Talk Event at Freeform</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2>
<!--
Rust Jobs:
TWiR has stopped featuring individual job postings. You can read more about this change here:
https://github.com/rust-lang/this-week-in-rust/issues/3412
-->
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1arr8xi/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p>
<h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1>
<blockquote>
<p>My experience with C++ is that, as I’ve become more of an expert in the language, I’ve become more disillusioned with it. It’s incredibly hard to do things that you should be able to do in software. And, it’s a huge problem for me to constantly be helping other engineers debug the same bugs over and over. It’s always another use after free. I’ve probably debugged 300 of those. [...]</p>
<p>In our experience using the Rust ecosystem for almost three years now, I don't think we found a bug in a single Rust crate that we've pulled off the shelf. We found a bug in one of them and that was a Rust crate wrapping a C library and the bug was in the C library. The software quality that you kind of get for free is amazing.</p>
</blockquote>
<p>– <a href="https://filtra.io/rust-amp-feb-24">Carter Schultz interviewed on the filtra blog</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1543">George Barwood</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1b8o0ms/this_week_in_rust_537/">Discuss on r/rust</a></small></p>This Week in Rust 5362024-02-28T00:00:00-05:002024-02-28T00:00:00-05:00TWiR Contributorstag:this-week-in-rust.org,2024-02-28:/blog/2024/02/28/this-week-in-rust-536/<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send …</a></p><p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2>
<h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3>
<ul>
<li><a href="https://servo.org/blog/2024/02/28/gamepads-font-fallback-space-jam/">This month in Servo: gamepad support, font fallback, Space Jam, and more!</a></li>
<li><a href="https://bytecodealliance.org/articles/jco-1.0">Announcing Jco 1.0</a></li>
<li><a href="https://www.lpalmieri.com/posts/this-month-in-pavex-09/">This month in Pavex, #9</a></li>
<li><a href="https://argmin-rs.org/blog/version-v0-10-0/">argmin 0.10.0 - a Rust crate for numerical optimization</a></li>
</ul>
<h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3>
<ul>
<li><a href="https://maximkaaa.github.io/galileo/blog/posts/text_rendering_design/">Text labels rendering on a map with Rust - research and design</a></li>
<li><a href="https://devclass.com/2024/02/20/rust-developers-fear-language-is-getting-too-complex-and-prefer-bug-fixes-to-new-features/">Rust developers fear language is getting too complex and prefer bug fixes to new features</a></li>
<li><a href="https://www.codethink.co.uk/articles/2024/distributed_system_rust/">Lessons learnt from building a distributed system in Rust</a></li>
<li><a href="https://filtra.io/rust-amp-feb-24">How Rust Could Change Robotics</a></li>
<li><a href="https://without.boats/blog/asynchronous-clean-up/">Asynchronous clean-up</a></li>
<li><a href="https://apollolabsblog.hashnode.dev/edge-iot-with-rust-on-esp-ping">Edge IoT with Rust on ESP: Ping!</a></li>
<li><a href="https://apollolabsblog.hashnode.dev/esp-embedded-rust-command-line-interface">ESP Embedded Rust: Command Line Interface</a></li>
<li><a href="https://apollolabsblog.hashnode.dev/esp-embedded-rust-ping-cli-app-part-2">ESP Embedded Rust: Ping CLI App Part 2</a></li>
<li><a href="https://crustc.com/string-to-int-in-rust/">Convert a String to int in Rust</a></li>
<li><a href="https://asyncmove.com/blog/2024/02/mastering-manuallydropt-a-guide-to-explicit-resource-management-in-rust/">Mastering <code>ManuallyDrop<T></code> - A Guide to Explicit Resource Management in Rust</a></li>
<li><a href="https://hegdenu.net/posts/rust-but-async/">Rust, but async</a></li>
</ul>
<h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3>
<ul>
<li><a href="https://www.jacobelder.com/2024/02/26/rust-matching-and-iterators.html">Matching and iterators in Rust</a></li>
<li><a href="https://dev-state.com/posts/error_handling/">Practical guide to Error Handling in Rust</a></li>
<li><a href="https://tweedegolf.nl/en/blog/114/building-an-async-runtime-with-mio">Building an Async Runtime with mio</a></li>
<li>[HE] [video] <a href="https://www.youtube.com/playlist?list=PLm2NBp4tb5F3QZNMW6bEt3IoAQAu2LAPs">Rust Course</a></li>
</ul>
<h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3>
<ul>
<li><a href="https://blog.logrocket.com/guide-using-tensorflow-rust/">Guide to using TensorFlow in Rust</a></li>
<li><a href="https://justinpombrio.net/2024/02/23/a-twist-on-Wadlers-printer.html">A Twist on Wadler's Printer</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/02/22/api-rate-limiting-rust">Implementing API Rate Limiting in Rust</a></li>
<li><a href="https://bencher.dev/learn/benchmarking/rust/iai/">How to benchmark Rust code with Iai</a></li>
<li><a href="https://tweedegolf.nl/en/blog/115/sequential-storage-efficiently-store-data-in-flash">Sequential-storage: efficiently store data in flash</a></li>
<li>[audio] <a href="https://corrode.dev/podcast/s01e06-sentry/">Sentry - Rust in Production Podcast</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=-gkvOoxgp8E">A First Look at Lifetimes in Rust</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=VH4z60akQuM">Firmware for an ESP32 to read from a noise sensor in Rust</a></li>
</ul>
<h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2>
<p>This week's crate is <a href="https://github.com/orottier/web-audio-api-rs">web-audio-api-rs</a>, a Rust implementation of the Web Audio API for use <em>outside</em> the browser.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1292">Otto Rottier</a> for the self-suggestion!</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h2 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h2>
<p>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:</p>
<ul>
<li><em>No RFCs issued a call for testing this week.</em></li>
</ul>
<p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code>
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.</p>
<h2 id="call-for-participation-projects-and-speakers"><a class="toclink" href="#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h2>
<h3 id="cfp-projects"><a class="toclink" href="#cfp-projects">CFP - Projects</a></h3>
<p>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!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
<ul>
<li><a href="https://github.com/juspay/hyperswitch/issues/3749"> Hyperswitch - [FEATURE] : add <code>offset</code> field to disputes list</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/3748"> Hyperswitch - [FEATURE]: add<code>offset</code> field to mandates list</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7625">Ockam - <code>ockam node create --identity X</code> should fail if <code>X</code> doesn't exist</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7478">Ockam - Output for <code>ockam project ticket</code> is improved and information is not opaque</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7473">Ockam - Output for both <code>ockam project ticket</code> and <code>ockam project enroll</code> is improved, with support for <code>--output json</code></a></li>
<li><a href="https://github.com/google/zerocopy/issues/953">ZeroCopy - In zerocopy-derive UI tests, detect whether we're building with <code>RUSTFLAGS='-Wwarnings'</code></a></li>
</ul>
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p>
<h3 id="cfp-speakers"><a class="toclink" href="#cfp-speakers">CFP - Speakers</a></h3>
<p>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.</p>
<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a>.</p>
<h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2>
<p>430 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-02-20..2024-02-27">merged in the last week</a></p>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/120393">Avoid non-local definitions in functions</a> (RFC <a href="https://rust-lang.github.io/rfcs/3373-avoid-nonlocal-definitions-in-fns.html">#3373</a>)</li>
<li><a href="https://github.com/rust-lang/rust/pull/120588">wasm: store rlib metadata in wasm object files</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121435">account for RPITIT in E0310 explicit lifetime constraint suggestion</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121617">actually use the right closure kind when checking async Fn goals</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121114">add <code>#[rustc_no_mir_inline]</code> for standard library UB checks</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121482">allow for a missing <code>adt_def</code> in <code>NamePrivacyVisitor</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119106">avoid generalization inside of aliases</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121493">by changing some attributes to <code>only_local,</code> reducing encoding attributes in the crate metadate</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121628">do not const prop unions</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121470">don't ICE on anonymous <code>struct</code> in <code>enum</code> variant</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121344">expand weak alias types before collecting constrained/referenced late bound regions + refactorings</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121427">fix panic when compiling <code>Rocket</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121309">make intrinsic fallback bodies cross-crate inlineable</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121396">make it possible for outside crates to inspect a <code>mir::ConstValue</code> with the interpreter</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120805">make non-PartialEq-typed consts as patterns a hard error</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120742">mark <code>min_exhaustive_patterns</code> as complete</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121393">match lowering: Introduce a <code>TestCase enum</code> to replace most matching on <code>PatKind</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120904">match lowering: eagerly simplify match pairs</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121172">match lowering: simplify empty candidate selection</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121175">match lowering: test one or pattern at a time</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121391">Fix liveness analysis in the presence of never patterns</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120598">no need to <code>validate_alias_bound_self_from_param_env</code> in <code>assemble_alias_bound_candidates</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121409">prevent cycle in implied predicates computation</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121515">promotion: don't promote <code>int::MIN / -1</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121651">properly emit <code>expected ;</code> on <code>#[attr] expr</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120730">provide suggestions through <code>rustc_confusables</code> annotations</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121277">refactor trait implementations in <code>core::convert::num</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120840">split Diagnostics for Uncommon Codepoints: Add Individual Identifier Types</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121044">support async trait bounds in macros</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121392">unify dylib loading between proc macros and codegen backends</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121471">when encountering <code><&T as Clone>::clone(x)</code> because <code>T: Clone</code>, suggest <code>#[derive(Clone)]</code></a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3328">miri: /miri many-seeds: support <code>MIRI_SEED_END</code> to control the end of the seed range</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3312">miri: add "cargo miri clean" command</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3316">miri: windows miri-script execution ergonomics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120650">use <code>br</code> instead of a conditional when switching on a constant boolean</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119590">stabilize <code>cfg_target_abi</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/117174">improve UEFI stdio</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121337">windows: use ProcessPrng for random keys</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121225">require <code>simd_insert, simd_extract</code> indices to be constants</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119536">make <code>Barrier::new()</code> const</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/117107">implement <code>MappedMutexGuard</code>, <code>MappedRwLockReadGuard</code>, and <code>MappedRwLockWriteGuard</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120718">add "algebraic" fast-math intrinsics, based on fast-math ops that cannot return poison</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/118634">remove useless <code>'static</code> bounds on <code>Box</code> allocator</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121646">mpsc: fix race between block initialization and receiver disconnection</a></li>
<li><a href="https://github.com/rust-lang/futures-rs/pull/2830">futures: add <code>'static</code> bound to <code>waker_ref</code></a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13281">cargo add: Improve error when adding registry packages while vendored</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13463">cargo: Control clap colors through config</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13479">cargo: Respect <code>CARGO_TERM_COLOR</code> in '--list' and '-Zhelp'</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13480">cargo: error messages when collecting workspace members now mention the workspace root location</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13197">cargo: support <code>target.<triple>.rustdocflags</code> officially</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121490">rustdoc: include crate name in links for local primitives</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12355">clippy: <code>box_default</code>: preserve required path segments</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/11136">clippy: <code>read_line_without_trim</code>: detect string literal comparison and <code>.ends_with()</code> calls</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12303">clippy: add <code>unnecessary_clippy_cfg</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12259">clippy: add new <code>multiple_bound_locations</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12339">clippy: add new <code>unnecessary_get_then_check</code> lint</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12333">clippy: allow <code>unused_imports,</code> and <code>unused_import_braces</code> on <code>use</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12317">clippy: don't lint <code>infinite_loop</code> in external or proc macros</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12336">clippy: make <code>redundant_guards</code> take constness into account</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12322">clippy: <code>unused_unit</code>: be careful with expressions with attributes</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12342">clippy: new lint: <code>empty docs</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12324">clippy: extend <code>unnecessary_to_owned</code> to handle <code>Borrow</code> trait in map types</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12126">clippy: fix sign-handling bugs and false negatives in <code>cast_sign_loss</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12116">clippy: fix suggestion error in <code>useless_vec</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12323">clippy: fix <code>no_effect_underscore_binding</code> firing on ignored parameters of async fns</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12308">clippy: look for <code>implied_bounds_in_impls</code> in more positions</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12260">clippy: take lifetime extension into account in <code>ref_as_ptr</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16651">rust-analyzer: add assist for filling fields by replacing ellipsis in record syntax</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16654">rust-analyzer: add short flag -V for consistency with other rust tooling</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16687">rust-analyzer: add "make tuple" tactic to term search</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16647">rust-analyzer: <code>replace_filter_map_next_with_find_map</code> shouldn't work for dyn trait</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16684">rust-analyzer: don't panic on synthetic syntax in inference diagnostics</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16691">rust-analyzer: fix completions panicking with certain macro setups</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16645">rust-analyzer: fix deadlock in <code>recreate_crate_graph <-> file_line_index</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16679">rust-analyzer: fix modules in blocks not resolving in ide layer</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16637">rust-analyzer: fix proc-macro server not accounting for string delimiters correctly</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16621">rust-analyzer: fix recompiles due to <code>RUSTC_BOOTSTRAP</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16678">rust-analyzer: panic when inlining callsites inside macros' parameters</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16669">rust-analyzer: merge <code>BorrowKind::Unique</code> into <code>BorrowKind::Mut</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16555">rust-analyzer: speed up Method Completions By Taking Advantage of Orphan Rules</a></li>
</ul>
<h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3>
<p>A rare week where regressions out powered improvements to make the compiler roughly half a percent slower on average on nearly 100 benchmarks. Some regressions have fixes in the pipeline, but some remain elusive or were introduced to address correctness issues.</p>
<p>Triage done by <strong>@rylev</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=5af2130440c198afefbe5b8099342057cf272ef4&end=71ffdf7ff7ac6df5f9f64de7e780b8345797e8a0&absolute=false&stat=instructions%3Au">5af21304..71ffdf7f</a></p>
<p><strong>Summary</strong>:</p>
<table>
<thead>
<tr>
<th align="center">(instructions:u)</th>
<th align="center">mean</th>
<th align="center">range</th>
<th align="center">count</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">Regressions ❌ <br /> (primary)</td>
<td align="center">1.0%</td>
<td align="center">[0.2%, 4.4%]</td>
<td align="center">69</td>
</tr>
<tr>
<td align="center">Regressions ❌ <br /> (secondary)</td>
<td align="center">1.4%</td>
<td align="center">[0.2%, 4.9%]</td>
<td align="center">66</td>
</tr>
<tr>
<td align="center">Improvements ✅ <br /> (primary)</td>
<td align="center">-1.1%</td>
<td align="center">[-3.3%, -0.2%]</td>
<td align="center">28</td>
</tr>
<tr>
<td align="center">Improvements ✅ <br /> (secondary)</td>
<td align="center">-0.6%</td>
<td align="center">[-1.5%, -0.2%]</td>
<td align="center">33</td>
</tr>
<tr>
<td align="center">All ❌✅ (primary)</td>
<td align="center">0.4%</td>
<td align="center">[-3.3%, 4.4%]</td>
<td align="center">97</td>
</tr>
</tbody>
</table>
<p>4 Regressions, 6 Improvements, 5 Mixed; 2 of them in rollups
58 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/0528b31d7dad7c98af395e29271591740e984e16/triage/2024-02-27.md">Full report here</a></p>
<h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><em>No RFCs were approved this week.</em></li>
</ul>
<h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4>
<ul>
<li><em>No RFCs entered Final Comment Period this week.</em></li>
</ul>
<h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs">Tracking Issues & PRs</a></h4>
<h5 id="rust"><a class="toclink" href="#rust"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Rust</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/118879">Lint singleton gaps after exclusive ranges</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/76014">Tracking Issue for slice::split_at_unchecked() and split_at_mut_unchecked()</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/120257">Tracking Issue for generic <code>NonZero</code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111505">Made <code>INVALID_DOC_ATTRIBUTES</code> lint deny by default</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/117215">Tracking Issue for ARM CRC32 intrinsics</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/100824">use <code>confstr(_CS_DARWIN_USER_TEMP_DIR, ...)</code> as a <code>TMPDIR</code> fallback on Darwin</a></li>
</ul>
<h4 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h4>
<ul>
<li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3577">RFC: RArrow Dereference for Pointer Ergonomics</a></li>
</ul>
<h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2>
<p>Rusty Events between 2024-02-28 - 2024-03-27 🦀</p>
<h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3>
<ul>
<li>2024-02-29 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457901/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a> | <a href="https://berline.rs/2024/02/29/rust-hack-and-learn.html"><strong>Mirror: Berline.rs page</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298372724/"><strong>Surfing the Rusty Wireless Waves with the ESP32-C3 Board</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/rust-dublin/">Rust Dublin</a><ul>
<li><a href="https://www.meetup.com/rust-dublin/events/299358988/"><strong>An intro to <code>nom</code>, parsing made easy for Rustaceans</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/299047891/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298368787/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/298341582/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Hybrid (Virtual + In-person) Munich, DE | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">OpenTechSchool Berlin</a><ul>
<li><a href="https://www.meetup.com/opentechschool-berlin/events/298406445/"><strong>Web Frontend Co-Learning (online)</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457903/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a> | <a href="https://berline.rs/2024/03/14/rust-hack-and-learn.html"><strong>Mirror: Berline.rs page</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nüremberg</a><ul>
<li><a href="https://www.meetup.com/rust-noris/events/297945252/"><strong>Rust Nürnberg online</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/298631832/"><strong>Seattle Rust User Group Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Virtual + In Person (Barcelona, ES) | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a> - <a href="https://www.youtube.com/@bcnrust">Stream</a></li>
</ul>
</li>
</ul>
<h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3>
<ul>
<li>2024-02-29 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/299190389/"><strong>Rust and Tell - Season start 2024</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/">Copenhagen Rust Community</a><ul>
<li><a href="https://www.meetup.com/copenhagen-rust-community/events/299353844/"><strong>Rust Meetup #44 sponsored by Bang & Olufsen</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Zürich, CH | <a href="https://www.meetup.com/rust-zurich/">Rust Zürisee</a><ul>
<li><a href="https://www.meetup.com/rust-zurich/events/299380190/"><strong>How to (partial) Migration - March Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-13 | Paris, FR | <a href="https://www.eventbrite.com/o/paris-rustaceans-74289178383">Paris Rustaceans</a><ul>
<li><a href="https://www.eventbrite.fr/e/rust-meetup-in-paris-tickets-830340830777"><strong>Rust Meetup in Paris</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/">Reading Rust Workshop</a><ul>
<li><a href="https://www.meetup.com/reading-rust-workshop/events/298533419/"><strong>Reading Rust Meetup at Browns</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/299028814/"><strong>Hack Night</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/">Rust - Modern Systems Programming in Leipzig</a><ul>
<li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/299309224/"><strong>Rust Interactive Session</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Girona, ES | <a href="https://www.meetup.com/rust-girona/">Rust Girona</a><ul>
<li><a href="https://www.meetup.com/rust-girona/events/299172343/"><strong>Introduction to programming Microcontrollers with Rust</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Augsburg, DE | <a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/">Rust Meetup Augsburg</a><ul>
<li><a href="https://www.meetup.com/de-DE/rust-meetup-augsburg/events/299354449/"><strong>Augsburg Rust Meetup #6</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Lille, FR | <a href="https://www.meetup.com/meetup-group-zgphbyet/">Rust Lille</a><ul>
<li><a href="https://www.meetup.com/meetup-group-zgphbyet/events/299295547/"><strong>Rust Lille #6: Du RSS et de L'ECS !</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Barcelona, ES + Virtual | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-26, 2024-03-28 | London, UK | <a href="https://www.rustnationuk.com/">Rust Nation UK</a><ul>
<li><a href="https://www.rustnationuk.com/"><strong>Rust Nation 2024</strong></a></li>
</ul>
</li>
</ul>
<h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3>
<ul>
<li>2024-02-28 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/297380841/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2024-02-28 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/">Deep Dish Rust</a><ul>
<li><a href="https://www.meetup.com/deep-dish-rust/events/299284926/"><strong>Rust Happy Hour</strong></a></li>
</ul>
</li>
<li>2024-03-04 | Cambridge, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299261953/"><strong>Central Cambridge Rust Lunch</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/mv-rust-meetup/events/299043793/"><strong>Rust Meetup at Hacker Dojo</strong></a></li>
</ul>
</li>
<li>2024-03-13 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299262009/"><strong>Northeastern Rust Lunch</strong></a></li>
</ul>
</li>
<li>2024-03-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul>
<li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/299186823/"><strong>Rust Hacking in Person</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/299220136/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2024-03-27 | Hawthorne, CA, US | <a href="https://freeform.co/">Freeform</a><ul>
<li><a href="https://freeformxrust.rsvpify.com/"><strong>Rust in the Physical World 🦀 Tech Talk Event at Freeform</strong></a></li>
</ul>
</li>
</ul>
<h3 id="oceania"><a class="toclink" href="#oceania">Oceania</a></h3>
<ul>
<li>2024-02-29 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/">Rust Brisbane</a><ul>
<li><a href="https://www.meetup.com/rust-brisbane/events/299304438/"><strong>February Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-05 | Auckland, NZ | <a href="https://www.meetup.com/rust-akl/">Rust AKL</a><ul>
<li><a href="https://www.meetup.com/rust-akl/events/299158887/"><strong>Rust AKL: Introduction to Embedded Rust + The State of Rust UI</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2>
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1arr8xi/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p>
<h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1>
<blockquote>
<p>That would take 18 million terabytes of RAM. You don't have that much memory.</p>
</blockquote>
<p>– <a href="https://users.rust-lang.org/t/what-is-max-array-size/107058/4">Alice Ryhl answering "What is MAX array size" on rust-users</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1536">Zeroexcuses</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1b2n4bw/this_week_in_rust_536/">Discuss on r/rust</a></small></p>This Week in Rust 5352024-02-21T00:00:00-05:002024-02-21T00:00:00-05:00TWiR Contributorstag:this-week-in-rust.org,2024-02-21:/blog/2024/02/21/this-week-in-rust-535/<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send …</a></p><p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="https://www.rust-lang.org/">Rust</a> 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 <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>.
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
<h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2>
<h3 id="official"><a class="toclink" href="#official">Official</a></h3>
<ul>
<li><a href="https://blog.rust-lang.org/2024/02/19/2023-Rust-Annual-Survey-2023-results.html">2023 Annual Rust Survey Results</a></li>
<li><a href="https://blog.rust-lang.org/2024/02/21/Rust-participates-in-GSoC-2024.html">Rust participates in Google Summer of Code 2024</a></li>
<li><a href="https://blog.rust-lang.org/inside-rust/2024/02/19/leadership-council-repr-selection.html">Leadership Council March Representative Selections</a></li>
</ul>
<h3 id="foundation"><a class="toclink" href="#foundation">Foundation</a></h3>
<ul>
<li><a href="https://foundation.rust-lang.org/news/save-the-date-rustconf-2024-september-10-13/">Save the Date: RustConf 2024 – September 10-13</a></li>
<li><a href="https://foundation.rust-lang.org/news/second-security-initiative-report-details-rust-security-advancements/">Second Security Initiative Report Details Rust Security Advancements</a></li>
</ul>
<h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3>
<ul>
<li><a href="https://bevyengine.org/news/bevy-0-13/">Bevy 0.13</a></li>
<li><a href="https://joonaa.dev/blog/05/bevy-xpbd-0-4-0">Bevy XPBD 0.4: Collider Agnosticism, Layer Rework, and Bevy 0.13</a></li>
<li><a href="https://astral.sh/blog/uv">uv: Python packaging in Rust</a></li>
<li><a href="https://git-cliff.org/blog/2.0.0/">git-cliff: What's new in 2.0.0? (highly customizable changelog generator)</a></li>
<li><a href="https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-30">rustc_codegen_gcc: Progress Report #30</a></li>
<li><a href="https://blog.jetbrains.com/rust/2024/02/14/q4-2023-features-retrospective/">RustRover Q4 2023 Feature Updates Retrospective</a></li>
<li><a href="https://rust-analyzer.github.io/thisweek/2024/02/19/changelog-221.html">rust-analyzer changelog #221</a></li>
<li><a href="https://www.reddit.com/r/rust/comments/1amjknw/anouncing_stabby_300_and_rustconf_video_available/">Anouncing Stabby 3.0</a></li>
<li><a href="https://argmin-rs.org/blog/argmin-testfunctions-v0-2-0/">argmin_testfunctions 0.2.0: test functions for optimization problems in Rust and Python</a></li>
<li><a href="https://github.com/emberian/vscode-rustup">vscode-rustup released: interface with rustup as a VSCode extension</a></li>
<li><a href="https://codeberg.org/openpgp-card/openpgp-card-tools">OpenPGP-card-tools 0.10.0 released. The project provides the <code>oct</code> commandline tool for inspecting, configuring and using OpenPGP card devices such as Nitrokey or Yubikey.</a></li>
<li><a href="https://www.timeplus.com/post/rust-client-for-proton">Rust Client for Timeplus Proton SQL Streaming</a></li>
</ul>
<h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3>
<ul>
<li><a href="https://without.boats/blog/futures-unordered/">FuturesUnordered and the order of futures</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/02/15/best-rust-tooling">Rust Tooling: 8 tools that will increase your productivity</a></li>
<li><a href="https://gist.github.com/ia0/820ab50d4c5f0f5e3aeb841cef8e6792">Writing down my mental model of unsafe</a></li>
<li><a href="https://kerkour.com/rust-fast-techempower-web-framework-benchmarks">How can Rust be so fast in the TechEmpower Web Framework Benchmarks?</a></li>
</ul>
<h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3>
<ul>
<li><a href="https://registerspill.thorstenball.com/p/from-1s-to-4ms">From 1s to 4ms</a></li>
<li><a href="https://mary.codes/blog/programming/translating_openstreetmaps_to_HTML5_canvas_rust_wasm/">Translating OpenStreetMap data to HTML5 Canvas with Rust and WebAssembly</a></li>
<li><a href="https://auroranssolis.github.io/rust/2024/02/14/macros-rule.html">macros_rule!</a></li>
<li><a href="https://www.shuttle.rs/blog/2024/02/21/using-jwt-auth-rust">Implementing JWT Authentication in Rust</a></li>
<li><a href="https://medium.com/@sam.van.overmeire/deploying-axum-to-lambda-and-ecs-using-lambda-web-adapter-2273bd56bb81">Deploying Axum to Lambda and ECS, using Lambda Web Adapter</a></li>
<li><a href="https://tylerjw.dev/posts/rust-cmake-interop-part-3-cxx/">Rust/C++ Interop Part 3 - Cxx</a></li>
<li>[FR] <a href="https://lafor.ge/closure/">Les closures en Rust</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=vfMpIsJwpjU">Safe Rust AIN'T SAFE!? (cve-rs)</a></li>
</ul>
<h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3>
<ul>
<li>[video] <a href="https://www.youtube.com/watch?v=kXPBVGDkQSs">Release-plz: releasing crates like it's 2023 (RustLab 2023)</a></li>
</ul>
<h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2>
<p>This week's crate is <a href="https://github.com/wingbackapp/kind/">kind</a>, a helper crate for typed UUIDs.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1290">Denys Séguret</a> for the self-suggestion!</p>
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
<h4 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h4>
<p>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:</p>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3013">RFC: Checking conditional compilation at compile time</a><ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3013#issuecomment-1936648479">Testing steps</a></li>
</ul>
</li>
</ul>
<p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code>
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.</p>
<h2 id="call-for-participation-projects-and-speakers"><a class="toclink" href="#call-for-participation-projects-and-speakers">Call for Participation; projects and speakers</a></h2>
<h3 id="cfp-projects"><a class="toclink" href="#cfp-projects">CFP - Projects</a></h3>
<p>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!</p>
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
<ul>
<li><a href="https://github.com/build-trust/ockam/issues/7471">Ockam - Syntax highlighting for fenced code blocks, in command help output, on Linux works</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7575">Ockam - Shut down Worker/Processor if initialization failed</a></li>
<li><a href="https://github.com/build-trust/ockam/issues/7478">Ockam - Output for ockam project ticket is improved and information is not opaque</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/3749">Hyperswitch - [FEATURE] : add <code>offset</code> field to disputes list</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/3748">Hyperswitch - [FEATURE]: add<code>offset</code> field to mandates list</a></li>
<li><a href="https://github.com/juspay/hyperswitch/issues/3746">Hyperswitch - [FEATURE]: add pagination support for customers list</a></li>
</ul>
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p>
<h3 id="cfp-speakers"><a class="toclink" href="#cfp-speakers">CFP - Speakers</a></h3>
<p>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.</p>
<p>If you are an event organizer hoping to expand the reach of your event, please submit a link to the submission website through a <a href="https://github.com/rust-lang/this-week-in-rust">PR to TWiR</a>.</p>
<h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2>
<p>508 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-02-13..2024-02-20">merged in the last week</a></p>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/121088">implicitly enable evex512 if avx512 is enabled</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120932"><code>const_mut_refs</code>: allow mutable pointers to statics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119673"><code>macro_rules</code>: Preserve all metavariable spans in a global side table</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120982">add APIs for fetching foreign items</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121203">add <code>rust.frame-pointers</code> config option</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121198">add more checks for <code>unnamed_fields</code> during HIR analysis</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121256">allow AST and HIR visitors to return <code>ControlFlow</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121179">allow mutable references in const values when they point to no memory</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121087">always evaluate free constants and statics, even if previous errors occurred</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121020">avoid an ICE in diagnostics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120530">be less confident when <code>dyn</code> suggestion is not checked for object safety</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/118882">check normalized call signature for WF in mir typeck</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119338">consider principal trait ref's auto-trait super-traits in dyn upcasting</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120847">continue compilation after <code>check_mod_type_wf</code> errors</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121113">continue compilation even if inherent impl checks fail</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121032">continue reporting remaining errors instead of silently dropping them</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121100">detect when method call on argument could be removed to fulfill failed trait bound</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121181">fix an ICE in the recursion lint</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121104">ignore unsized types when trying to determine the size of the original type</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119432">make <code>ConstPropLint</code> lint run on promoteds</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121119">make <code>async Fn</code> trait kind errors better</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120780">properly deal with weak alias types as self types of impls</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121286">rename <code>ConstPropLint</code> to <code>KnownPanicsLint</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/116564">store static initializers in metadata instead of the MIR of statics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119928">suggest <code>into_iter()</code> when <code>Iterator</code> method called on <code>impl IntoIterator</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121318">trigger <code>unsafe_code</code> lint on invocations of <code>global_asm</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121193">use fulfillment in next trait solver coherence</a></li>
<li><a href="https://github.com/rust-lang/miri/pull/3192">miri: implement x86 AVX intrinsics</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121015">optimize <code>delayed_bug</code> handling</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/100603">optimize away poison guards when std is built with panic=abort</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120576">overhaul <code>Diagnostic</code> and <code>DiagnosticBuilder</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120889">implement <code>Instant</code> for UEFI</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121024">implement <code>Default</code> for <code>AsciiChar</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/119808">store <code>core::str::CharSearcher::utf8_size</code> as u8</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120538">make <code>File::read_to_end</code> less special</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121241">implement <code>NonZero</code> traits generically</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120563">make <code>NonZero::get</code> generic</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120741">make <code>io::BorrowedCursor::advance</code> safe</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121311">make <code>is_nonoverlapping #[inline]</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121204">specialize flattening iterators with only one inner item</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/105917">specialize some methods of <code>io::Chain</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/116385">rename <code>MaybeUninit::write_slice</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120952">don't use <code>mem::zeroed</code> in <code>vec::IntoIter</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/118264">optimize <code>VecDeque::drain</code> for (half-)open ranges</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120505">fix BTreeMap's <code>Cursor::remove_{next,prev}</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121041">add <code>Future</code> and <code>IntoFuture</code> to the 2024 prelude</a></li>
<li><a href="https://github.com/rust-lang/hashbrown/pull/505">hashbrown: inline tweaks to <code>HashTable</code></a></li>
<li><a href="https://github.com/rust-lang/hashbrown/pull/495">hashbrown: make <code>HashSet::insert</code> return OccupiedEntry</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/429">codegen_gcc: correctly handle <code>--use-system-gcc</code></a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/437">codegen_gcc: implement dummy emit=llvm-ir</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/440">codegen_gcc: use the default rust mangling</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_cranelift/pull/1457">codegen_cranelift: fix <code>simd_select_bitmask</code> on big-endian systems</a></li>
<li><a href="https://github.com/rust-lang/rustc_codegen_cranelift/pull/1458">codegen_cranelift: fix download hash check on big-endian systems</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13434">cargo add: Ensure users know a feature is being created</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13446">cargo add: Remove inconsistent period</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/13448">cargo test: Suggest <code>--</code> for libtest arguments</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/12861">cargo: respect <code>rust-version</code> when generating lockfile</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120526">rustdoc: correctly handle long crate names on mobile</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121022">rustdoc: cross-crate re-exports: correctly render late-bound params in source order even if early-bound params are present</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/120548">rustdoc: fix handling of <code>doc_auto_cfg</code> feature for cfg attributes on glob reexport</a></li>
<li><a href="https://github.com/rust-lang/rustfmt/pull/6073">rustfmt: fix error trying to format unnormalized UTF8</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121035">format <code>async</code> trait bounds in rustfmt</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/121137">add clippy into the known <code>cfg</code> list</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12292">clippy: add new lint <code>deprecated_clippy_cfg_attr</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12293">clippy: <code>case_sensitive_file_extension_comparisons</code>: Don't trigger on digits-only extensions</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/11881">clippy: <code>implied_bounds_in_impls</code>: avoid linting on overlapping associated tys</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12275">clippy: <code>incompatible_msrv</code>: allow expressions that come from desugaring</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/10903">clippy: <code>new_without_default</code>: Now emits on const fns</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/11641">clippy: allow negative literals in <code>redundant_guards</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12294">clippy: check trait items in <code>min_ident_chars</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12314">clippy: default test output conflict handling to error</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12305">clippy: ensure ASM syntax detect <code>global_asm!</code> and <code>asm!</code> only on x86 architectures</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12059">clippy: add check for identical guards in lint <code>match_same_arms</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12309">clippy: make <code>#[allow]</code> work on field for <code>pub_underscore_fields</code></a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/12285">clippy: ignore imported items in <code>min_ident_chars</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16550">rust-analyzer: activate on top level <code>Cargo.toml</code> and <code>rust-project.json</code> files</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16358">rust-analyzer: deduplicate references when some of them are in macro expansions</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16489">rust-analyzer: create alias when renaming an import</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16303">rust-analyzer: add non-exhaustive-let diagnostic</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16589">rust-analyzer: add unresolved-ident diagnostic</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16475">rust-analyzer: support multiple tab stops for completions in VSCode</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/15003">rust-analyzer: add basic support for <code>become</code> expr/tail calls</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16618">rust-analyzer: don't add <code>\</code> before <code>{</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16583">rust-analyzer: don't show type mismatches for <code>{unknown}</code> to non-<code>{unknown}</code> mismatches</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16574">rust-analyzer: fix "needless return" diagnostic for trailing item declarations</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16247">rust-analyzer: fix build scripts not being rebuilt in some occasions</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16590">rust-analyzer: fix false positives for "unnecessary else" diagnostic</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16579">rust-analyzer: fix snippets being placed leftwards of where they should be</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16553">rust-analyzer: improve recover on <code>=</code> for record field initializer and pattern</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16544">rust-analyzer: only complete traits in <code>impl .. for</code></a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16569">rust-analyzer: place snippets correctly in multi-edit assists</a></li>
<li><a href="https://github.com/rust-lang/rust-analyzer/pull/16616">rust-analyzer: server hanging up on build script task</a></li>
</ul>
<h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3>
<p>Relatively few PRs affecting performance, but massive improvements thanks to the
update to LLVM 18 (PR #12005), as well as the merging of two related compiler
queries (PR #120919) and other small improvements from a rollup (PR #121055).</p>
<p>Triage done by <strong>@pnkfelix</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=74c3f5a146860c94ff4d179fc3bfa34f879adf41&end=5af2130440c198afefbe5b8099342057cf272ef4&absolute=false&stat=instructions%3Au">74c3f5a1..5af21304</a></p>
<p>3 Regressions, 1 Improvements, 6 Mixed; 1 of them in rollups
65 artifact comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/d18e18944c4ab14988ca5219b17530454d133474/triage/2024-02-20.md">Full report here</a></p>
<h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3>
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
are the RFCs that were approved for implementation this week:</p>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3558">eRFC: Iterate on and stabilize libtest's programmatic output</a></li>
</ul>
<h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3>
<p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.</p>
<h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4>
<ul>
<li><a href="https://github.com/rust-lang/rfcs/pull/3537">RFC: Make Cargo respect minimum supported Rust version (MSRV) when selecting dependencies</a></li>
</ul>
<h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs">Tracking Issues & PRs</a></h4>
<h5 id="rust"><a class="toclink" href="#rust"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Rust</a></a></h5>
<ul>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/118247">change equate for binders to not rely on subtyping</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/120393">Implement RFC 3373: Avoid non-local definitions in functions</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/96992">Tracking Issue for <code>waker_getters</code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/119888">Stabilize the <code>#[diagnostic]</code> namespace and <code>#[diagnostic::on_unimplemented]</code> attribute</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/80970">Tracking Issue for cfg-target-abi</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/120805">make non-PartialEq-typed consts as patterns a hard error</a></li>
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/99333">Allow ?-converting from <code>Result<T, E></code> in functions returning <code>Option<Result<T, E>></code></a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/99153">Add Read Impl for &Stdin</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/119536">Make <code>Barrier::new()</code> const </a></li>
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/109691">Implement <code>Future</code> for <code>Option<F></code></a></li>
</ul>
<h4 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h4>
<ul>
<li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3573"><code>is</code> operator for pattern-matching and binding</a></li>
</ul>
<h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2>
<p>Rusty Events between 2024-02-21 - 2024-03-20 🦀</p>
<h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3>
<ul>
<li>2024-02-21 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul>
<li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/298991687/"><strong>Rust for Rustaceans Book Club: Chapter 2 - Types</strong></a></li>
</ul>
</li>
<li>2024-02-21 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul>
<li><a href="https://www.meetup.com/vancouver-rust/events/292763497/"><strong>Rust Study/Hack/Hang-out</strong></a></li>
</ul>
</li>
<li>2024-02-22 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298251150/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-02-27 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/299068302/"><strong>Last Tuesday</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Virtual (Berlin, DE) | <a href="https://berline.rs/">OpenTechSchool Berlin</a> + <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://meet.jit.si/RustHackAndLearnBerlin"><strong>Rust Hack and Learn</strong></a> | <a href="https://www.meetup.com/rust-berlin/events/298457901/"><strong>Mirror: Rust Hack n Learn Meetup</strong></a> | <a href="https://berline.rs/2024/02/29/rust-hack-and-learn.html"><strong>Mirror: Berline.rs page</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298372724/"><strong>Surfing the Rusty Wireless Waves with the ESP32-C3 Board</strong></a></li>
</ul>
</li>
<li>2024-03-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul>
<li><a href="https://www.meetup.com/indyrs/events/299047891/"><strong>Indy.rs - with Social Distancing</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/298368787/"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/">Dallas Rust</a><ul>
<li><a href="https://www.meetup.com/dallasrust/events/298341582/"><strong>Second Tuesday</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Hybrid (Virtual + In-person) Munich, DE | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-14 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">OpenTechSchool Berlin</a><ul>
<li><a href="https://www.meetup.com/opentechschool-berlin/events/298406445/"><strong>Web Frontend Co-Learning (online)</strong></a></li>
</ul>
</li>
<li>2024-03-21 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/">Seattle Rust User Group</a><ul>
<li><a href="https://www.meetup.com/seattle-rust-user-group/events/298631832/"><strong>Seattle Rust User Group Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Virtual + In Person (Barcelona, ES) | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a> - <a href="https://www.youtube.com/@bcnrust">Stream</a></li>
</ul>
</li>
</ul>
<h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3>
<ul>
<li>2024-02-21 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/">Rust Lyon</a><ul>
<li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/298775631/"><strong>Rust Lyon Meetup #8</strong></a></li>
</ul>
</li>
<li>2024-02-22 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/298689622/"><strong>Rust and Talk at Partisia</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/">Rust Berlin</a><ul>
<li><a href="https://www.meetup.com/rust-berlin/events/299190389/"><strong>Rust and Tell - Season start 2024</strong></a></li>
</ul>
</li>
<li>2024-03-12 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/">Rust Munich</a><ul>
<li><a href="https://www.meetup.com/rust-munich/events/298507657/"><strong>Rust Munich 2024 / 1 - hybrid</strong></a></li>
</ul>
</li>
<li>2024-03-19 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul>
<li><a href="https://www.meetup.com/rust-aarhus/events/299028814/"><strong>Hack Night</strong></a></li>
</ul>
</li>
<li>2024-03-20 | Girona, ES | <a href="https://www.meetup.com/rust-girona/">Rust Girona</a><ul>
<li><a href="https://www.meetup.com/rust-girona/events/299172343/"><strong>Introduction to programming Microcontrollers with Rust</strong></a></li>
</ul>
</li>
<li>2024-03-26 | Barcelona, ES + Virtual | <a href="https://www.meetup.com/es-ES/bcnrust/">BcnRust</a><ul>
<li><a href="https://www.meetup.com/es-ES/bcnrust/events/299223178/"><strong>13th BcnRust Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-26, 2024-03-28 | London, UK | <a href="https://www.rustnationuk.com/">Rust Nation UK</a><ul>
<li><a href="https://www.rustnationuk.com/"><strong>Rust Nation 2024</strong></a></li>
</ul>
</li>
</ul>
<h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3>
<ul>
<li>2024-02-21 | Boston, MA, US | <a href="https://www.meetup.com/bostonrust/">Boston Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/bostonrust/events/299054786/"><strong>Evening Boston Rust Meetup at Microsoft, February 21</strong></a></li>
</ul>
</li>
<li>2024-02-22 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/mv-rust-meetup/events/299043763/"><strong>Rust Meetup at Hacker Dojo</strong></a></li>
</ul>
</li>
<li>2024-02-28 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul>
<li><a href="https://www.meetup.com/rust-atx/events/297380841/"><strong>Rust Lunch - Fareground</strong></a></li>
</ul>
</li>
<li>2024-03-07 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul>
<li><a href="https://www.meetup.com/mv-rust-meetup/events/299043793/"><strong>Rust Meetup at Hacker Dojo</strong></a></li>
</ul>
</li>
</ul>
<h3 id="oceania"><a class="toclink" href="#oceania">Oceania</a></h3>
<ul>
<li>2024-02-27 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/">Canberra Rust User Group</a><ul>
<li><a href="https://www.meetup.com/rust-canberra/events/297650401/"><strong>February Meetup</strong></a></li>
</ul>
</li>
<li>2024-02-27 | Sydney, NSW, AU | <a href="https://www.meetup.com/rust-sydney/">Rust Sydney</a><ul>
<li><a href="https://www.meetup.com/rust-sydney/events/298892952/"><strong>🦀 spire ⚡ & Quick</strong></a></li>
</ul>
</li>
<li>2024-02-29 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/">Rust Brisbane</a><ul>
<li><a href="https://www.meetup.com/rust-brisbane/events/299304438/"><strong>February Meetup</strong></a></li>
</ul>
</li>
<li>2024-03-05 | Auckland, NZ | <a href="https://www.meetup.com/rust-akl/">Rust AKL</a><ul>
<li><a href="https://www.meetup.com/rust-akl/events/299158887/"><strong>Rust AKL: Introduction to Embedded Rust + The State of Rust UI</strong></a></li>
</ul>
</li>
</ul>
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
it mentioned here. Please remember to add a link to the event too.
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
<h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2>
<p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/1arr8xi/official_rrust_whos_hiring_thread_for_jobseekers">Who's Hiring thread on r/rust</a></p>
<h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1>
<blockquote>
<p>Shared mutable state is evil, and you can solve it by forbidding mutation, or by forbidding sharing. Rust supports both.</p>
</blockquote>
<p>– <a href="https://lobste.rs/s/fud3fk/from_1s_4ms#c_relksr">kornel on Lobste.rs</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1535">Aleksey Kladov</a> for the suggestion!</p>
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p>
<p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/1awuo07/this_week_in_rust_535/">Discuss on r/rust</a></small></p>