this-week-in-rust/content/2024-10-02-this-week-in-rus...

491 lines
39 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 567
Number: 567
Date: 2024-10-02
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
[rPGP 0.14.0 (a pure Rust implementation of OpenPGP) now supports the new RFC 9580](https://fosstodon.org/@hko/113198947595455844)
<!--
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.
-->
### Official
* [This Development-cycle in Cargo: 1.82](https://blog.rust-lang.org/inside-rust/2024/10/01/this-development-cycle-in-cargo-1.82.html)
* [Return type notation MVP: Call for testing!](https://blog.rust-lang.org/inside-rust/2024/09/26/rtn-call-for-testing.html)
### Project/Tooling Updates
* [Two weeks of binsider](https://binsider.dev/blog/v020/)
* [egui 0.29](https://github.com/emilk/egui/releases/tag/0.29.0)
* [pantheon: Parsing command line arguments](https://traxys.me/sheshat_pantheon_3.html)
* [System76 COSMIC Alpha 2 Released](https://blog.system76.com/post/cosmic-alpha-2-press-release)
* [Linus and Dirk on succession, Rust, and more](https://lwn.net/SubscriberLink/990534/a059b651e416a0c5/)
* [What the Nova GPU driver needs](https://lwn.net/Articles/990736/)
* [Getting PCI driver abstractions upstream](https://lwn.net/SubscriberLink/990918/ee00284446ec8d85/)
* [Coccinelle for Rust](https://lwn.net/SubscriberLink/991399/8bfb2ec24205dbaa/)
* [An update on gccrs development](https://lwn.net/SubscriberLink/991199/b109442b923b3909/)
* [BTF, Rust, and the kernel toolchain](https://lwn.net/SubscriberLink/991719/3fecd51a9a75f011/)
* [tokio-graceful 0.2.0: support shutdown trigger delay and forceful shutdown](https://github.com/plabayo/tokio-graceful/releases/tag/0.2.0)
* [Cargo Watch 8.5.3: the final update, as the project goes dormant](https://github.com/watchexec/cargo-watch/releases/tag/v8.5.3)
### Observations/Thoughts
* [Best practices for error handling in kernel Rust](https://lwn.net/SubscriberLink/990489/eab6106fa595052e/)
* [A discussion of Rust safety documentation](https://lwn.net/Articles/990273/)
* [(Re)Using rustc components in gccrs](https://rust-gcc.github.io/2024/09/20/reusing-rustc-components.html)
* [Whence '\n'?](https://rodarmor.com/blog/whence-newline/)
* [Should you use Rust in LLM based tools for performance?](https://bosun.ai/posts/rust-for-genai-performance/)
* [Code Generation in Rust vs C++26](https://brevzin.github.io/c++/2024/09/30/annotations/)
* [Rust adventure to develop a Game Boy emulator — Part 3: CPU Instructions](https://medium.com/@wolferxy/rust-adventure-to-develop-a-game-boy-emulator-part-3-cpu-instructions-d6d1d727026f)
* [Improved Turso (libsql) ergonomics in Rust](https://codethoughts.io/posts/2024-10-01-improved-turso-ergonomics-in-rust/)
* [Rewriting Rust](https://josephg.com/blog/rewriting-rust/)
* [Making overwrite opt-in #crazyideas](https://smallcultfollowing.com/babysteps/blog/2024/09/26/overwrite-trait/)
* [Rust needs a web framework for lazy developers](https://ntietz.com/blog/rust-needs-a-web-framework-for-lazy-developers/)
* [Safety Goggles for Alchemists](https://jack.wrenn.fyi/blog/safety-goggles-for-alchemists/)
* [Beyond multi-core parallelism: faster Mandelbrot with SIMD](https://pythonspeed.com/articles/optimizing-with-simd/)
* [Nine Rules for Running Rust on WASM WASI](https://medium.com/towards-data-science/nine-rules-for-running-rust-on-wasm-wasi-550cd14c252a)
* [Rust needs an extended standard library](https://kerkour.com/rust-stdx)
### Rust Walkthroughs
* [New Book: "100 Exercises to Learn Rust: A hands-on course by Mainmatter"](https://rust-exercises.com/100-exercises/).
* [Rust interop in practice: speaking Python and Javascript](https://tweedegolf.nl/en/blog/136/rust-interop-in-practice-speaking-python-and-javascript)
* [Series] [Mastering Dependency Injection in Rust: Despatma with Lifetimes](https://chesedo.me/blog/despatma-with-singleton-and-scoped-support/)
* [Sqlx4k - Interoperability between Kotlin and Rust, using FFI (Part 1)](https://smyrgeorge.github.io/posts/sqlx4k---interoperability-between-kotlin-and-rust-using-ffi-part-1/)
* [Serde for Trait objects](https://voelklmichael.github.io/Blog/serde-trait-part1.html)
* [video] [Build with Naz : Rust clap colorization](https://www.youtube.com/watch?v=lzMYDA6St0s)
### Miscellaneous
* [Resources for learning Rust for kernel development](https://lwn.net/SubscriberLink/990619/cb5f47f5d88818e4/)
## Crate of the Week
This week's crate is [binsider](https://binsider.dev), a terminal UI tool for analyzing binary files.
Despite yet another week without suggestions, llogiq is appropriately 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.
<!-- CFPs go here, use this format: * [project name - title of issue](URL to issue) -->
<!-- * [ - ]() -->
<!-- or if none - *No Calls for participation were submitted this week.* -->
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.
<!-- CFPs go here, use this format: * [**event name**](URL to CFP)| Date CFP closes in YYYY-MM-DD | city,state,country | Date of event in YYYY-MM-DD -->
<!-- or if none - *No Calls for papers or presentations were submitted this week.* -->
* [**Rustikon CFP**](https://sessionize.com/rustikon-2025) | [Event Page](https://www.rustikon.dev/) | Closes 2024-10-13 | Warsaw, PL | Event 2025-03-26
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
451 pull requests were [merged in the last week][merged]
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-09-24..2024-10-01
* [add new Tier-3 target: `loongarch64-unknown-linux-ohos`](https://github.com/rust-lang/rust/pull/130750)
* [add RISC-V vxworks targets](https://github.com/rust-lang/rust/pull/130549)
* [`cfg_match` Generalize inputs](https://github.com/rust-lang/rust/pull/130313)
* [add InProgress ErrorKind gated behind `io_error_inprogress` feature](https://github.com/rust-lang/rust/pull/130789)
* [allow instantiating object trait binder when upcasting](https://github.com/rust-lang/rust/pull/130866)
* [allow instantiating trait object binder in ptr-to-ptr casts](https://github.com/rust-lang/rust/pull/130944)
* [ban combination of GCE and new solver](https://github.com/rust-lang/rust/pull/130787)
* [collect relevant item bounds from trait clauses for nested rigid projections](https://github.com/rust-lang/rust/pull/120752)
* [diagnostics: wrap fn cast suggestions in parens when needed](https://github.com/rust-lang/rust/pull/130911)
* [don't trap into the debugger on panics under Linux](https://github.com/rust-lang/rust/pull/130810)
* [enable compiler fingerprint logs in verbose mode](https://github.com/rust-lang/rust/pull/131056)
* [fix `adt_const_params` leaking `{type error}` in error msg](https://github.com/rust-lang/rust/pull/131038)
* [fix diagnostics for coroutines with () as input](https://github.com/rust-lang/rust/pull/130820)
* [fix error span if arg to `asm!()` is a macro call](https://github.com/rust-lang/rust/pull/130917)
* [fix the misleading diagnostic for `let_underscore_drop` on type without `Drop` implementation](https://github.com/rust-lang/rust/pull/130833)
* [fix: ices on virtual-function-elimination about principal trait](https://github.com/rust-lang/rust/pull/130734)
* [implement trim-paths sysroot changes - take 2](https://github.com/rust-lang/rust/pull/129687) (RFC [#3127](https://rust-lang.github.io/rfcs/3127-trim-paths.html))
* [improve compile errors for invalid ptr-to-ptr casts with trait objects](https://github.com/rust-lang/rust/pull/130234)
* [initial std library support for NuttX](https://github.com/rust-lang/rust/pull/130595)
* [make `clashing_extern_declarations` considering generic args for ADT field](https://github.com/rust-lang/rust/pull/130924)
* [mark some more types as having insignificant dtor](https://github.com/rust-lang/rust/pull/130914)
* [on implicit `Sized` bound on fn argument, point at type instead of pattern](https://github.com/rust-lang/rust/pull/130912)
* [only add an automatic SONAME for Rust dylibs](https://github.com/rust-lang/rust/pull/130960)
* [pass Module Analysis Manager to Standard Instrumentations](https://github.com/rust-lang/rust/pull/130850)
* [pass correct HirId to `late_bound_vars` in diagnostic code](https://github.com/rust-lang/rust/pull/130879)
* [preserve brackets around if-lets and skip while-lets](https://github.com/rust-lang/rust/pull/131035)
* [properly elaborate effects implied bounds for super traits](https://github.com/rust-lang/rust/pull/129499)
* [reference UNSPECIFIED instead of `INADDR_ANY` in `join_multicast_v4`](https://github.com/rust-lang/rust/pull/130922)
* [reject leading unsafe in `cfg!(...)` and `--check-cfg`](https://github.com/rust-lang/rust/pull/131057)
* [rename `standalone` doctest attribute into `standalone_crate`](https://github.com/rust-lang/rust/pull/130931)
* [reorder stack spills so that constants come later](https://github.com/rust-lang/rust/pull/130329)
* [separate collection of crate-local inherent impls from error tracking](https://github.com/rust-lang/rust/pull/130764)
* [simple validation for unsize coercion in MIR validation](https://github.com/rust-lang/rust/pull/130735)
* [check vtable projections for validity in miri](https://github.com/rust-lang/rust/pull/130727)
* [miri: implements `arc4random_buf` shim for freebsd/solarish platforms](https://github.com/rust-lang/miri/pull/3918)
* [miri: make returning io errors more uniform and convenient](https://github.com/rust-lang/miri/pull/3929)
* [miri: refactor `return_read_bytes_and_count` and `return_written_byte_count_or_error`](https://github.com/rust-lang/miri/pull/3923)
* [miri: switch custom target JSON test to a less exotic target](https://github.com/rust-lang/miri/pull/3915)
* [skip query in `get_parent_item` when possible](https://github.com/rust-lang/rust/pull/130618)
* [stabilize `const_cell_into_inner`](https://github.com/rust-lang/rust/pull/130972)
* [stabilize `const_intrinsic_copy`](https://github.com/rust-lang/rust/pull/130762)
* [stabilize `const_refs_to_static`](https://github.com/rust-lang/rust/pull/129759)
* [stabilize `option_get_or_insert_default`](https://github.com/rust-lang/rust/pull/129087)
* [improve autovectorization of `to_lowercase` / `to_uppercase` functions](https://github.com/rust-lang/rust/pull/123778)
* [add `File` constructors that return files wrapped with a buffer](https://github.com/rust-lang/rust/pull/130803)
* [add `must_use` attribute to `len_utf8` and `len_utf16`](https://github.com/rust-lang/rust/pull/130819)
* [add `optimize_for_size` variants for stable and unstable sort as well as `select_nth_unstable`](https://github.com/rust-lang/rust/pull/129587)
* [fix `read_buf` uses in `std`](https://github.com/rust-lang/rust/pull/125404)
* [make ptr metadata functions callable from stable const fn](https://github.com/rust-lang/rust/pull/130966)
* [mark `make_ascii_uppercase` and `make_ascii_lowercase` in `[u8]` and `str` as const](https://github.com/rust-lang/rust/pull/130738)
* [fix some cfg logic around `optimize_for_size` and 16-bit targets](https://github.com/rust-lang/rust/pull/130832)
* [hook up `std::net` to wasi-libc on wasm32-wasip2 target](https://github.com/rust-lang/rust/pull/129638)
* [compute `RUST_EXCEPTION_CLASS` from native-endian bytes](https://github.com/rust-lang/rust/pull/130897)
* [hashbrown: change signature of `get_many_mut` APIs](https://github.com/rust-lang/hashbrown/pull/562)
* [regex: add `SetMatches::matched_all`](https://github.com/rust-lang/regex/pull/1228)
* [cargo timings: support dark color scheme in HTML output](https://github.com/rust-lang/cargo/pull/14588)
* [cargo toml: Add `autolib`](https://github.com/rust-lang/cargo/pull/14591)
* [cargo rustc: give trailing flags higher precedence on nightly](https://github.com/rust-lang/cargo/pull/14587)
* [cargo config: Don't double-warn about `$CARGO_HOME/config`](https://github.com/rust-lang/cargo/pull/14579)
* [cargo compiler: zero-copy deserialization when possible](https://github.com/rust-lang/cargo/pull/14608)
* [cargo: add `CARGO_MANIFEST_PATH` env variable](https://github.com/rust-lang/cargo/pull/14404)
* [cargo: lockfile path implies --locked on cargo install](https://github.com/rust-lang/cargo/pull/14556)
* [cargo: make lockfile v4 the default](https://github.com/rust-lang/cargo/pull/14595)
* [cargo: correct error count for `cargo check --message-format json`](https://github.com/rust-lang/cargo/pull/14598)
* [cargo perf: improve quality of completion performance traces](https://github.com/rust-lang/cargo/pull/14592)
* [cargo test: add support for features in the sat resolver](https://github.com/rust-lang/cargo/pull/14583)
* [cargo test: relax compiler panic assertions](https://github.com/rust-lang/cargo/pull/14618)
* [cargo test: relax panic output assertion](https://github.com/rust-lang/cargo/pull/14602)
* [rustdoc perf: clone `clean::Item` less](https://github.com/rust-lang/rust/pull/130857)
* [rustdoc: do not animate :target when user prefers reduced motion](https://github.com/rust-lang/rust/pull/130862)
* [rustdoc: inherit parent's stability where applicable](https://github.com/rust-lang/rust/pull/130798)
* [rustdoc: rewrite stability inheritance as a doc pass](https://github.com/rust-lang/rust/pull/131076)
* [rustdoc: copy correct path to clipboard for modules/keywords/primitives](https://github.com/rust-lang/rust/pull/131023)
* [rustdoc: redesign toolbar and disclosure widgets](https://github.com/rust-lang/rust/pull/129545)
* [rustdoc toolbar: Adjust spacings and sizing to improve behavior with over-long names](https://github.com/rust-lang/rust/pull/131002)
* [add `field@` and `variant@` doc-link disambiguators](https://github.com/rust-lang/rust/pull/130587)
* [rustfmt: add `style_edition` 2027](https://github.com/rust-lang/rustfmt/pull/6324)
* [clippy: `wildcard_in_or_patterns` will no longer be triggered for types annotated with `#[nonexhaustive]`](https://github.com/rust-lang/rust-clippy/pull/13456)
* [clippy: `invalid_null_ptr_usage`: fix false positives for `std::ptr::slice_from_raw_parts` functions](https://github.com/rust-lang/rust-clippy/pull/13452)
* [clippy: add reasons for or remove some `//@no-rustfix` annotations](https://github.com/rust-lang/rust-clippy/pull/13442)
* [clippy: extend `needless_lifetimes` to suggest eliding `impl` lifetimes](https://github.com/rust-lang/rust-clippy/pull/13286)
* [clippy: specifying reason in `expect(clippy::needless_return)` no longer triggers false positive](https://github.com/rust-lang/rust-clippy/pull/13393)
* [clippy: ignore `--print`/`-Vv` requests in `clippy-driver`](https://github.com/rust-lang/rust-clippy/pull/13468)
* [clippy: remove method call receiver special casing in `unused_async` lint](https://github.com/rust-lang/rust-clippy/pull/13471)
* [clippy: suggest `Option<&T>` instead of `&Option<T>`](https://github.com/rust-lang/rust-clippy/pull/13336)
* [clippy: convert `&Option<T>` to `Option<&T>`](https://github.com/rust-lang/rust-clippy/pull/13469)
* [clippy: use `std_or_core` to determine the correct prefix](https://github.com/rust-lang/rust-clippy/pull/13453)
* [rust-analyzer: building before a debugging session was restarted](https://github.com/rust-lang/rust-analyzer/pull/17923)
* [rust-analyzer: index workspace symbols at startup rather than on the first symbol search](https://github.com/rust-lang/rust-analyzer/pull/18180)
* [rust-analyzer: provide an config option to not set `cfg(test)`](https://github.com/rust-lang/rust-analyzer/pull/18085)
* [rust-analyzer: ambiguity with CamelCase diagnostic messages, align with rustc warnings](https://github.com/rust-lang/rust-analyzer/pull/18207)
* [rust-analyzer: better support references in consuming postfix completions](https://github.com/rust-lang/rust-analyzer/pull/18161)
* [rust-analyzer: consider lifetime GATs object unsafe](https://github.com/rust-lang/rust-analyzer/pull/18162)
* [rust-analyzer: don't report a startup error when a discover command is configured](https://github.com/rust-lang/rust-analyzer/pull/18193)
* [rust-analyzer: fix a bug in span map merge, and add explanations of how span maps are stored](https://github.com/rust-lang/rust-analyzer/pull/18166)
* [rust-analyzer: fix name resolution when an import is resolved to some namespace and then later in the algorithm another namespace is added](https://github.com/rust-lang/rust-analyzer/pull/18160)
* [rust-analyzer: fix resolution of label inside macro](https://github.com/rust-lang/rust-analyzer/pull/18210)
* [rust-analyzer: handle block exprs as modules when finding their parents](https://github.com/rust-lang/rust-analyzer/pull/18206)
* [rust-analyzer: pass all-targets for build scripts in more cli commands](https://github.com/rust-lang/rust-analyzer/pull/18184)
### Rust Compiler Performance Triage
A quiet week without too many perf. changes, although there was a nice perf. win on documentation
builds thanks to [#130857](https://github.com/rust-lang/rust/. Overall the results were positive.
Triage done by **@kobzol**.
Revision range: [4cadeda9..c87004a1](https://perf.rust-lang.org/?start=4cadeda932d5c261a9a0b1bbd25c4486e4e0a4c6&end=c87004a1f5be671e3f03f69fb13d8915bdbb6a52&absolute=false&stat=instructions%3Au)
**Summary**:
| (instructions:u) | mean | range | count |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regressions ❌ <br /> (primary) | 0.5% | [0.2%, 0.8%] | 11 |
| Regressions ❌ <br /> (secondary) | 0.3% | [0.2%, 0.6%] | 19 |
| Improvements ✅ <br /> (primary) | -1.2% | [-14.9%, -0.2%] | 21 |
| Improvements ✅ <br /> (secondary) | -1.0% | [-2.3%, -0.3%] | 5 |
| All ❌✅ (primary) | -0.6% | [-14.9%, 0.8%] | 32 |
3 Regressions, 4 Improvements, 3 Mixed; 2 of them in rollups
47 artifact comparisons made in total
[Full report here](https://github.com/Kobzol/rustc-perf/blob/ca0e3756481095ac4cce9305d5911f832e8d3b80/triage/2024-10-01.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:
* *No RFCs were approved this week.*
### 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)
* [disposition: postpone] [Make `cargo install` respect lockfiles by default](https://github.com/rust-lang/rfcs/pull/3585)
* [disposition: postpone] [RFC: Templating `CARGO_TARGET_DIR` to make it the parent of all target directories](https://github.com/rust-lang/rfcs/pull/3371)
* [disposition: postpone] [Cargo: providing artifacts (for artifact dependencies) via build.rs](https://github.com/rust-lang/rfcs/pull/3035)
#### Tracking Issues & PRs
##### [Rust](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* [disposition: merge] [Tracking Issue for constify-ing non-trait `Duration` methods](https://github.com/rust-lang/rust/issues/72440)
* [disposition: merge] [Tracking Issue for const `Result` methods](https://github.com/rust-lang/rust/issues/82814)
* [disposition: merge] [Tracking issue for const `Option` functions](https://github.com/rust-lang/rust/issues/67441)
* [disposition: merge] [Tracking Issue for `slice_first_last_chunk` feature (`slice::{split_,}{first,last}_chunk{,_mut}`)](https://github.com/rust-lang/rust/issues/111774)
* [disposition: merge] [Partially stabilize const_pin](https://github.com/rust-lang/rust/pull/130136)
* [disposition: merge] [Check elaborated projections from dyn don't mention unconstrained late bound lifetimes](https://github.com/rust-lang/rust/pull/130367)
* [disposition: merge] [Stabilize the `map`/`value` methods on `ControlFlow`](https://github.com/rust-lang/rust/pull/130518)
* [disposition: merge] [Do not consider match/let/ref of place that evaluates to `!` to diverge, disallow coercions from them too](https://github.com/rust-lang/rust/pull/129392)
* [disposition: merge] [Tracking issue for const slice::from_raw_parts_mut (const_slice_from_raw_parts_mut)](https://github.com/rust-lang/rust/issues/67456)
* [disposition: merge] [Stabilize `const {slice,array}::from_mut`](https://github.com/rust-lang/rust/pull/130538)
* [disposition: merge] [Tracking Issue for `feature(const_slice_split_at_mut)`](https://github.com/rust-lang/rust/issues/101804)
* [disposition: merge] [Tracking Issue for `str::from_utf8`_unchecked_mut as a `const fn`](https://github.com/rust-lang/rust/issues/91005)
* [disposition: merge] [Tracking Issue for `#![feature(const_unsafecell_get_mut)]`](https://github.com/rust-lang/rust/issues/88836)
* [disposition: merge] [Tracking Issue for const_maybe_uninit_assume_init](https://github.com/rust-lang/rust/issues/86722)
* [disposition: merge] [Tracking issue for `#![feature(const_float_classify)]`](https://github.com/rust-lang/rust/issues/72505)
* [disposition: merge] [Tracking Issue for const_str_as_mut](https://github.com/rust-lang/rust/issues/130086)
* [disposition: merge] [Tracking Issue for `pin_deref_mut`](https://github.com/rust-lang/rust/issues/86918)
* [disposition: merge] [Tracking Issue for `UnsafeCell::from_mut`](https://github.com/rust-lang/rust/issues/111645)
* [disposition: merge] [Tracking Issue for `BufRead::skip_until`](https://github.com/rust-lang/rust/issues/111735)
##### [Cargo](https://github.com/rust-lang/cargo/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* [disposition: merge] [docs(charter): Declare new Intentional Artifacts as 'small' changes](https://github.com/rust-lang/cargo/pull/14599)
##### [Language Team](https://github.com/rust-lang/lang-team/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc+)
* [disposition: merge] [Meeting proposal: rename "object safety" to "dyn compatibility"](https://github.com/rust-lang/lang-team/issues/286)
##### [Language Reference](https://github.com/rust-lang/reference/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
* *No Language Reference RFCs entered Final Comment Period this week.*
##### [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] [num::WrappingFrom trait for conversions between integers](https://github.com/rust-lang/rfcs/pull/3703)
* [new] [Add helper methods on primitive pointer types for pointer tagging](https://github.com/rust-lang/rfcs/pull/3700)
## Upcoming Events
Rusty Events between 2024-10-02 - 2024-10-30 🦀
### Virtual
* 2024-10-02 | Virtual (Cardiff, UK)| [Rust and C++ Cardiff](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/)
* [**Rust for Rustaceans Book Club: Chapter 8 - Asynchronous Programming**](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/301314544/)
* 2024-10-02 | Virtual (Indianapolis, IN, US) | [Indy Rust](https://www.meetup.com/indyrs/)
* [**Indy.rs - Ezra Singh on Rust's HashMap**](https://www.meetup.com/indyrs/events/302031649/)
* 2024-10-02 | Virtual (Vancouver, BC, CA) | [Vancouver Postgres](https://www.meetup.com/vancouver-postgres/)
* [**Leveraging a PL/RUST extension to protect sensitive data in PostgreSQL**](https://www.meetup.com/vancouver-postgres/events/302160672/)
* 2024-10-03 | Virtual | [Women in Rust](https://www.meetup.com/women-in-rust/)
* [**Part 1 of 4 - Rust Essentials: Build Your First API**](https://www.meetup.com/women-in-rust/events/303213069/)
* 2024-10-03 | 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/298897992/)
* 2024-10-08 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallasrust/)
* [**Second Tuesday**](https://www.meetup.com/dallasrust/events/299346983/)
* 2024-10-10 | Virtual | [Women in Rust](https://www.meetup.com/women-in-rust/)
* [**Part 2 of 4 - Navigating Rust Web Frameworks: Axum, Actix, and Rocket**](https://www.meetup.com/women-in-rust/events/303213792/)
* 2024-10-10 | Virtual (Barcelona, ES) | [BcnRust](https://bcnrust.github.io) + [Codurance](https://www.codurance.com/) + [Heavy Duty Builders](https://heavyduty.builders/)
* [**15th BcnRust Meetup**](https://www.meetup.com/bcnrust/events/303443195/)
* 2024-10-10 | 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/298633270/)
* 2024-10-10 | Virtual (Girona, ES) | [Rust Girona](https://www.meetup.com/rust-girona/)
* [**Leveraging Rust to Improve Your Programming Fundamentals & De Rust A Solana**](https://www.meetup.com/rust-girona/events/303484509/)
* 2024-10-10 - 2024-10-11 | Virtual and In-Person (Vienna, AT) | [Euro Rust](eurorust)
* [**Euro Rust 2024**](https://eurorust.eu/)
* 2024-10-14 | Virtual | [Women in Rust](https://www.meetup.com/women-in-rust/)
* [**👋 Community Catch Up**](https://www.meetup.com/women-in-rust/events/302828025/)
* 2024-10-15 | Virtual (Washington, DC, US) | [Rust DC](https://www.meetup.com/rustdc/)
* [**Mid-month Rustful**](https://www.meetup.com/rustdc/events/299346970/)
* 2024-10-16 | 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/298631737/)
* 2024-10-17 | Virtual | [Women in Rust](https://www.meetup.com/women-in-rust/)
* [**Part 3 of 4 - Hackathon Ideation Lab**](https://www.meetup.com/women-in-rust/events/303213817/)
* 2024-10-17| 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/298898023)
* 2024-10-22 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallasrust/)
* [**Last Tuesday**](https://www.meetup.com/dallasrust/events/fkmcntygcnbdc/)
* 2024-10-24 | 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/298633271/)
* 2024-10-26 | Virtual (Gdansk, PL) | [Stacja IT Trójmiasto](https://www.meetup.com/stacja-it-trojmiasto/)
* [**Rust budowanie narzędzi działających w linii komend**](https://www.meetup.com/stacja-it-trojmiasto/events/303550643/)
* 2024-10-29 | Virtual (Dallas, TX, US) | [Dallas Rust](https://www.meetup.com/dallasrust/)
* [**Last Tuesday**](https://www.meetup.com/dallasrust/events/301585671/)
### Africa
* 2024-10-05 | Kampala, UG | [Rust Circle Kampala](https://www.eventbrite.com/o/rust-circle-kampala-65249289033/)
* [**Rust Circle Meetup**](https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763176587)
### Asia
* 2024-10-09 | Subang Jaya / Kuala Lumpur, Selangor, MY | [Rust Malaysia](https://rust-malaysia.github.io/meetup/)
* [**Rust Malaysia Meetup - Traits and How to Read Trait (October 2024)**](https://docs.google.com/forms/d/e/1FAIpQLScNS5IWmnzTTJAOw-RIxdj4_BWbxB5NVmAVO30XHr_viMbLqQ/viewform)
* 2024-10-17 - 2024-10-18 | Beijing, CN | [Global Open-Source Innovation Meetup (GOSIM)](https://www.gosim.org/)
* [**GOSIM 2024**](https://china2024.gosim.org/)
* 2024-10-19 | Bangalore/Bengaluru, IN | [Rust Bangalore](https://hasgeek.com/rustbangalore)
* [**October 2024 Rustacean meetup**](https://hasgeek.com/rustbangalore/october-2024-rustacean-meetup/)
### Europe
* 2024-10-02 | Oxford, UK | [Oxfrod Rust Meetup Group](https://www.meetup.com/oxford-rust-meetup-group/)
* [**Rust for Rustaceans Book Club: Chapter 11: Foreign Function Interfaces**](https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/303445033/)
* 2024-10-02 | Stockholm, SE | [Stockholm Rust](https://www.meetup.com/Stockholm-Rust/)
* [**Rust Meetup @Funnel**](https://www.meetup.com/Stockholm-Rust/events/303213095)
* 2022-10-03 | Nürnberg, DE | [Rust Nurnberg DE](https://www.meetup.com/rust-noris/)
* [**Rust Nürnberg online**](https://www.meetup.com/rust-noris/events/300820273/)
* 2024-10-03 | Oslo, NO | [Rust Oslo](https://www.meetup.com/rust-oslo/events/)
* [**Rust Hack'n'Learn at Kampen Bistro**](https://www.meetup.com/rust-oslo/events/303154268/)
* 2024-10-09 | Reading, UK | [Reading Rust Workshop](https://rustworkshop.co/meetup/)
* [**Reading Rust Meetup**](https://www.meetup.com/reading-rust-workshop/events/wrdkmtygcnbmb/)
* 2024-10-10 - 2024-10-11 | Virtual and In-Person (Vienna, AT) | [Euro Rust](eurorust)
* [**Euro Rust 2024**](https://eurorust.eu/)
* 2024-10-15 | Leipzig, DE | [Rust - Modern Systems Programming in Leipzig](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/)
* [**Topic TBD**](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/302425056/)
* 2024-10-17 | Darmstadr, DE | [Rust Rhein-Main](https://www.meetup.com/rust-rhein-main)
* [**Rust Code Together**](https://www.meetup.com/rust-rhein-main/events/303240000/)
* 2024-10-15 | Cambridge, UK | [Cambridge Rust Meetup](https://www.meetup.com/cambridge-rust-meetup/)
* [**Monthly Rust Meetup**](https://www.meetup.com/cambridge-rust-meetup/events/303606799/)
* 2024-10-15 | Leipzig, DE | [Rust - Modern Systems Programming in Leipzig](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/)
* [**Topic TBD**](https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/302425056/)
* 2024-10-15 | Munich, DE | [Rust Munich](https://www.meetup.com/rust-munich/)
* [**Rust Munich 2024 / 3 - hybrid**](https://www.meetup.com/rust-munich/events/303273953/)
* 2024-10-16 | Manchester, UK | [Rust Manchester](https://www.meetup.com/rust-manchester/)
* [**Rust Manchester Talks October - Leptos and Crux**](https://www.meetup.com/rust-manchester/events/303658240/)
* 2024-10-17 | Barcelona, ES | [BcnRust](https://bcnrust.github.io)
* [**16th BcnRust Meetup**](https://www.meetup.com/bcnrust/events/303792888/)
* 2024-10-17 | Bern, CH | [Rust Bern](https://www.meetup.com/de-DE/rust-bern/)
* [**2024 Rust Talks Bern #3**](https://www.meetup.com/rust-bern/events/303617330/)
* 2024-10-22 | Warsaw, PL | [Rust Warsaw](https://www.meetup.com/rust-warsaw/)
* [**New Rust Warsaw Meetup #2**](https://www.meetup.com/rust-warsaw/events/303619536/)
* 2024-10-28 | Paris, FR | [Rust Paris](https://www.meetup.com/rust-paris/events/)
* [**Rust Meetup #71**](https://www.meetup.com/rust-paris/events/303663366/)
* 2024-10-29 | Aarhus, DK | [Rust Aarhus](https://www.meetup.com/rust-aarhus/)
* [**Hack Night**](https://www.meetup.com/rust-aarhus/events/303479865)
* 2024-10-30 | Hamburg, DE | [Rust Meetup Hamburg](https://www.meetup.com/rust-meetup-hamburg/)
* [**Rust Hack & Learn October 2024**](https://www.meetup.com/rust-meetup-hamburg/events/303373054/)
### North America
* 2024-10-03 | Boston, MA, US | [SquiggleConf](https://2024.squiggleconf.com/)
* [**SquiggleConf 2024: "Oxc: Pluggable Next-Gen Tooling At Rust Speed", Don Isaac**](https://2024.squiggleconf.com/schedule)
* 2024-10-03 | Montréal, QC, CA | [Rust Montréal](https://www.meetup.com/rust-montreal/)
* [**October Social**](https://www.meetup.com/rust-montreal/events/303609215/)
* 2024-10-03 | 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/303768323/)
* 2024-10-03 | St. Louis, MO, US | [STL Rust](https://www.meetup.com/stl-rust/)
* [**Iterators in Rust**](https://www.meetup.com/stl-rust/events/302371456/)
* 2024-10-04 | Mexico City, DF, MX | [Rust MX](https://www.meetup.com/rust-mx/)
* [**Multi threading y Async en Rust pt1. Prerequisitos**](https://www.meetup.com/rust-mx/events/303480458/)
* 2024-10-05 | Cambridge, MA, US | [Boston Rust Meetup](https://www.meetup.com/bostonrust/)
* [**Davis Square Rust Lunch, Oct 5**](https://www.meetup.com/bostonrust/events/303708325/)
* 2024-10-08 | Detroit, MI, US | [Detroit Rust](https://www.meetup.com/detroitrust/)
* [**Rust Community Meetup - Ann Arbor**](https://www.meetup.com/detroitrust/events/cvdcntygcnblb/)
* 2024-10-15 | 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/302638250/)
* 2024-10-16 | 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/298631737/)
* 2024-10-17 | Virtual and In-Person (Seattle, WA, US) | [Seattle Rust User Group](https://www.meetup.com/seattle-rust-user-group/events/)
* [**October Meetup**](https://www.meetup.com/join-srug/events/303545170/)
* 2024-10-19 | Cambridge, MA, US | [Boston Rust Meetup](https://www.meetup.com/bostonrust/)
* [**North End Rust Lunch, Oct 19**](https://www.meetup.com/bostonrust/events/303708335/)
* 2024-10-23 | Austin, TX, US | [Rust ATX](https://www.meetup.com/rust-atx/)
* [**Rust Lunch - Fareground**](https://www.meetup.com/rust-atx/events/xvkdgtygcnbfc/)
* 2024-10-27 | Cambridge, MA, US | [Boston Rust Meetup](https://www.meetup.com/bostonrust/)
* [**Kendall Rust Lunch, Oct 27**](https://www.meetup.com/bostonrust/events/303708359/)
### Oceania
* 2024-10-29 | Canberra, ACT, AU | [Canberra Rust User Group (CRUG)](https://www.meetup.com/rust-canberra/)
* [**June Meetup**](https://www.meetup.com/rust-canberra/events/303128131/)
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/1fa0tf6/official_rrust_whos_hiring_thread_for_jobseekers/)
# Quote of the Week
> Just to provide another perspective: if you can write the programs you want to write, then all is good. You don't have to use every single tool in the standard library.
>
> I co-authored the Rust book. I have twelve years experience writing Rust code, and just over thirty years of experience writing software. I have written a macro_rules macro exactly one time, and that was 95% taking someone else's macro and modifying it. I have written one proc macro. I have used Box::leak once. I have never used Arc::downgrade. I've used Cow a handful of times.
>
> Don't stress yourself out. You're doing fine.
[Steve Klabnik on r/rust](https://www.reddit.com/r/rust/comments/1fofg43/comment/lopwnyd/)
Thanks to [Jacob Finkelman](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1614) 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/1fvgv4g/this_week_in_rust_567/)</small>