diff --git a/draft/2025-01-29-this-week-in-rust.md b/draft/2025-01-29-this-week-in-rust.md index 2da2d19f5..e4796a753 100644 --- a/draft/2025-01-29-this-week-in-rust.md +++ b/draft/2025-01-29-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 [embed\_it](https://github.com/riberk/embed_it), a crate that helps you to embed assets into your binary and generates structs / trait implementations for each file or directory. + +Thanks to [Riberk](https://users.rust-lang.org/t/crate-of-the-week/2704/1390) for the self-suggestion! [Please submit your suggestions and votes for next week][submit_crate]! @@ -106,7 +108,108 @@ If you are an event organizer hoping to expand the reach of your event, please s ## Updates from the Rust Project - +408 pull requests were [merged in the last week][merged] + +[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2025-01-21..2025-01-28 + +* [support QNX 7.1 with `io-sock`+libstd and QNX 8.0 (`no_std` only)](https://github.com/rust-lang/rust/pull/133631) +* [mark all NuttX targets as tier 3 target and support the standard library](https://github.com/rust-lang/rust/pull/136037) +* [add NuttX support for AArch64 and ARMv7-A targets](https://github.com/rust-lang/rust/pull/135757) +* [add `#[optimize(none)]`](https://github.com/rust-lang/rust/pull/128657) +* [account for mutable borrow in argument suggestion](https://github.com/rust-lang/rust/pull/136032) +* [add a suggestion to cast `target_feature` fn items to fn pointers](https://github.com/rust-lang/rust/pull/136064) +* [add a workaround for parallel rustc crashing when there are delayed bugs](https://github.com/rust-lang/rust/pull/135988) +* [change `collect_and_partition_mono_items` tuple return type to a `struct`](https://github.com/rust-lang/rust/pull/136118) +* [codegen: store ScalarPair via memset when one side is undef and the other side can be memset](https://github.com/rust-lang/rust/pull/135335) +* [compiler: set `target_abi = "ilp32e"` on all riscv32e targets](https://github.com/rust-lang/rust/pull/134358) +* [coverage: prepare for upcoming changes to counter creation](https://github.com/rust-lang/rust/pull/135873) +* [detect missing fields with default values and suggest `..`](https://github.com/rust-lang/rust/pull/135794) +* [do not assume const params are printed after type params](https://github.com/rust-lang/rust/pull/135749) +* [don't ICE in coerce when autoderef fails to structurally normalize non-WF type in new solver](https://github.com/rust-lang/rust/pull/134746) +* [don't drop types with no drop glue when building drops for tailcalls](https://github.com/rust-lang/rust/pull/135976) +* [don't pick `T: FnPtr` nested goals as the leaf goal in diagnostics for new solver](https://github.com/rust-lang/rust/pull/135866) +* [enable `unreachable_pub` lint in `test` and `proc_macro` crates](https://github.com/rust-lang/rust/pull/135366) +* [enable kernel sanitizers for aarch64-unknown-none-softfloat](https://github.com/rust-lang/rust/pull/135905) +* [fix GDB `OsString` provider on Windows](https://github.com/rust-lang/rust/pull/135812) +* [fix ICE: multiple never-pattern arm doesn't have `false_edge_start_block`](https://github.com/rust-lang/rust/pull/135409) +* [forbid usage of `hir Infer` const/ty variants in ambiguous contexts](https://github.com/rust-lang/rust/pull/135272) +* [handle global trait bounds defining assoc types](https://github.com/rust-lang/rust/pull/135766) +* [implement `needs-subprocess` directive, and cleanup a bunch of tests to use `needs-{subprocess,threads}`](https://github.com/rust-lang/rust/pull/135926) +* [improve check-cfg expected names diagnostic](https://github.com/rust-lang/rust/pull/136016) +* [make our `DIFlags` match `LLVMDIFlags` in the LLVM-C API](https://github.com/rust-lang/rust/pull/135156) +* [make the `wasm_c_abi` future compat warning a hard error](https://github.com/rust-lang/rust/pull/133951) +* [point at invalid utf-8 span on user's source code](https://github.com/rust-lang/rust/pull/135557) +* [properly record metavar spans for other expansions other than TT](https://github.com/rust-lang/rust/pull/134478) +* [properly report error when object type param default references self](https://github.com/rust-lang/rust/pull/135971) +* [remove support for the (unstable) `#[start]` attribute](https://github.com/rust-lang/rust/pull/134299) +* [remove usages of `QueryNormalizer` in the compiler](https://github.com/rust-lang/rust/pull/135914) +* [reword resolve errors caused by likely missing crate in dep tree](https://github.com/rust-lang/rust/pull/133154) +* [rework dyn trait lowering to stop being so intertwined with trait alias expansion](https://github.com/rust-lang/rust/pull/133830) +* [shorten linker output even more when `--verbose` is not present](https://github.com/rust-lang/rust/pull/135707) +* [show linker output even if the linker succeeds](https://github.com/rust-lang/rust/pull/119286) +* [simplify `parse_format::Parser::ws` by using `next_if`](https://github.com/rust-lang/rust/pull/135920) +* [skip `if-let-rescope` lint unless requested by migration](https://github.com/rust-lang/rust/pull/132666) +* [skip suggestions in `derive`d code](https://github.com/rust-lang/rust/pull/136027) +* [support wasm inline assembly in `naked_asm!`](https://github.com/rust-lang/rust/pull/135648) +* [tidy Python improvements](https://github.com/rust-lang/rust/pull/135950) +* [uplift `clippy::double_neg` lint as `double_negations`](https://github.com/rust-lang/rust/pull/126604) +* [use `structurally_normalize` instead of manual `normalizes-to` goals in alias relate errors](https://github.com/rust-lang/rust/pull/135816) +* [use identifiers more in diagnostics code](https://github.com/rust-lang/rust/pull/136114) +* [use short type string in E0308 secondary span label](https://github.com/rust-lang/rust/pull/135949) +* [miri: many-seeds: do not use more than 8 threads](https://github.com/rust-lang/miri/pull/4152) +* [miri: pre-intern name when searching module children](https://github.com/rust-lang/miri/pull/4153) +* [implement `ByteStr` and `ByteString` types](https://github.com/rust-lang/rust/pull/135073) +* [implement `VecDeque::pop_front_if` & `VecDeque::pop_back_if`](https://github.com/rust-lang/rust/pull/135890) +* [implement phantom variance markers](https://github.com/rust-lang/rust/pull/135807) +* [windows x86: Change i128 to return via the vector ABI](https://github.com/rust-lang/rust/pull/134290) +* [cargo: config: When merging, replace rather than combining specific configuration keys](https://github.com/rust-lang/cargo/pull/15066) +* [cargo: login: Deprecate CLI token](https://github.com/rust-lang/cargo/pull/15057) +* [cargo: fix `shared_std_dependency_rebuild` running on Windows](https://github.com/rust-lang/cargo/pull/15111) +* [cargo: fix broken links in the Cargo book](https://github.com/rust-lang/cargo/pull/15109) +* [cargo: make --allow-dirty imply --allow-staged](https://github.com/rust-lang/cargo/pull/15013) +* [cargo: print globs when workspace members can't be found](https://github.com/rust-lang/cargo/pull/15093) +* [cargo: remove unused `-C link-arg=-fuse-ld=lld`](https://github.com/rust-lang/cargo/pull/15097) +* [rustdoc: Fix indent of trait items on mobile](https://github.com/rust-lang/rust/pull/135998) +* [rustfmt: fix: `wrap_comments` creating invalid code blocks](https://github.com/rust-lang/rustfmt/pull/6417) +* [clippy: `arithmetic_side_effects`: check adjusted expression types](https://github.com/rust-lang/rust-clippy/pull/14062) +* [clippy: `match_bool`: fix suggestion if guard is present](https://github.com/rust-lang/rust-clippy/pull/14039) +* [clippy: `short_circuit_statement`: handle macros and parenthesis better](https://github.com/rust-lang/rust-clippy/pull/14047) +* [clippy: `unnecessary_semicolon`: do not lint if it may cause borrow errors](https://github.com/rust-lang/rust-clippy/pull/14049) +* [clippy: add necessary adjustments to suggestion to remove redundant `.into_iter()` calls](https://github.com/rust-lang/rust-clippy/pull/14035) +* [clippy: add new lint `doc_overindented_list_items`](https://github.com/rust-lang/rust-clippy/pull/13711) +* [clippy: add new lint `non_std_lazy_statics`](https://github.com/rust-lang/rust-clippy/pull/13770) +* [clippy: correct suggestions in `no_std`](https://github.com/rust-lang/rust-clippy/pull/13999) +* [clippy: don't trigger `needless_late_init` when the first usage is in macro](https://github.com/rust-lang/rust-clippy/pull/14053) +* [clippy: make `unnecessary_map_or` work with ref and `Deref` to `Option`/`Result`](https://github.com/rust-lang/rust-clippy/pull/14024) +* [clippy: new lint `sliced_string_as_bytes`](https://github.com/rust-lang/rust-clippy/pull/14002) +* [clippy: proper applicability for `obfuscated_if_else`](https://github.com/rust-lang/rust-clippy/pull/14061) +* [clippy: suggest using `Vec::extend()` in `same_item_push`](https://github.com/rust-lang/rust-clippy/pull/13987) +* [clippy: trigger `obfuscated_if_else` for `.then(..).unwrap_or(..)`](https://github.com/rust-lang/rust-clippy/pull/14021) +* [rust-analyzer: check cfg when collecting macro defs](https://github.com/rust-lang/rust-analyzer/pull/19014) +* [rust-analyzer: explicitly add buildfiles when constructing ProjectFolders](https://github.com/rust-lang/rust-analyzer/pull/19019) +* [rust-analyzer: implement `arbitrary-self-types`](https://github.com/rust-lang/rust-analyzer/pull/19012) +* [rust-analyzer: implement `default-field-values`](https://github.com/rust-lang/rust-analyzer/pull/19001) +* [rust-analyzer: provide a config to control auto-insertion of `await` and `iter()`](https://github.com/rust-lang/rust-analyzer/pull/18993) +* [rust-analyzer: support safe functions marked with `#[target_feature(..)]`](https://github.com/rust-lang/rust-analyzer/pull/19038) +* [rust-analyzer: don't complete `doc(hidden) enum` variants and use trees](https://github.com/rust-lang/rust-analyzer/pull/19034) +* [rust-analyzer: don't suggest `into_iter().method()` on iterators](https://github.com/rust-lang/rust-analyzer/pull/19050) +* [rust-analyzer: fix `ItemScope` not recording glob imports](https://github.com/rust-lang/rust-analyzer/pull/19016) +* [rust-analyzer: fix a missing standard token in semantic highlighting](https://github.com/rust-lang/rust-analyzer/pull/19045) +* [rust-analyzer: fix flycheck panicking with "once" invocation strategy](https://github.com/rust-lang/rust-analyzer/pull/19017) +* [rust-analyzer: fix flyimport not filtering via stability of import path](https://github.com/rust-lang/rust-analyzer/pull/19028) +* [rust-analyzer: fix syntactic highlighting for renames](https://github.com/rust-lang/rust-analyzer/pull/19047) +* [rust-analyzer: in completion's expand, consider recursion stop condition (when we're not inside a macro call anymore) *after* the recursive call instead of before it](https://github.com/rust-lang/rust-analyzer/pull/19037) +* [rust-analyzer: prevent infinite recursion of bounds formatting](https://github.com/rust-lang/rust-analyzer/pull/19020) +* [rust-analyzer: report calling unsafe fn pointer as unsafe](https://github.com/rust-lang/rust-analyzer/pull/19051) +* [rust-analyzer: sort completion items that skip `await` and `iter()` behind those that don't](https://github.com/rust-lang/rust-analyzer/pull/18988) +* [rust-analyzer: goto `Display::fmt` when invoked on `to_string`](https://github.com/rust-lang/rust-analyzer/pull/18986) +* [rust-analyzer: increase `AUTODEREF_RECURSION_LIMIT` to 20](https://github.com/rust-lang/rust-analyzer/pull/19004) +* [rust-analyzer: keep already computed inlay hint properties instead of late resolving them](https://github.com/rust-lang/rust-analyzer/pull/18991) +* [rust-analyzer: make niches into nices](https://github.com/rust-lang/rust-analyzer/pull/18973) +* [rust-analyzer: only collect implicit visibile use symbols if they have renames](https://github.com/rust-lang/rust-analyzer/pull/19026) +* [rust-analyzer: prioritize formatting thread tasks in `main_loop`](https://github.com/rust-lang/rust-analyzer/pull/19052) +* [rust-analyzer: split out `ExpressionStore` from `Body`](https://github.com/rust-lang/rust-analyzer/pull/19036) +* [rust-analyzer: use `strict_provenance`](https://github.com/rust-lang/rust-analyzer/pull/18909) ### Rust Compiler Performance Triage @@ -293,7 +396,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE) # Quote of the Week - +> I have experience in multiple styles of MMA gained from fighting the borrow checker, if that counts. + +– [Richard Neumann on rust-users](https://users.rust-lang.org/t/is-it-worth-getting-a-degree-in-rust/124678/2) + +Thanks to [Jonas Fassbender](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1654) for the suggestion! [Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)