Skip to content

C/QotW and notable changes #5428

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
Apr 25, 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
136 changes: 133 additions & 3 deletions draft/2024-04-24-this-week-in-rust.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ and just ask the editors to select the category.

## Crate of the Week

<!-- COTW goes here -->
This week's crate is [scandir](https://crates.io/crates/scandir), a high-performance file tree scanner.

Thanks to [Marty B.](https://users.rust-lang.org/t/crate-of-the-week/2704/1305) for the self-suggestion!

[Please submit your suggestions and votes for next week][submit_crate]!

Expand Down Expand Up @@ -95,7 +97,131 @@ 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 -->
432 pull requests were [merged in the last week][merged]

[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-04-16..2024-04-23

* [add simple async drop glue generation](https://github.com/rust-lang/rust/pull/121801)
* [llvm backend: Prevent creating the same `Instance::mono` multiple times](https://github.com/rust-lang/rust/pull/124178)
* [`static_mut_refs`: use raw pointers to remove the remaining FIXME](https://github.com/rust-lang/rust/pull/123967)
* [add a lower bound check to `unicode-table-generator` output](https://github.com/rust-lang/rust/pull/122013)
* [add an opt-in to store incoming edges in `VecGraph` + misc](https://github.com/rust-lang/rust/pull/123980)
* [add llvm-bitcode-linker to build manifest](https://github.com/rust-lang/rust/pull/124071)
* [allow workproducts without object files](https://github.com/rust-lang/rust/pull/124023)
* [at debuginfo=0, don't inline debuginfo when inlining](https://github.com/rust-lang/rust/pull/123949)
* [correctly change type when adding adjustments on top of `NeverToAny`](https://github.com/rust-lang/rust/pull/123571)
* [coverage: branch coverage tests for lazy boolean operators](https://github.com/rust-lang/rust/pull/124053)
* [coverage: prepare for improved branch coverage](https://github.com/rust-lang/rust/pull/124217)
* [delay interning errors to after validation](https://github.com/rust-lang/rust/pull/122684)
* [delay span bug when `Self` kw resolves to `DefKind::{Mod,Trait}`](https://github.com/rust-lang/rust/pull/123997)
* [don't ICE for kind mismatches during error rendering](https://github.com/rust-lang/rust/pull/123673)
* [don't ascend into parent bodies when collecting stmts for possible return suggestion](https://github.com/rust-lang/rust/pull/124037)
* [don't error on subtyping of equal types](https://github.com/rust-lang/rust/pull/124066)
* [don't inline integer literals when they overflow - new attempt](https://github.com/rust-lang/rust/pull/123935)
* [don't repeatedly duplicate TAIT lifetimes for each subsequently nested TAIT](https://github.com/rust-lang/rust/pull/124106)
* [fix ICE in `eval_body_using_ecx`](https://github.com/rust-lang/rust/pull/123491)
* [fix ICE when there is a non-Unicode entry in the incremental crate directory](https://github.com/rust-lang/rust/pull/124112)
* [fix capturing duplicated lifetimes via parent in `precise_captures` (`impl use<'...>`)](https://github.com/rust-lang/rust/pull/124104)
* [fix normalizing in different `ParamEnv`s with the same InferCtxt](https://github.com/rust-lang/rust/pull/124203)
* [fix trait solver overflow with `non_local_definitions` lint](https://github.com/rust-lang/rust/pull/123594)
* [flip spans for precise capturing syntax not capturing a ty/const param, and for implicit captures of lifetime params](https://github.com/rust-lang/rust/pull/124198)
* [give a name to each distinct manipulation of pretty-printer FixupContext](https://github.com/rust-lang/rust/pull/124191)
* [ignore `-C strip` on MSVC](https://github.com/rust-lang/rust/pull/115120)
* [implement Modified Condition/Decision Coverage](https://github.com/rust-lang/rust/pull/123409)
* [implement `PROBLEMATIC_CONSTS` generalization](https://github.com/rust-lang/rust/pull/115253)
* [implement syntax for `impl Trait` to specify its captures explicitly (`feature(precise_capturing)`)](https://github.com/rust-lang/rust/pull/123468)
* [improve ICE message for forbidden dep-graph reads](https://github.com/rust-lang/rust/pull/124252)
* [interpret: pass MemoryKind to `adjust_alloc_base_pointer`](https://github.com/rust-lang/rust/pull/124030)
* [interpret: pass MemoryKind to `before_memory_deallocation`](https://github.com/rust-lang/rust/pull/124018)
* [interpret: use ScalarInt for bin-ops; avoid PartialOrd for ScalarInt](https://github.com/rust-lang/rust/pull/124113)
* [introduce perma-unstable `wasm-c-abi` flag](https://github.com/rust-lang/rust/pull/117919)
* [let inherent associated types constrain opaque types during projection](https://github.com/rust-lang/rust/pull/124166)
* [make `suggest_deref_closure_return` more idiomatic/easier to understand](https://github.com/rust-lang/rust/pull/123990)
* [make `thir_tree` and `thir_flat` into hooks](https://github.com/rust-lang/rust/pull/123995)
* [make the comments for `ReturnDest` variants doc comments](https://github.com/rust-lang/rust/pull/124052)
* [match ergonomics 2024: Implement eat-one-layer](https://github.com/rust-lang/rust/pull/123512)
* [match ergonomics 2024: `mut` doesn't reset binding mode](https://github.com/rust-lang/rust/pull/123535)
* [match hyphen in multi-revision comment matchers](https://github.com/rust-lang/rust/pull/124137)
* [opaque types have no namespace](https://github.com/rust-lang/rust/pull/123998)
* [outline default query and hook provider function implementations](https://github.com/rust-lang/rust/pull/124016)
* [prefer identity equality over equating types during coercion](https://github.com/rust-lang/rust/pull/124027)
* [print note with closure signature on type mismatch](https://github.com/rust-lang/rust/pull/123379)
* [properly handle emojis as literal prefix in macros](https://github.com/rust-lang/rust/pull/123752)
* [remove `default_hidden_visibility: false` from wasm targets](https://github.com/rust-lang/rust/pull/124036)
* [remove uneeded clones now that TrustedStep implies Copy](https://github.com/rust-lang/rust/pull/123859)
* [silence some follow-up errors on trait impls in case the trait has conflicting or otherwise incoherent impls](https://github.com/rust-lang/rust/pull/123674)
* [simplify shallow resolver to just fold ty/consts](https://github.com/rust-lang/rust/pull/123537)
* [stop taking `ParamTy`/`ParamConst`/`EarlyParamRegion`/`AliasTy` by ref](https://github.com/rust-lang/rust/pull/124183)
* [subtype predicates only exist on inference types, so we can allow them to register opaque types within them](https://github.com/rust-lang/rust/pull/123979)
* [tell LLVM `Vec::len` is invariant across growth](https://github.com/rust-lang/rust/pull/123930)
* [use raw-dylib for Windows synchronization functions](https://github.com/rust-lang/rust/pull/124019)
* [refactor clippy in bootstrap](https://github.com/rust-lang/rust/pull/122883)
* [when suggesting `RUST_BACKTRACE=1,` add a special note for Miri's env var isolation](https://github.com/rust-lang/rust/pull/124116)
* [miri: `data_race`: make the release/acquire API more clear](https://github.com/rust-lang/miri/pull/3495)
* [miri: `no_std` works on Windows now](https://github.com/rust-lang/miri/pull/3477)
* [miri: add `localtime_r` shim](https://github.com/rust-lang/miri/pull/3461)
* [miri: address reuse improvements and fixes](https://github.com/rust-lang/miri/pull/3475)
* [miri: deadlock: show backtrace for all threads](https://github.com/rust-lang/miri/pull/3472)
* [miri: directly call `handle_alloc_error`](https://github.com/rust-lang/miri/pull/3480)
* [miri: implement support for `__rust_alloc_error_handler`](https://github.com/rust-lang/miri/pull/3478)
* [miri: make realloc with a size of zero fail](https://github.com/rust-lang/miri/pull/3484)
* [miri: move `read_byte_slice` to general helpers file, next to `read_c_str`](https://github.com/rust-lang/miri/pull/3485)
* [miri: threads: keep track of why we are blocked, and sanity-check that when waking up](https://github.com/rust-lang/miri/pull/3471)
* [`Box::into_raw`: make Miri understand that this is a box-to-raw cast](https://github.com/rust-lang/rust/pull/124013)
* [`PatRangeBoundary::compare_with`: also add a fast-path for signed integers](https://github.com/rust-lang/rust/pull/124190)
* [codegen ZSTs without an allocation](https://github.com/rust-lang/rust/pull/123936)
* [stabilize Wasm target features that are in phase 4 and 5](https://github.com/rust-lang/rust/pull/117457)
* [stabilize `const_io_structs`](https://github.com/rust-lang/rust/pull/124049)
* [stabilize checking of cfgs at compile-time: `--check-cfg` option](https://github.com/rust-lang/rust/pull/123501)
* [stabilize generic `NonZero`](https://github.com/rust-lang/rust/pull/124230)
* [make `checked` ops emit *unchecked* LLVM operations where feasible](https://github.com/rust-lang/rust/pull/124114)
* [improve `std::fs::Metadata` Debug representation](https://github.com/rust-lang/rust/pull/124103)
* [fix negating `f16` and `f128` constants](https://github.com/rust-lang/rust/pull/124110)
* [force exhaustion in `iter::ArrayChunks::into_remainder`](https://github.com/rust-lang/rust/pull/123406)
* [`checked_ilog`: improve performance](https://github.com/rust-lang/rust/pull/115913)
* [add an intrinsic for `ptr::from_raw_parts(_mut)`](https://github.com/rust-lang/rust/pull/123840)
* [fix: make `str::from_raw_parts_mut mut`](https://github.com/rust-lang/rust/pull/124100)
* [use queue-based `RwLock` on more platforms](https://github.com/rust-lang/rust/pull/123811)
* [add support for Arm64EC to the standard library](https://github.com/rust-lang/rust/pull/123144)
* [codegen\_gcc: fix `PassMode::Indirect` with params](https://github.com/rust-lang/rustc_codegen_gcc/pull/498)
* [codegen\_gcc: fix check for main function already declared](https://github.com/rust-lang/rustc_codegen_gcc/pull/497)
* [codegen\_gcc: fix panic when calling `get_fn` for a variable](https://github.com/rust-lang/rustc_codegen_gcc/pull/499)
* [codegen\_gcc: fix passing custom `CG_RUSTFLAGS` when building sysroot](https://github.com/rust-lang/rustc_codegen_gcc/pull/493)
* [codegen\_gcc: implement more type kinds](https://github.com/rust-lang/rustc_codegen_gcc/pull/500)
* [cargo install: including Locking message](https://github.com/rust-lang/cargo/pull/13764)
* [cargo resolver: add default Edition2024 to resolver v3](https://github.com/rust-lang/cargo/pull/13785)
* [cargo resolver: add v3 resolver for MSRV-aware resolving](https://github.com/rust-lang/cargo/pull/13776)
* [cargo credential: trim newlines in tokens from stdin](https://github.com/rust-lang/cargo/pull/13770)
* [cargo msrv: error, rather than panic, on rust-version 'x'](https://github.com/rust-lang/cargo/pull/13771)
* [cargo msrv: put MSRV-aware resolver behind a config](https://github.com/rust-lang/cargo/pull/13769)
* [cargo toml: don't crash on parse errors that point to multi-byte character](https://github.com/rust-lang/cargo/pull/13780)
* [cargo toml: disallow source-less dependencies](https://github.com/rust-lang/cargo/pull/13775)
* [cargo toml: error on `[project]` in Edition 2024](https://github.com/rust-lang/cargo/pull/13747)
* [cargo toml: report `_`fied variants (e.g. `dev_dependencies`) as deprecated](https://github.com/rust-lang/cargo/pull/13783)
* [cargo: fix 'cargo build' fails when `list_files()` with gix is triggered](https://github.com/rust-lang/cargo/pull/13777)
* [rustdoc: always display stability version even if it's the same as the containing item](https://github.com/rust-lang/rust/pull/118441)
* [rustdoc: fix copy path button](https://github.com/rust-lang/rust/pull/124041)
* [rustdoc: support type '/' to search](https://github.com/rust-lang/rust/pull/123355)
* [rustdoc-search: fix description on aliases in results](https://github.com/rust-lang/rust/pull/124149)
* [rustdoc-search: single result for items with multiple paths](https://github.com/rust-lang/rust/pull/119912)
* [clippy: `threadlocal_initializer_can_be_made_const` will not trigger for unreachable initializers](https://github.com/rust-lang/rust-clippy/pull/12685)
* [clippy: `arithmetic_side_effects` fix false negative on `+=`](https://github.com/rust-lang/rust-clippy/pull/12692)
* [clippy: `ptr_as_ptr`: fix duplicate diagnostics](https://github.com/rust-lang/rust-clippy/pull/12673)
* [clippy: emit the `needless_pass_by_ref_mut` lint on `self` arguments as well](https://github.com/rust-lang/rust-clippy/pull/12693)
* [clippy: fix `is_test_module_or_function`](https://github.com/rust-lang/rust-clippy/pull/12696)
* [clippy: reduce `single_char_pattern` to only lint on ascii chars](https://github.com/rust-lang/rust-clippy/pull/11852)
* [clippy: rework interior mutability detection](https://github.com/rust-lang/rust-clippy/pull/12691)
* [clippy: the `multiple_unsafe_ops_per_block` test needs `asm!`](https://github.com/rust-lang/rust-clippy/pull/12682)
* [rust-analyzer: cargo script mvp](https://github.com/rust-lang/rust-analyzer/pull/17110)
* [rust-analyzer: add convert From to TryFrom assist](https://github.com/rust-lang/rust-analyzer/pull/17094)
* [rust-analyzer: allow rust files to be used linkedProjects](https://github.com/rust-lang/rust-analyzer/pull/17118)
* [rust-analyzer: VFS should not walk circular symlinks](https://github.com/rust-lang/rust-analyzer/pull/17093)
* [rust-analyzer: handle escaped chars in doc comments](https://github.com/rust-lang/rust-analyzer/pull/17024)
* [rust-analyzer: replace Just the variable name in Unused Variable Diagnostic Fix](https://github.com/rust-lang/rust-analyzer/pull/17055)
* [rust-analyzer: implement `BeginPanic` handling in const eval](https://github.com/rust-lang/rust-analyzer/pull/16938)
* [rust-analyzer: make test harness arguments configurable and not `--nocapture`](https://github.com/rust-lang/rust-analyzer/pull/17105)
* [rust-analyzer: render matched macro arm on hover of macro calls](https://github.com/rust-lang/rust-analyzer/pull/16057)
* [rust-analyzer: try to generate more meaningful names in json converter](https://github.com/rust-lang/rust-analyzer/pull/17115)

### Rust Compiler Performance Triage

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

# Quote of the Week

<!-- QOTW goes here -->
> The learning curve for Rust is relatively steep compared to other languages, but once you climb it you'll never look down.

– [BD103 on Mastodon](https://hachyderm.io/@bd103/112318610927827520)

Thanks to [BD103](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1563) for the self-suggestion!

[Please submit quotes and vote for next week!](https://users.rust-lang.org/t/twir-quote-of-the-week/328)

Expand Down