From f5d9bd82c2cfbf36c0bd85bacaf4d5ecc78fb934 Mon Sep 17 00:00:00 2001 From: Andre Bogus Date: Wed, 1 Jan 2025 11:14:35 +0100 Subject: [PATCH] C/QotW and notable changes --- draft/2025-01-01-this-week-in-rust.md | 102 +++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 3 deletions(-) diff --git a/draft/2025-01-01-this-week-in-rust.md b/draft/2025-01-01-this-week-in-rust.md index 4e6c2319e..bc450c3c2 100644 --- a/draft/2025-01-01-this-week-in-rust.md +++ b/draft/2025-01-01-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 [fake](https://crates.io/crates/fake), a library (and recently console utility) to generate fake data of various types. + +Thanks to [llogiq](https://users.rust-lang.org/t/crate-of-the-week/2704/1384) for the half-self-suggestion! [Please submit your suggestions and votes for next week][submit_crate]! @@ -106,7 +108,97 @@ If you are an event organizer hoping to expand the reach of your event, please s ## Updates from the Rust Project - +331 pull requests were [merged in the last week][merged] + +[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-12-24..2024-12-31 + +* [enable LSX feature for LoongArch OpenHarmony target](https://github.com/rust-lang/rust/pull/134751) +* [explicitly set float ABI for all ARM targets](https://github.com/rust-lang/rust/pull/134932) +* [A couple datalog/borrowck cleanups](https://github.com/rust-lang/rust/pull/134914) +* [`rustc_codegen_ssa`: Buffer file writes in `link_rlib`](https://github.com/rust-lang/rust/pull/134866) +* [account for C string literals and `format_args` in `HiddenUnicodeCodepoints` lint](https://github.com/rust-lang/rust/pull/134956) +* [account for removal of multiline span in suggestion](https://github.com/rust-lang/rust/pull/134664) +* [actually print all the relevant parts of a coroutine in verbose mode](https://github.com/rust-lang/rust/pull/134741) +* [add `--no-capture`/`--nocapture` as bootstrap arguments](https://github.com/rust-lang/rust/pull/134809) +* [add a compiler intrinsic to back `bigint_helper_methods`](https://github.com/rust-lang/rust/pull/133663) +* [avoid ICE in borrowck](https://github.com/rust-lang/rust/pull/134627) +* [compiler: add a statement-of-intent to `rustc_abi`](https://github.com/rust-lang/rust/pull/134941) +* [compute liveness constraints in location-sensitive polonius](https://github.com/rust-lang/rust/pull/134670) +* [consider arm to diverge if guard diverges](https://github.com/rust-lang/rust/pull/134735) +* [consider empty-unreachable otherwise branches in MatchBranchSimplification](https://github.com/rust-lang/rust/pull/131244) +* [default to short backtraces for dev builds of rustc itself](https://github.com/rust-lang/rust/pull/134743) +* [implement `default_overrides_default_fields` lint](https://github.com/rust-lang/rust/pull/134737) +* [improve default target options for `x86_64-unknown-linux-none`](https://github.com/rust-lang/rust/pull/134765) +* [improve type mutation for certain structures](https://github.com/rust-lang/rust/pull/134724) +* [make -Csoft-float have an effect on all ARM targets](https://github.com/rust-lang/rust/pull/134885) +* [make `ty::Error` implement all auto traits](https://github.com/rust-lang/rust/pull/134798) +* [make sure we check the future type is `Sized` in `AsyncFn*`](https://github.com/rust-lang/rust/pull/134933) +* [skip parenthesis around tuple `struct` field calls](https://github.com/rust-lang/rust/pull/134834) +* [skip parenthesis if `.` makes statement boundary unambiguous](https://github.com/rust-lang/rust/pull/134833) +* [some random region tweaks](https://github.com/rust-lang/rust/pull/134827) +* [strip debuginfo from rustc-main and rustdoc](https://github.com/rust-lang/rust/pull/134803) +* [miri: FD handling: avoid unnecessary dynamic downcasts](https://github.com/rust-lang/miri/pull/4114) +* [miri: epoll: avoid some clones](https://github.com/rust-lang/miri/pull/4115) +* [miri: error on some invalid flag combinations](https://github.com/rust-lang/miri/pull/4109) +* [miri: fix toolchain flag parsing](https://github.com/rust-lang/miri/pull/4113) +* [miri: socket read/write cleanup](https://github.com/rust-lang/miri/pull/4112) +* [stabilize `const_alloc_layout`](https://github.com/rust-lang/rust/pull/134768) +* [stabilize `const_swap`](https://github.com/rust-lang/rust/pull/134757) +* [stabilize `style_edition = "2024"` in-tree](https://github.com/rust-lang/rust/pull/134929) +* [make `slice::as_flattened_mut` unstably const](https://github.com/rust-lang/rust/pull/134927) +* [tidy up bigint multiplication methods](https://github.com/rust-lang/rust/pull/132195) +* [from iterator for more tuples](https://github.com/rust-lang/rust/pull/132431) +* [add `into_array` conversion destructors for `Box`, Rc`, and Arc`](https://github.com/rust-lang/rust/pull/134379) +* [avoid short writes in LineWriter](https://github.com/rust-lang/rust/pull/134620) +* [unify `fs::copy` and `io::copy` on Linux](https://github.com/rust-lang/rust/pull/134547) +* [fix forgetting to save statx availability on success](https://github.com/rust-lang/rust/pull/134649) +* [fix mistake in windows file open](https://github.com/rust-lang/rust/pull/134819) +* [fix renaming symlinks on Windows](https://github.com/rust-lang/rust/pull/134786) +* [windows: use WriteFile to write to a UTF-8 console](https://github.com/rust-lang/rust/pull/134622) +* [windows: use `FILE_ALLOCATION_INFO` for truncation](https://github.com/rust-lang/rust/pull/134722) +* [cargo: `fix(package)`: check dirtiness of path fields in manifest](https://github.com/rust-lang/cargo/pull/14966) +* [cargo: `fix(package)`: check dirtiness of symlinks source files](https://github.com/rust-lang/cargo/pull/14981) +* [cargo: `fix(package)`: warn if symlinks checked out as plain text files](https://github.com/rust-lang/cargo/pull/14994) +* [cargo: `refactor(package)`: split `cargo_package` to modules](https://github.com/rust-lang/cargo/pull/14982) +* [cargo: fix: assure possibly blocking non-files (like FIFOs) won't be picked up for publishing](https://github.com/rust-lang/cargo/pull/14977) +* [cargo: moved manifest metadata tracking from fingerprint to dep info](https://github.com/rust-lang/cargo/pull/14973) +* [cargo: test: make path arguments more generic and flexible](https://github.com/rust-lang/cargo/pull/14979) +* [cargo: test: relax `bad_crate_type` to only match error message prefix](https://github.com/rust-lang/cargo/pull/14990) +* [cargo: test: relax panic output assertion](https://github.com/rust-lang/cargo/pull/14989) +* [rustdoc: use shorter paths as preferred canonical paths](https://github.com/rust-lang/rust/pull/134806) +* [unsafe binder support in rustdoc](https://github.com/rust-lang/rust/pull/134857) +* [clippy: `borrow_interior_mutable_const` ICE into FN](https://github.com/rust-lang/rust-clippy/pull/13877) +* [clippy: auto-fix `if_not_else`](https://github.com/rust-lang/rust-clippy/pull/13809) +* [clippy: correct suggestion for `manual_div_ceil` lint](https://github.com/rust-lang/rust-clippy/pull/13864) +* [clippy: do not remove required parentheses in `borrow_as_ptr` suggestion](https://github.com/rust-lang/rust-clippy/pull/13884) +* [clippy: do not trigger `trailing_empty_array` in tests](https://github.com/rust-lang/rust-clippy/pull/13844) +* [clippy: fix arguments of `ExprKind::MethodCall`](https://github.com/rust-lang/rust-clippy/pull/13890) +* [clippy: fix parentheses when replacing `matches!(…, None)` with `.is_none()`](https://github.com/rust-lang/rust-clippy/pull/13906) +* [clippy: make `inconsistent_struct_constructor` "all fields are shorthand" requirement configurable](https://github.com/rust-lang/rust-clippy/pull/13737) +* [clippy: remove description of known problems in `match_same_arms` that have already been resolved](https://github.com/rust-lang/rust-clippy/pull/13873) +* [clippy: remove obsolete comment](https://github.com/rust-lang/rust-clippy/pull/13850) +* [clippy: use the correct `ParamEnv` when checking future's output type](https://github.com/rust-lang/rust-clippy/pull/13863) +* [clippy: use the full lifetime name in suggestions](https://github.com/rust-lang/rust-clippy/pull/13907) +* [rust-analyzer: cleanup target fetching for cargo metadata](https://github.com/rust-lang/rust-analyzer/pull/18754) +* [rust-analyzer: cleanup toolchain info fetching](https://github.com/rust-lang/rust-analyzer/pull/18785) +* [rust-analyzer: decouple proc-macro server protocol from the server implementation](https://github.com/rust-lang/rust-analyzer/pull/18792) +* [rust-analyzer: show go-to-type-def actions for subst when hovering](https://github.com/rust-lang/rust-analyzer/pull/18801) +* [rust-analyzer: show substitution where hovering over generic things](https://github.com/rust-lang/rust-analyzer/pull/18707) +* [rust-analyzer: unify handling of path diagnostics in hir-ty](https://github.com/rust-lang/rust-analyzer/pull/18743) +* [rust-analyzer: fix bug of "fill match arm" action in `tokio::main` macro](https://github.com/rust-lang/rust-analyzer/pull/18794) +* [rust-analyzer: fix missing name `enum` when hovering on fields in variants](https://github.com/rust-lang/rust-analyzer/pull/18756) +* [rust-analyzer: fix render of literal to be rendered in codeblock](https://github.com/rust-lang/rust-analyzer/pull/18795) +* [rust-analyzer: fix replace-if-let-with-match generates non-exhausive match](https://github.com/rust-lang/rust-analyzer/pull/18797) +* [rust-analyzer: avoid generating colliding names in `extract_variable`](https://github.com/rust-lang/rust-analyzer/pull/18791) +* [rust-analyzer: consider `Enum::Variant` even when it comes from a different crate](https://github.com/rust-lang/rust-analyzer/pull/18779) +* [rust-analyzer: do not merge spans if they have different anchors](https://github.com/rust-lang/rust-analyzer/pull/18784) +* [rust-analyzer: fix flycheck diagnostics flickering for binary targets](https://github.com/rust-lang/rust-analyzer/pull/18778) +* [rust-analyzer: fix invalid `-O` flag used by cfg discovery](https://github.com/rust-lang/rust-analyzer/pull/18789) +* [rust-analyzer: fix metrics workflow using the wrong download-artifact version](https://github.com/rust-lang/rust-analyzer/pull/18755) +* [rust-analyzer: incorrect `file_id` used for ranges in outgoing calls](https://github.com/rust-lang/rust-analyzer/pull/18802) +* [rust-analyzer: populate cargo config env vars for crates](https://github.com/rust-lang/rust-analyzer/pull/18807) +* [rust-analyzer: implement parameter variance inference](https://github.com/rust-lang/rust-analyzer/pull/18774) +* [rust-analyzer: treat ; as a terminator rather part of a glued expression](https://github.com/rust-lang/rust-analyzer/pull/18744) ### Rust Compiler Performance Triage @@ -250,7 +342,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE) # Quote of the Week - +> Hear, hear! Rust is the real deep state. They knew all along that memory-related bugs would dominate the Vulnerability Rating Taxonomy. Coincidence? I think not. 🐛🔧 + +– [@amoghavarsha@infosec.exchange on mastodon](https://infosec.exchange/@amoghavarsha/113741018641283042) + +Thanks to [llogiq](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1646) for the suggestion! [Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)