diff --git a/draft/2024-10-02-this-week-in-rust.md b/draft/2024-10-02-this-week-in-rust.md index 65f0a8787..879432dec 100644 --- a/draft/2024-10-02-this-week-in-rust.md +++ b/draft/2024-10-02-this-week-in-rust.md @@ -47,7 +47,9 @@ and just ask the editors to select the category. ## 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]! @@ -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 - +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`](https://github.com/rust-lang/rust-clippy/pull/13336) +* [clippy: convert `&Option` 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 @@ -278,7 +382,15 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE) # 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)