this-week-in-rust/content/2024-08-07-this-week-in-rus...

433 lines
34 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Title: This Week in Rust 559
Number: 559
Date: 2024-08-07
Category: This Week in Rust
Hello and welcome to another issue of *This Week in Rust*!
[Rust](https://www.rust-lang.org/) is a programming language empowering everyone to build reliable and efficient software.
This is a weekly summary of its progress and community.
Want something mentioned? Tag us at [@ThisWeekInRust](https://x.com/ThisWeekInRust) on X (formerly Twitter) or [@ThisWeekinRust](https://mastodon.social/@thisweekinrust) on mastodon.social, or [send us a pull request](https://github.com/rust-lang/this-week-in-rust).
Want to get involved? [We love contributions](https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md).
*This Week in Rust* is openly developed [on GitHub](https://github.com/rust-lang/this-week-in-rust) and archives can be viewed at [this-week-in-rust.org](https://this-week-in-rust.org/).
If you find any errors in this week's issue, [please submit a PR](https://github.com/rust-lang/this-week-in-rust/pulls).
Want TWIR in your inbox? [Subscribe here](https://this-week-in-rust.us11.list-manage.com/subscribe?u=fd84c1c757e02889a9b08d289&id=0ed8b72485).
## Updates from Rust Community
<!--
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.
-->
### Newsletters
* [thisweekinbevy - 0.14.1, tracking change detection, and more rendering examples](https://thisweekinbevy.com/issue/2024-08-05-0141-tracking-change-detection-and-more-rendering-examples)
### Project/Tooling Updates
* [Tauri 2.0 Release Candidate](https://v2.tauri.app/blog/tauri-2-0-0-release-candidate/)
* [CGlue 0.3 Future and Beyond](https://blaz.is/blog/post/cglue-0-3/)
* [ratatui - v0.28.0](https://ratatui.rs/highlights/v028/)
* [Pigg 0.3.3](https://github.com/andrewdavidmackenzie/pigg/releases/tag/0.3.3) the GUI for RPi GPIO interaction released, with Remote GPIO feature!
* [Announcing SeaORM 1.0](https://www.sea-ql.org/blog/2024-08-04-sea-orm-1.0/)
* [Danube - Queuing and Pub/Sub message patterns](https://dev-state.com/posts/danube_pubsub/)
### Observations/Thoughts
* [Trying and mostly failing to optimize frustum culling in a WebGL + TS + Rust engine](https://blog.paavo.me/demo-engine-part-1/)
* [Panic! At The Async Runtime Shutdown](https://www.mattkeeter.com/blog/2024-08-01-panic/)
* [Debugging a rustc segfault on illumos](https://sunshowers.io/posts/rustc-segfault-illumos/)
* [Tracing my way with tracing-rs](https://j.njsm.de/blog/tracing-rs/)
* [Series] [The Hitchhikers Guide to Building a Distributed Filesystem in Rust.](https://systemweakness.com/hitchhikers-guide-to-building-a-distributed-filesystem-in-rust-the-very-beginning-2c02eb7313e7)
* [Best Rust books for 2024](https://bitfieldconsulting.com/posts/best-rust-books)
* [Phantom Menace: memory leak that wasn't there](https://flakm.com/posts/phantom_leak/)
* [Developing a cryptographically secure bootloader for RISC-V in Rust](https://www.codethink.co.uk/articles/2024/secure_bootloader/)
* [Extending the #[diagnostic] tool attribute namespace](https://blog.weiznich.de/blog/diagnostic-namespace-do-not-recommend/)
### Rust Walkthroughs
* [Tracing Tokio Resources](https://hegdenu.net/posts/tracing-tokio-resources/)
* [Series] [Mastering Dependency Injection in Rust: Crafting a Custom Container](https://chesedo.me/blog/manual-dependency-injection-rust/)
### Research
* [The Hitchhikers Guide to Building a Distributed Filesystem in Rust.](https://medium.com/@xorio42/the-hitchhikers-guide-to-building-a-distributed-filesystem-in-rust-the-continuation-part-2-ad1fd8bc9cf8)
### Miscellaneous
* [Rustic: Enhanced Org Babel integration](https://psibi.in/posts/2024-08-04-rustic-babel.html)
* [Efficient Logging - Speeding up production code by logging more efficiently](https://antoniosbarotsis.github.io/posts/efficient-logging/)
## Crate of the Week
This week's crate is [WhenFS](https://github.com/lvkv/whenfs), a FUSE filesystem that misuses your google calendar as storage. And yes, your schedule will look as packed as mine once you store one or two files in there.
Despite yet another week fully devoid of suggestions nor votes, llogiq is reasonably pleased with his choice.
[Please submit your suggestions and votes for next week][submit_crate]!
[submit_crate]: https://users.rust-lang.org/t/crate-of-the-week/2704
## Calls for Testing
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:
### [RFCs](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
* *No calls for testing were issued this week.*
### [Rust](https://github.com/rust-lang/rust/labels/call-for-testing)
* *No calls for testing were issued this week.*
### [Rustup](https://github.com/rust-lang/rustup/labels/call-for-testing)
* *No calls for testing were issued this week.*
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
need testing.
## Call for Participation; projects and speakers
### CFP - Projects
Always wanted to contribute to open-source projects but did not know where to start?
Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
* [rencfs - Abstract file access layer](https://github.com/radumarias/rencfs/issues/111)
* [rencfs - Add RustCrypto as a feature](https://github.com/radumarias/rencfs/issues/104)
* [rencfs - File and fs API](https://github.com/radumarias/rencfs/issues/97)
* [rencfs - io API](https://github.com/radumarias/rencfs/issues/90)
* [rfs - Coordinator node API](https://github.com/radumarias/rfs/issues/19))
* [rfs - Data node API](https://github.com/radumarias/rfs/issues/20)
* [rfs - File upload and changes](https://github.com/radumarias/rfs/issues/18)
* [rfs - Communication between Coordinator and Data nodes](https://github.com/radumarias/rfs/issues/15)
* [syncoxiders - Two-way sync](https://github.com/radumarias/syncoxiders/issues/10)
* [syncoxiders - Sync chunks in parallel](https://github.com/radumarias/syncoxiders/issues/9)
* [syncoxiders - Integrate SurrealDB to store metadata](https://github.com/radumarias/syncoxiders/issues/13)
* [syncoxiders - Migrate scripts tests to integration tests](https://github.com/radumarias/syncoxiders/issues/6)
* [rencfs-desktop - Implement daemon](https://github.com/radumarias/rencfs-desktop/issues/4)
* [Proposal: Deprecate Tokio's LocalSet](https://www.github.com/tokio-rs/tokio/issues/6741)
If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines] or through a [PR to TWiR](https://github.com/rust-lang/this-week-in-rust) or by reaching out on [X (Formerly twitter)](https://x.com/ThisWeekInRust) or [Mastodon](https://mastodon.social/@thisweekinrust)!
[guidelines]:https://github.com/rust-lang/this-week-in-rust?tab=readme-ov-file#call-for-participation-guidelines
### CFP - Events
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.
*No Calls for papers or presentations were submitted this week.*
If you are an event organizer hoping to expand the reach of your event, please submit a link to the website through a [PR to TWiR](https://github.com/rust-lang/this-week-in-rust) or by reaching out on [X (formerly Twitter)](https://x.com/ThisWeekInRust) or [Mastodon](https://mastodon.social/@thisweekinrust)!
## Updates from the Rust Project
381 pull requests were [merged in the last week][merged]
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-07-30..2024-08-06
* [fix vita build of std and forbid unsafe in unsafe in the os/vita module](https://github.com/rust-lang/rust/pull/128315)
* [`derive(SmartPointer)`: require pointee to be maybe sized](https://github.com/rust-lang/rust/pull/128452)
* [add `#[must_use]` to some `into_raw*` functions](https://github.com/rust-lang/rust/pull/127586)
* [add `REDUNDANT_IMPORTS` lint for new redundant import detection](https://github.com/rust-lang/rust/pull/123813)
* [add `f16` and `f128` math functions](https://github.com/rust-lang/rust/pull/127027)
* [allow overwriting the output of `rustc --version`](https://github.com/rust-lang/rust/pull/124339)
* [allow setting `link-shared` and `static-libstdcpp` with CI LLVM](https://github.com/rust-lang/rust/pull/128589)
* [android: remove libstd hacks for unsupported Android APIs](https://github.com/rust-lang/rust/pull/128416)
* [assert that all attributes are actually checked via `CheckAttrVisitor` and aren't accidentally usable on completely unrelated HIR nodes](https://github.com/rust-lang/rust/pull/128581)
* [better handle suggestions for the already present code and fix some suggestions](https://github.com/rust-lang/rust/pull/126818)
* [built-in derive: remove `BYTE_SLICE_IN_PACKED_STRUCT_WITH_DERIVE` hack and lint](https://github.com/rust-lang/rust/pull/127907)
* [cleanup sys module to match house style](https://github.com/rust-lang/rust/pull/128162)
* [create COFF archives for non-LLVM backends](https://github.com/rust-lang/rust/pull/128450)
* [custom MIR: add support for tail calls](https://github.com/rust-lang/rust/pull/128688)
* [delegation: second attempt to improve perf](https://github.com/rust-lang/rust/pull/128441)
* [delegation: support generics for delegation from free functions](https://github.com/rust-lang/rust/pull/125929)
* [detect non-lifetime binder params shadowing item params](https://github.com/rust-lang/rust/pull/128357)
* [do not fire unhandled attribute assertion on multi-segment `AttributeType::Normal` attributes with builtin attribute as first segment](https://github.com/rust-lang/rust/pull/128623)
* [don't re-elaborate already elaborated caller bounds in method probe](https://github.com/rust-lang/rust/pull/128559)
* [elaborate unknowable goals](https://github.com/rust-lang/rust/pull/127574)
* [emit an error if `#[optimize]` is applied to an incompatible item](https://github.com/rust-lang/rust/pull/128458)
* [enforce supertrait outlives obligations hold when confirming impl](https://github.com/rust-lang/rust/pull/124336)
* [fix removed `box_syntax` diagnostic if source isn't available](https://github.com/rust-lang/rust/pull/128496)
* [fix the invalid argument type](https://github.com/rust-lang/rust/pull/128686)
* [ignore `use` declaration reformatting in `.git-blame-ignore-revs`](https://github.com/rust-lang/rust/pull/128478)
* [implement `UncheckedIterator` directly for `RepeatN`](https://github.com/rust-lang/rust/pull/128530)
* [improve error message when `global_asm!` uses `asm!` operands](https://github.com/rust-lang/rust/pull/128305)
* [interpret: on a signed deref check, mention the right pointer in the error](https://github.com/rust-lang/rust/pull/128482)
* [make `///` doc comments compatible with naked functions](https://github.com/rust-lang/rust/pull/128380)
* [mark `Parser::eat`/`check` methods as `#[must_use]`](https://github.com/rust-lang/rust/pull/128376)
* [match LLVM ABI in `extern "C"` functions for `f128` on Windows](https://github.com/rust-lang/rust/pull/128388)
* [match lowering: Hide `Candidate` from outside the lowering algorithm](https://github.com/rust-lang/rust/pull/127159)
* [more unsafe attr verification](https://github.com/rust-lang/rust/pull/127543)
* [normalize when equating `dyn` tails in MIR borrowck](https://github.com/rust-lang/rust/pull/128694)
* [on short error format, append primary span label to message](https://github.com/rust-lang/rust/pull/126804)
* [peel off explicit (or implicit) deref before suggesting clone on move error in borrowck, remove some hacks](https://github.com/rust-lang/rust/pull/128244)
* [properly mark loop as diverging if it has no breaks](https://github.com/rust-lang/rust/pull/128443)
* [remove `crate_level_only` from `ELIDED_LIFETIMES_IN_PATHS`](https://github.com/rust-lang/rust/pull/128412)
* [revert recent changes to dead code analysis](https://github.com/rust-lang/rust/pull/128404)
* [set branch protection function attributes](https://github.com/rust-lang/rust/pull/128141)
* [simplify match based on the cast result of `IntToInt`](https://github.com/rust-lang/rust/pull/127324)
* [structured suggestion for `extern crate foo` when `foo` isn't resolved in import](https://github.com/rust-lang/rust/pull/128151)
* [temporarily switch `ambiguous_negative_literals` lint to allow](https://github.com/rust-lang/rust/pull/128449)
* [the output in stderr expects panic-unwind](https://github.com/rust-lang/rust/pull/128379)
* [turn `invalid_type_param_default` into a `FutureReleaseErrorReportInDeps`](https://github.com/rust-lang/rust/pull/127655)
* [tweak type inference for `const` operands in inline asm](https://github.com/rust-lang/rust/pull/125558)
* [use `object` in `run-make/symbols-visibility`](https://github.com/rust-lang/rust/pull/128607)
* [use a separate pattern type for `rustc_pattern_analysis` diagnostics](https://github.com/rust-lang/rust/pull/128430)
* [miri: add a flag to do recursive validity checking](https://github.com/rust-lang/rust/pull/128531)
* [miri: add `miri_start` support](https://github.com/rust-lang/miri/pull/3769)
* [miri: use Scalar consistently in foreign item emulation](https://github.com/rust-lang/miri/pull/3776)
* [linker: pass fewer search directories to the linker](https://github.com/rust-lang/rust/pull/128370)
* [use Vec in `instantiate_binder_with_fresh_vars`](https://github.com/rust-lang/rust/pull/128336)
* [change output normalization logic to be linear against size of output](https://github.com/rust-lang/rust/pull/128200)
* [check divergence value first before doing span operations in `warn_if_unreachable`](https://github.com/rust-lang/rust/pull/128544)
* [accelerate GVN a little](https://github.com/rust-lang/rust/pull/126991)
* [stabilize Wasm relaxed SIMD](https://github.com/rust-lang/rust/pull/117468)
* [stabilize unsafe extern blocks (RFC 3484)](https://github.com/rust-lang/rust/pull/127921)
* [enable `std::io::copy` specialisation for `std::pipe::{PipeReader, PipeWriter}`](https://github.com/rust-lang/rust/pull/128303)
* [rewrite binary search implementation](https://github.com/rust-lang/rust/pull/128254)
* [implement cursors for `BTreeSet`](https://github.com/rust-lang/rust/pull/128309)
* [implement the `once_wait` feature](https://github.com/rust-lang/rust/pull/127567)
* [configure which platforms have `f16` and `f128` enabled by default](https://github.com/rust-lang/compiler-builtins/pull/652)
* [hashbrown: implement Default for iterators](https://github.com/rust-lang/hashbrown/pull/542)
* [regex: rust nightly removed the lifetime from Pattern](https://github.com/rust-lang/regex/pull/1219)
* [cargo-miri: better error when we seem to run inside bootstrap but something is wrong](https://github.com/rust-lang/rust/pull/128382)
* [cargo: build-std: remove hack on creating virtual std workspace](https://github.com/rust-lang/cargo/pull/14358)
* [cargo: config: Adjust MSRV resolve config field name / values](https://github.com/rust-lang/cargo/pull/14296)
* [cargo: publish: Don't strip non-dev features](https://github.com/rust-lang/cargo/pull/14325)
* [cargo: also build manpage for cargo.md](https://github.com/rust-lang/cargo/pull/14339)
* [rustdoc-json: discard non-local inherent impls for primitives](https://github.com/rust-lang/rust/pull/128385)
* [rustdoc: cleanup `CacheBuilder` code for building search index](https://github.com/rust-lang/rust/pull/128578)
* [rustdoc: fix handling of `Self` type in search index and refactor its representation](https://github.com/rust-lang/rust/pull/128471)
* [rustdoc: make the hover trail for doc anchors a bit bigger](https://github.com/rust-lang/rust/pull/128615)
* [rustdoc: Make the buttons remain when code example is clicked](https://github.com/rust-lang/rust/pull/128339)
* [rustdoc: simplify `body` usage](https://github.com/rust-lang/rust/pull/128573)
* [rustfmt: add repo cloning to check-diff crate](https://github.com/rust-lang/rustfmt/pull/6187)
* [rustfmt: check exit status of git commands spawned by build script](https://github.com/rust-lang/rustfmt/pull/6266)
* [rustfmt: impl `rewrite_result` for Pat, TuplePatField](https://github.com/rust-lang/rustfmt/pull/6262)
* [clippy: check exit status of subcommands spawned by `rustc_tools_util`](https://github.com/rust-lang/rust-clippy/pull/13217)
* [clippy: fix `redundant_closure` false positive with closures has return type contains `'static`](https://github.com/rust-lang/rust-clippy/pull/13108)
* [clippy: fix `redundant_slicing` when the slice is behind a mutable reference](https://github.com/rust-lang/rust-clippy/pull/13126)
* [clippy: fix broken list for lints config](https://github.com/rust-lang/rust-clippy/pull/13177)
* [clippy: fix false positive for `missing_backticks` in footnote references](https://github.com/rust-lang/rust-clippy/pull/13195)
* [clippy: limit number of `nonminimal_bool` ops](https://github.com/rust-lang/rust-clippy/pull/13209)
* [clippy: lintcheck: force warn all lints](https://github.com/rust-lang/rust-clippy/pull/13210)
* [clippy: make restriction lints use `span_lint_and_then` (a → e)](https://github.com/rust-lang/rust-clippy/pull/13136)
* [clippy: make restriction lints use `span_lint_and_then` (q → w)](https://github.com/rust-lang/rust-clippy/pull/13145)
* [clippy: remove `multispan_sugg[_with_applicability]`](https://github.com/rust-lang/rust-clippy/pull/13213)
* [clippy: remove duplicated `peel_middle_ty_refs`](https://github.com/rust-lang/rust-clippy/pull/13115)
* [clippy: simplify lint deprecation](https://github.com/rust-lang/rust-clippy/pull/13180)
* [clippy: use a deterministic number of digits in `rustc_tools_util` commit hashes](https://github.com/rust-lang/rust-clippy/pull/13222)
* [clippy: use a single multipart suggestion for `implicit_hasher`](https://github.com/rust-lang/rust-clippy/pull/13181)
* [rust-analyzer: implement diagnostic for `await` outside of `async`](https://github.com/rust-lang/rust-analyzer/pull/17791)
* [rust-analyzer: load sysroot library via cargo metadata](https://github.com/rust-lang/rust-analyzer/pull/17795)
* [rust-analyzer: support inlay hint for more expr with label](https://github.com/rust-lang/rust-analyzer/pull/17784)
* [rust-analyzer: apply `IndexMut` obligations for non-assigning mutable index usages](https://github.com/rust-lang/rust-analyzer/pull/17755)
* [rust-analyzer: errors on method call inferences with elided lifetimes](https://github.com/rust-lang/rust-analyzer/pull/17747)
* [rust-analyzer: insert a generic arg for `impl Trait` when lowering generic args](https://github.com/rust-lang/rust-analyzer/pull/17789)
* [rust-analyzer: insert a tail `Ok(())` for expr block instead of wrapping with `Ok`](https://github.com/rust-lang/rust-analyzer/pull/17763)
* [rust-analyzer: panic in path transform with default type parameters](https://github.com/rust-lang/rust-analyzer/pull/17805)
* [rust-analyzer: remove AbsPath requirement from linkedProjects](https://github.com/rust-lang/rust-analyzer/pull/17750)
* [rust-analyzer: surpress type mismatches in calls with mismatched arg counts](https://github.com/rust-lang/rust-analyzer/pull/17802)
* [rust-analyzer: improve crate manifests, adding missing `[package.repository]` and `[package.description]` fields](https://github.com/rust-lang/rust-analyzer/pull/17745)
* [rust-analyzer: segregate syntax and semantic diagnostics](https://github.com/rust-lang/rust-analyzer/pull/17775)
* [rust-analyzer: split out syntax-bridge into a separate crate](https://github.com/rust-lang/rust-analyzer/pull/17799)
* [rust-analyzer: when josh-proxy screws up the roundtrip, say what the involved commits are](https://github.com/rust-lang/rust-analyzer/pull/17761)
### Rust Compiler Performance Triage
This week saw several large improvements caused mostly by the [update to LLVM 19](https://github.com/rust-lang/rust/pull/127513). There were some regressions in several pull requests, but most of them were immediately fixed in a follow-up PR.
Triage done by **@kobzol**.
Revision range: [7e3a9718..8c7e0e16](https://perf.rust-lang.org/?start=7e3a971870f23c94f7aceb53b490fb37333150ff&end=8c7e0e160831866bc1a40691a39455aac21271c0&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 1.0% | [0.2%, 3.8%] | 91 |
| Regressions ❌ <br /> (secondary) | 1.9% | [0.2%, 19.2%] | 104 |
| Improvements ✅ <br /> (primary) | -4.4% | [-15.8%, -0.3%] | 120 |
| Improvements ✅ <br /> (secondary) | -3.3% | [-10.4%, -0.2%] | 70 |
| All ❌✅ (primary) | -2.1% | [-15.8%, 3.8%] | 211 |
6 Regressions, 3 Improvements, 5 Mixed; 4 of them in rollups
51 artifact comparisons made in total
[Full report here](https://github.com/Kobzol/rustc-perf/blob/1b5a3bf24549eea0a1a53a3de40a107ef35746fb/triage/2024-08-06.md)
### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master)
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
are the RFCs that were approved for implementation this week:
* [Merge RFC 3529: Add named path bases to cargo](https://github.com/rust-lang/rfcs/pull/3529)
* [Merge RFC 3668: Async closures](https://github.com/rust-lang/rfcs/pull/3668)
* [Promote aarch64-apple-darwin to Tier 1](https://github.com/rust-lang/rfcs/pull/3671)
* [RFC for project goals](https://github.com/rust-lang/rfcs/pull/3672)
### Final Comment Period
Every week, [the team](https://www.rust-lang.org/team.html) announces the 'final comment period' for RFCs and key PRs
which are reaching a decision. Express your opinions now.
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
* *No RFCs entered Final Comment Period this week.*
#### Tracking Issues & PRs
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* [disposition: merge] [Stabilize `raw_ref_op` (RFC 2582)](https://github.com/rust-lang/rust/pull/127679)
* [disposition: merge] [Tracking Issue for `Ready::into_inner()`](https://github.com/rust-lang/rust/issues/101196)
* [disposition: merge] [Tracking issue for thread::Builder::spawn_unchecked](https://github.com/rust-lang/rust/issues/55132)
* [disposition: merge] [Tracking Issue for is_none_or](https://github.com/rust-lang/rust/issues/126383)
* [disposition: merge] [CloneToUninit impls](https://github.com/rust-lang/rust/pull/126877)
* [disposition: close] [Tracking issue for HashMap `OccupiedEntry::{replace_key, replace_entry}`](https://github.com/rust-lang/rust/issues/44286)
* [disposition: close] [Tracking issue for HashMap::raw_entry](https://github.com/rust-lang/rust/issues/56167)
* [disposition: merge] [Implement DoubleEnded and ExactSize for Take\<Repeat\> and Take\<RepeatWith\>](https://github.com/rust-lang/rust/pull/106943)
* [disposition: merge] [Implement owned ops for `HashSet` and `BTreeSet`](https://github.com/rust-lang/rust/pull/109402)
* [disposition: merge] [Tracking Issue for `Option::get_or_insert_default`](https://github.com/rust-lang/rust/issues/82901)
* [disposition: merge] [Unify run button display with "copy code" button and with mdbook buttons](https://github.com/rust-lang/rust/pull/128394)
* [disposition: merge] [Greatly speed up doctests by compiling compatible doctests in one file](https://github.com/rust-lang/rust/pull/126245)
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* *No Cargo Tracking Issues or PRs entered Final Comment Period this week.*
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
* *No Language Team Tracking Issues or PRs entered Final Comment Period this week.*
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* [disposition: \<not specified\>] [Reformat (and only reformat) the inline assembly chapter](https://github.com/rust-lang/reference/pull/1550)
##### [Unsafe Code Guidelines](https://github.com/rust-lang/unsafe-code-guidelines/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* *No Unsafe Code Guideline Tracking Issues or PRs entered Final Comment Period this week.*
#### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
* [new] [crates.io: Remove dev-dependencies from the index](https://github.com/rust-lang/rfcs/pull/3674)
## Upcoming Events
Rusty Events between 2024-08-07 - 2024-09-04 🦀
### Virtual
* 2024-08-07 | Virtual (Indianapolis, IN, US) | [Indy Rust](https://www.meetup.com/indyrs/)
* [**Indy.rs - with Social Distancing**](https://www.meetup.com/indyrs/events/300328027/)
* 2024-08-08 | Virtual (Charlottesville, NC, US) | [Charlottesville Rust Meetup](https://www.meetup.com/charlottesville-rust-meetup/)
* [**Crafting Interpreters in Rust Collaboratively**](https://www.meetup.com/charlottesville-rust-meetup/events/298897918/)
* 2024-08-08 | Virtual (Nürnberg, DE) | [Rust Nuremberg](https://www.meetup.com/rust-noris/)
* [**Rust Nürnberg online**](https://www.meetup.com/rust-noris/events/300787793/)
* 2024-08-08 | Virtual (Tel Aviv, IL) | [Code Mavens](https://www.meetup.com/code-mavens/)
* [**Rust Source Code Reading: The thousands crate (English)**](https://www.meetup.com/code-mavens/events/302391142/)
* 2024-08-13 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallasrust/)
* [**Second Tuesday: Typestate Pattern in Rust**](https://www.meetup.com/dallasrust/events/299346978/)
* 2024-08-15 | Virtual (Berlin, DE) | [OpenTechSchool Berlin](https://berline.rs/) + [Rust Berlin](https://www.meetup.com/rust-berlin/)
* [**Rust Hack and Learn**](https://meet.jit.si/RustHackAndLearnBerlin) | [**Mirror: Rust Hack n Learn Meetup**](https://www.meetup.com/rust-berlin/events/298633266/)
* 2024-08-20 | Virtual (Washington, DC, US) | [Rust DC](https://www.meetup.com/rustdc/)
* [**Mid-month Rustful**](https://www.meetup.com/rustdc/events/299346968/)
* 2024-08-21 | Hybrid - Virtual and In-Person (Vancouver, BC, CA) | [Vancouver Rust](https://www.meetup.com/vancouver-rust/)
* [**Rust Study/Hack/Hang-out**](https://www.meetup.com/vancouver-rust/events/298631735/)
* 2024-08-22 | Virtual | [Conf42: Online Tech Events](https://www.meetup.com/conf42/)
* [**Conf42 Rustlang 2024**](https://www.meetup.com/conf42/events/297266825/)
* 2024-08-22 | Virtual (Charlottesville, NC, US) | [Charlottesville Rust Meetup](https://www.meetup.com/charlottesville-rust-meetup/)
* [**Crafting Interpreters in Rust Collaboratively**](https://www.meetup.com/charlottesville-rust-meetup/events/298897938/)
* 2024-08-22 | Virtual (Karlsruhe, DE) | [Karlsruhe Functional Programmers Group](https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/)
* [**Stammtisch (gemeinsam mit der C++ UG KA): various topics, from C++ to Rust**](https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/events/293937801)
* 2024-08-27 | Virtual | [Ardan Labs](https://www.eventbrite.com/o/ardan-labs-7092394651)
* [**Fearless Concurrency with Rust**](https://www.eventbrite.com/e/fearless-concurrency-with-rust-tickets-934569591807)
* 2024-08-27 | Virtual (Bordeaux, FR) | [Rust Bordeaux](https://www.meetup.com/bordeaux-rust/)
* [**Live coding - A distance #1**](https://www.meetup.com/bordeaux-rust/events/302570681/)
* 2024-08-27 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallasrust/)
* [**Last Tuesday**](https://www.meetup.com/dallasrust/events/301585668/)
* 2024-08-27 | Virtual (Tel Aviv, IL) | [Code Mavens](https://www.meetup.com/code-mavens/)
* [**Declarative macros in Rust (Virtual) - מקרוים בראסט**](https://www.meetup.com/rust-in-israel/events/302327956/)
* 2024-08-28 | Virtual (Tel Aviv, IL) | [Code Mavens](https://www.meetup.com/code-mavens/)
* [**Command Line Tools: Implementing wc in Rust (English, Virtual)**](https://www.meetup.com/code-mavens/events/302151487/)
* 2024-08-29 | Virtual (Berlin, DE) | [OpenTechSchool Berlin](https://berline.rs/) + [Rust Berlin](https://www.meetup.com/rust-berlin/)
* [**Rust Hack and Learn**](https://meet.jit.si/RustHackAndLearnBerlin) | [**Mirror: Rust Hack n Learn Meetup**](https://www.meetup.com/rust-berlin/events/298633267/)
* 2024-09-03 | Virtual (Buffalo, NY, US) | [Buffalo Rust Meetup](https://www.meetup.com/buffalo-rust-meetup/)
* [**Buffalo Rust User Group**](https://www.meetup.com/buffalo-rust-meetup/events/302007365/)
* 2024-09-04 | Virtual (Indianapolis, IN, US) | [Indy Rust](https://www.meetup.com/indyrs/)
* [**Indy.rs - with Social Distancing**](https://www.meetup.com/indyrs/events/300328029/)
### Europe
* 2024-08-14 | Köln/Cologne, DE | [Rust Cologne](https://www.meetup.com/rustcologne/)
* [**This Month in Rust, August**](https://www.meetup.com/rustcologne/events/302674635/)
* 2024-08-14 | Reading, UK | [Reading Rust Workshop](https://rustworkshop.co/meetup/)
* [**Reading Rust Meetup**](https://www.meetup.com/reading-rust-workshop/events/302153005/)
* 2024-08-20 | Aarhus, DK | [Rust Aarhus](https://www.meetup.com/rust-aarhus/)
* [**Hack Night**](https://www.meetup.com/rust-aarhus/events/301522950/)
* 2024-08-21 | Nürnberg, DE | [Rust Nuremberg](https://www.meetup.com/rust-noris/)
* [**Walk'n'Talk around Wöhrder See (+ Burritos)**](https://www.meetup.com/rust-noris/events/302080495/)
* 2024-08-22 | Manchester, UK | [Rust Manchester](https://www.meetup.com/rust-manchester/)
* [**Rust Manchester Talks August**](https://www.meetup.com/rust-manchester/events/302419276/)
* 2024-08-26 | Mainz, DE | [Fachschaft Mathematik+Informatik der JGU Mainz](https://rheinneckar.events/@fsmathe_informatik_mainz@rheinmain.social)
* [**Ferienkurs Rust**](https://rheinneckar.events/events/3f76f860-75c1-4f3a-810f-03fc0cecb691)
* 2024-08-29 | Berlin, DE | [OpenTechSchool Berlin](https://berline.rs/) + [Rust Berlin](https://www.meetup.com/rust-berlin/)
* [**Rust and Tell - Title**](https://www.meetup.com/rust-berlin/events/299421378/)
### North America
* 2024-08-08 | Mountain View, CA, US | [Mountain View Rust Meetup](https://www.meetup.com/mv-rust-meetup/)
* [**Rust Meetup at Hacker Dojo**](https://www.meetup.com/mv-rust-meetup/events/302067008/)
* 2024-08-08 | Seattle, WA, US | [Seattle Rust User Group](https://www.meetup.com/seattle-rust-user-group/events/)
* [**August Meetup**](https://www.meetup.com/seattle-rust-user-group/events/302330477/)
* 2024-08-19 | Minneapolis, MN US | [Minneapolis Rust Meetup](https://www.meetup.com/minneapolis-rust-meetup/)
* [**Minneapolis Rust Meetup: "State of Rust GPU Programming" & Happy Hour**](https://www.meetup.com/minneapolis-rust-meetup/events/301428949/)
* 2024-08-20 | New York, NY, US | [Rust NYC](https://www.meetup.com/Rust-NYC/)
* [**Rust NYC: Doing the Bare Minimum with Isograph (talk)**](https://www.meetup.com/rust-nyc/events/302480064/)
* 2024-08-20 | San Francisco, CA, US | [San Francisco Rust Study Group](https://www.meetup.com/san-francisco-rust-study-group/)
* [**Rust Hacking in Person**](https://www.meetup.com/san-francisco-rust-study-group/events/301614081/)
* 2024-08-21 | Virtual and In-Person (Vancouver, BC, CA) | [Vancouver Rust](https://www.meetup.com/vancouver-rust/)
* [**Rust Study/Hack/Hang-out**](https://www.meetup.com/vancouver-rust/events/298631735/)
* 2024-08-28 | Austin, TX, US | [Rust ATC](https://www.meetup.com/rust-atx/)
* [**Rust Lunch - Fareground**](https://www.meetup.com/rust-atx/events/xvkdgtygclblc/)
* 2024-08-29 | Nashville, TN, US | [Music City Rust Developers](https://www.meetup.com/music-city-rust-developers/)
* [**Music City Rust Developers : placeholder**](https://www.meetup.com/music-city-rust-developers/events/301420110/)
# Oceania
* 2024-08-22 | Auckland, NZ | [Rust AKL](https://www.meetup.com/rust-akl/)
* [**Rust AKL: Dot IX: Diagram Generator + Deep Learning from Scratch in Rust**](https://www.meetup.com/rust-akl/events/302431924/)
* 2024-08-27 | Canberra, ACT, AU | [Canberra Rust User Group (CRUG)](https://www.meetup.com/rust-canberra/)
* [**June Meetup**](https://www.meetup.com/rust-canberra/events/301887261/)
If you are running a Rust event please add it to the [calendar] to get
it mentioned here. Please remember to add a link to the event too.
Email the [Rust Community Team][community] for access.
[calendar]: https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com
[community]: mailto:community-team@rust-lang.org
## Jobs
<!--
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
-->
Please see the latest [Who's Hiring thread on r/rust](https://www.reddit.com/r/rust/comments/1ecdzp2/official_rrust_whos_hiring_thread_for_jobseekers/)
# Quote of the Week
> Want to have a crate with a million features? Host your own registry and revel in the combinatorial explosion of choices!
[Jake Goulding on rust-users](https://users.rust-lang.org/t/margo-a-simple-cargo-registry-using-static-files/115412)
Thanks to [Jonas Fassbender](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1599) for the suggestion!
[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)
*This Week in Rust is edited by: [nellshamrell](https://github.com/nellshamrell), [llogiq](https://github.com/llogiq), [cdmistman](https://github.com/cdmistman), [ericseppanen](https://github.com/ericseppanen), [extrawurst](https://github.com/extrawurst), [andrewpollack](https://github.com/andrewpollack), [U007D](https://github.com/U007D), [kolharsam](https://github.com/kolharsam), [joelmarcey](https://github.com/joelmarcey), [mariannegoldin](https://github.com/mariannegoldin), [bennyvasquez](https://github.com/bennyvasquez).*
*Email list hosting is sponsored by [The Rust Foundation](https://foundation.rust-lang.org/)*
<small>[Discuss on r/rust](https://www.reddit.com/r/rust/comments/1enceo0/this_week_in_rust_559_this_week_in_rust/)</small>