Skip to content
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
102 changes: 99 additions & 3 deletions draft/2025-01-01-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 [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]!

Expand Down Expand Up @@ -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

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

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

# Quote of the Week

<!-- QOTW goes here -->
> 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. 🐛🔧

– [@[email protected] 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)

Expand Down