Skip to content

Commit 3f35379

Browse files
committed
C/QotW and notable changes
1 parent c04b310 commit 3f35379

File tree

1 file changed

+133
-3
lines changed

1 file changed

+133
-3
lines changed

draft/2024-04-24-this-week-in-rust.md

Lines changed: 133 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ and just ask the editors to select the category.
4545

4646
## Crate of the Week
4747

48-
<!-- COTW goes here -->
48+
This week's crate is [scandir](https://crates.io/crates/scandir), a high-performance file tree scanner.
49+
50+
Thanks to [Marty B.](https://users.rust-lang.org/t/crate-of-the-week/2704/1305) for the self-suggestion!
4951

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

@@ -95,7 +97,131 @@ If you are an event organizer hoping to expand the reach of your event, please s
9597

9698
## Updates from the Rust Project
9799

98-
<!-- Rust updates go here -->
100+
432 pull requests were [merged in the last week][merged]
101+
102+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-04-16..2024-04-23
103+
104+
* [add simple async drop glue generation](https://github.com/rust-lang/rust/pull/121801)
105+
* [llvm backend: Prevent creating the same `Instance::mono` multiple times](https://github.com/rust-lang/rust/pull/124178)
106+
* [`static_mut_refs`: use raw pointers to remove the remaining FIXME](https://github.com/rust-lang/rust/pull/123967)
107+
* [add a lower bound check to `unicode-table-generator` output](https://github.com/rust-lang/rust/pull/122013)
108+
* [add an opt-in to store incoming edges in `VecGraph` + misc](https://github.com/rust-lang/rust/pull/123980)
109+
* [add llvm-bitcode-linker to build manifest](https://github.com/rust-lang/rust/pull/124071)
110+
* [allow workproducts without object files](https://github.com/rust-lang/rust/pull/124023)
111+
* [at debuginfo=0, don't inline debuginfo when inlining](https://github.com/rust-lang/rust/pull/123949)
112+
* [correctly change type when adding adjustments on top of `NeverToAny`](https://github.com/rust-lang/rust/pull/123571)
113+
* [coverage: branch coverage tests for lazy boolean operators](https://github.com/rust-lang/rust/pull/124053)
114+
* [coverage: prepare for improved branch coverage](https://github.com/rust-lang/rust/pull/124217)
115+
* [delay interning errors to after validation](https://github.com/rust-lang/rust/pull/122684)
116+
* [delay span bug when `Self` kw resolves to `DefKind::{Mod,Trait}`](https://github.com/rust-lang/rust/pull/123997)
117+
* [don't ICE for kind mismatches during error rendering](https://github.com/rust-lang/rust/pull/123673)
118+
* [don't ascend into parent bodies when collecting stmts for possible return suggestion](https://github.com/rust-lang/rust/pull/124037)
119+
* [don't error on subtyping of equal types](https://github.com/rust-lang/rust/pull/124066)
120+
* [don't inline integer literals when they overflow - new attempt](https://github.com/rust-lang/rust/pull/123935)
121+
* [don't repeatedly duplicate TAIT lifetimes for each subsequently nested TAIT](https://github.com/rust-lang/rust/pull/124106)
122+
* [fix ICE in `eval_body_using_ecx`](https://github.com/rust-lang/rust/pull/123491)
123+
* [fix ICE when there is a non-Unicode entry in the incremental crate directory](https://github.com/rust-lang/rust/pull/124112)
124+
* [fix capturing duplicated lifetimes via parent in `precise_captures` (`impl use<'...>`)](https://github.com/rust-lang/rust/pull/124104)
125+
* [fix normalizing in different `ParamEnv`s with the same InferCtxt](https://github.com/rust-lang/rust/pull/124203)
126+
* [fix trait solver overflow with `non_local_definitions` lint](https://github.com/rust-lang/rust/pull/123594)
127+
* [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)
128+
* [give a name to each distinct manipulation of pretty-printer FixupContext](https://github.com/rust-lang/rust/pull/124191)
129+
* [ignore `-C strip` on MSVC](https://github.com/rust-lang/rust/pull/115120)
130+
* [implement Modified Condition/Decision Coverage](https://github.com/rust-lang/rust/pull/123409)
131+
* [implement `PROBLEMATIC_CONSTS` generalization](https://github.com/rust-lang/rust/pull/115253)
132+
* [implement syntax for `impl Trait` to specify its captures explicitly (`feature(precise_capturing)`)](https://github.com/rust-lang/rust/pull/123468)
133+
* [improve ICE message for forbidden dep-graph reads](https://github.com/rust-lang/rust/pull/124252)
134+
* [interpret: pass MemoryKind to `adjust_alloc_base_pointer`](https://github.com/rust-lang/rust/pull/124030)
135+
* [interpret: pass MemoryKind to `before_memory_deallocation`](https://github.com/rust-lang/rust/pull/124018)
136+
* [interpret: use ScalarInt for bin-ops; avoid PartialOrd for ScalarInt](https://github.com/rust-lang/rust/pull/124113)
137+
* [introduce perma-unstable `wasm-c-abi` flag](https://github.com/rust-lang/rust/pull/117919)
138+
* [let inherent associated types constrain opaque types during projection](https://github.com/rust-lang/rust/pull/124166)
139+
* [make `suggest_deref_closure_return` more idiomatic/easier to understand](https://github.com/rust-lang/rust/pull/123990)
140+
* [make `thir_tree` and `thir_flat` into hooks](https://github.com/rust-lang/rust/pull/123995)
141+
* [make the comments for `ReturnDest` variants doc comments](https://github.com/rust-lang/rust/pull/124052)
142+
* [match ergonomics 2024: Implement eat-one-layer](https://github.com/rust-lang/rust/pull/123512)
143+
* [match ergonomics 2024: `mut` doesn't reset binding mode](https://github.com/rust-lang/rust/pull/123535)
144+
* [match hyphen in multi-revision comment matchers](https://github.com/rust-lang/rust/pull/124137)
145+
* [opaque types have no namespace](https://github.com/rust-lang/rust/pull/123998)
146+
* [outline default query and hook provider function implementations](https://github.com/rust-lang/rust/pull/124016)
147+
* [prefer identity equality over equating types during coercion](https://github.com/rust-lang/rust/pull/124027)
148+
* [print note with closure signature on type mismatch](https://github.com/rust-lang/rust/pull/123379)
149+
* [properly handle emojis as literal prefix in macros](https://github.com/rust-lang/rust/pull/123752)
150+
* [remove `default_hidden_visibility: false` from wasm targets](https://github.com/rust-lang/rust/pull/124036)
151+
* [remove uneeded clones now that TrustedStep implies Copy](https://github.com/rust-lang/rust/pull/123859)
152+
* [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)
153+
* [simplify shallow resolver to just fold ty/consts](https://github.com/rust-lang/rust/pull/123537)
154+
* [stop taking `ParamTy`/`ParamConst`/`EarlyParamRegion`/`AliasTy` by ref](https://github.com/rust-lang/rust/pull/124183)
155+
* [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)
156+
* [tell LLVM `Vec::len` is invariant across growth](https://github.com/rust-lang/rust/pull/123930)
157+
* [use raw-dylib for Windows synchronization functions](https://github.com/rust-lang/rust/pull/124019)
158+
* [refactor clippy in bootstrap](https://github.com/rust-lang/rust/pull/122883)
159+
* [when suggesting `RUST_BACKTRACE=1,` add a special note for Miri's env var isolation](https://github.com/rust-lang/rust/pull/124116)
160+
* [miri: `data_race`: make the release/acquire API more clear](https://github.com/rust-lang/miri/pull/3495)
161+
* [miri: `no_std` works on Windows now](https://github.com/rust-lang/miri/pull/3477)
162+
* [miri: add `localtime_r` shim](https://github.com/rust-lang/miri/pull/3461)
163+
* [miri: address reuse improvements and fixes](https://github.com/rust-lang/miri/pull/3475)
164+
* [miri: deadlock: show backtrace for all threads](https://github.com/rust-lang/miri/pull/3472)
165+
* [miri: directly call `handle_alloc_error`](https://github.com/rust-lang/miri/pull/3480)
166+
* [miri: implement support for `__rust_alloc_error_handler`](https://github.com/rust-lang/miri/pull/3478)
167+
* [miri: make realloc with a size of zero fail](https://github.com/rust-lang/miri/pull/3484)
168+
* [miri: move `read_byte_slice` to general helpers file, next to `read_c_str`](https://github.com/rust-lang/miri/pull/3485)
169+
* [miri: threads: keep track of why we are blocked, and sanity-check that when waking up](https://github.com/rust-lang/miri/pull/3471)
170+
* [`Box::into_raw`: make Miri understand that this is a box-to-raw cast](https://github.com/rust-lang/rust/pull/124013)
171+
* [`PatRangeBoundary::compare_with`: also add a fast-path for signed integers](https://github.com/rust-lang/rust/pull/124190)
172+
* [codegen ZSTs without an allocation](https://github.com/rust-lang/rust/pull/123936)
173+
* [stabilize Wasm target features that are in phase 4 and 5](https://github.com/rust-lang/rust/pull/117457)
174+
* [stabilize `const_io_structs`](https://github.com/rust-lang/rust/pull/124049)
175+
* [stabilize checking of cfgs at compile-time: `--check-cfg` option](https://github.com/rust-lang/rust/pull/123501)
176+
* [stabilize generic `NonZero`](https://github.com/rust-lang/rust/pull/124230)
177+
* [make `checked` ops emit *unchecked* LLVM operations where feasible](https://github.com/rust-lang/rust/pull/124114)
178+
* [improve `std::fs::Metadata` Debug representation](https://github.com/rust-lang/rust/pull/124103)
179+
* [fix negating `f16` and `f128` constants](https://github.com/rust-lang/rust/pull/124110)
180+
* [force exhaustion in `iter::ArrayChunks::into_remainder`](https://github.com/rust-lang/rust/pull/123406)
181+
* [`checked_ilog`: improve performance](https://github.com/rust-lang/rust/pull/115913)
182+
* [add an intrinsic for `ptr::from_raw_parts(_mut)`](https://github.com/rust-lang/rust/pull/123840)
183+
* [fix: make `str::from_raw_parts_mut mut`](https://github.com/rust-lang/rust/pull/124100)
184+
* [use queue-based `RwLock` on more platforms](https://github.com/rust-lang/rust/pull/123811)
185+
* [add support for Arm64EC to the standard library](https://github.com/rust-lang/rust/pull/123144)
186+
* [codegen\_gcc: fix `PassMode::Indirect` with params](https://github.com/rust-lang/rustc_codegen_gcc/pull/498)
187+
* [codegen\_gcc: fix check for main function already declared](https://github.com/rust-lang/rustc_codegen_gcc/pull/497)
188+
* [codegen\_gcc: fix panic when calling `get_fn` for a variable](https://github.com/rust-lang/rustc_codegen_gcc/pull/499)
189+
* [codegen\_gcc: fix passing custom `CG_RUSTFLAGS` when building sysroot](https://github.com/rust-lang/rustc_codegen_gcc/pull/493)
190+
* [codegen\_gcc: implement more type kinds](https://github.com/rust-lang/rustc_codegen_gcc/pull/500)
191+
* [cargo install: including Locking message](https://github.com/rust-lang/cargo/pull/13764)
192+
* [cargo resolver: add default Edition2024 to resolver v3](https://github.com/rust-lang/cargo/pull/13785)
193+
* [cargo resolver: add v3 resolver for MSRV-aware resolving](https://github.com/rust-lang/cargo/pull/13776)
194+
* [cargo credential: trim newlines in tokens from stdin](https://github.com/rust-lang/cargo/pull/13770)
195+
* [cargo msrv: error, rather than panic, on rust-version 'x'](https://github.com/rust-lang/cargo/pull/13771)
196+
* [cargo msrv: put MSRV-aware resolver behind a config](https://github.com/rust-lang/cargo/pull/13769)
197+
* [cargo toml: don't crash on parse errors that point to multi-byte character](https://github.com/rust-lang/cargo/pull/13780)
198+
* [cargo toml: disallow source-less dependencies](https://github.com/rust-lang/cargo/pull/13775)
199+
* [cargo toml: error on `[project]` in Edition 2024](https://github.com/rust-lang/cargo/pull/13747)
200+
* [cargo toml: report `_`fied variants (e.g. `dev_dependencies`) as deprecated](https://github.com/rust-lang/cargo/pull/13783)
201+
* [cargo: fix 'cargo build' fails when `list_files()` with gix is triggered](https://github.com/rust-lang/cargo/pull/13777)
202+
* [rustdoc: always display stability version even if it's the same as the containing item](https://github.com/rust-lang/rust/pull/118441)
203+
* [rustdoc: fix copy path button](https://github.com/rust-lang/rust/pull/124041)
204+
* [rustdoc: support type '/' to search](https://github.com/rust-lang/rust/pull/123355)
205+
* [rustdoc-search: fix description on aliases in results](https://github.com/rust-lang/rust/pull/124149)
206+
* [rustdoc-search: single result for items with multiple paths](https://github.com/rust-lang/rust/pull/119912)
207+
* [clippy: `threadlocal_initializer_can_be_made_const` will not trigger for unreachable initializers](https://github.com/rust-lang/rust-clippy/pull/12685)
208+
* [clippy: `arithmetic_side_effects` fix false negative on `+=`](https://github.com/rust-lang/rust-clippy/pull/12692)
209+
* [clippy: `ptr_as_ptr`: fix duplicate diagnostics](https://github.com/rust-lang/rust-clippy/pull/12673)
210+
* [clippy: emit the `needless_pass_by_ref_mut` lint on `self` arguments as well](https://github.com/rust-lang/rust-clippy/pull/12693)
211+
* [clippy: fix `is_test_module_or_function`](https://github.com/rust-lang/rust-clippy/pull/12696)
212+
* [clippy: reduce `single_char_pattern` to only lint on ascii chars](https://github.com/rust-lang/rust-clippy/pull/11852)
213+
* [clippy: rework interior mutability detection](https://github.com/rust-lang/rust-clippy/pull/12691)
214+
* [clippy: the `multiple_unsafe_ops_per_block` test needs `asm!`](https://github.com/rust-lang/rust-clippy/pull/12682)
215+
* [rust-analyzer: cargo script mvp](https://github.com/rust-lang/rust-analyzer/pull/17110)
216+
* [rust-analyzer: add convert From to TryFrom assist](https://github.com/rust-lang/rust-analyzer/pull/17094)
217+
* [rust-analyzer: allow rust files to be used linkedProjects](https://github.com/rust-lang/rust-analyzer/pull/17118)
218+
* [rust-analyzer: VFS should not walk circular symlinks](https://github.com/rust-lang/rust-analyzer/pull/17093)
219+
* [rust-analyzer: handle escaped chars in doc comments](https://github.com/rust-lang/rust-analyzer/pull/17024)
220+
* [rust-analyzer: replace Just the variable name in Unused Variable Diagnostic Fix](https://github.com/rust-lang/rust-analyzer/pull/17055)
221+
* [rust-analyzer: implement `BeginPanic` handling in const eval](https://github.com/rust-lang/rust-analyzer/pull/16938)
222+
* [rust-analyzer: make test harness arguments configurable and not `--nocapture`](https://github.com/rust-lang/rust-analyzer/pull/17105)
223+
* [rust-analyzer: render matched macro arm on hover of macro calls](https://github.com/rust-lang/rust-analyzer/pull/16057)
224+
* [rust-analyzer: try to generate more meaningful names in json converter](https://github.com/rust-lang/rust-analyzer/pull/17115)
99225

100226
### Rust Compiler Performance Triage
101227

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

292418
# Quote of the Week
293419

294-
<!-- QOTW goes here -->
420+
> The learning curve for Rust is relatively steep compared to other languages, but once you climb it you'll never look down.
421+
422+
[BD103 on Mastodon](https://hachyderm.io/@bd103/112318610927827520)
423+
424+
Thanks to [BD103](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1563) for the self-suggestion!
295425

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

0 commit comments

Comments
 (0)