Skip to content

C/QotW and notable changes #5973

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 3, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 115 additions & 3 deletions draft/2024-10-02-this-week-in-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ and just ask the editors to select the category.

## Crate of the Week

<!-- COTW goes here -->
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]!

Expand Down Expand Up @@ -98,7 +100,109 @@ If you are an event organizer hoping to expand the reach of your event, please s

## Updates from the Rust Project

<!-- Rust updates go here -->
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

Expand Down Expand Up @@ -278,7 +382,15 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)

# Quote of the Week

<!-- QOTW goes here -->
> 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)

Expand Down
Loading