Skip to content

Commit 1d0d945

Browse files
committed
C/QotW and notable changes
1 parent 3f005cc commit 1d0d945

File tree

1 file changed

+114
-3
lines changed

1 file changed

+114
-3
lines changed

draft/2024-05-08-this-week-in-rust.md

Lines changed: 114 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 [derive\_more](https://docs.rs/derive_more), a crate for deriving a whole lot of traits
49+
50+
Thanks to [teor](https://users.rust-lang.org/t/crate-of-the-week/2704/1306) for the suggestion!
4951

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

@@ -95,7 +97,103 @@ 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+
426 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-30..2024-05-07
103+
104+
* [AST pretty: Use `builtin_syntax` for type ascription](https://github.com/rust-lang/rust/pull/124637)
105+
* [`const_eval_select`: add tracking issue](https://github.com/rust-lang/rust/pull/124626)
106+
* [`default_alloc_error_hook`: explain difference to default `__rdl_oom` in alloc](https://github.com/rust-lang/rust/pull/124059)
107+
* [account for immutably borrowed locals in MIR copy-prop and GVN](https://github.com/rust-lang/rust/pull/123602)
108+
* [add `normalize()` in run-make `Diff` type](https://github.com/rust-lang/rust/pull/124561)
109+
* [add `rustfmt` cfg to well known cfgs list](https://github.com/rust-lang/rust/pull/124742)
110+
* [add a lint against never type fallback affecting unsafe code](https://github.com/rust-lang/rust/pull/123939)
111+
* [add support for inputing via stdin with run-make-support](https://github.com/rust-lang/rust/pull/124612)
112+
* [adjust `#[macro_export]`/doctest help suggestion for `non_local_defs` lint](https://github.com/rust-lang/rust/pull/124568)
113+
* [always print nice 'std not found' error when std is not found](https://github.com/rust-lang/rust/pull/124582)
114+
* [borrowck: prepopulate opaque storage more eagerly](https://github.com/rust-lang/rust/pull/124809)
115+
* [consider inner modules to be local in the `non_local_definitions` lint](https://github.com/rust-lang/rust/pull/124539)
116+
* [deref patterns: impl `DerefPure` for more std types](https://github.com/rust-lang/rust/pull/123480)
117+
* [don't consider candidates with no failing where clauses when refining obligation causes in new solver](https://github.com/rust-lang/rust/pull/124771)
118+
* [enable `--check-cfg` by default in UI tests](https://github.com/rust-lang/rust/pull/124345)
119+
* [enable reusing CI Docker cache when running CI images locally](https://github.com/rust-lang/rust/pull/124663)
120+
* [fix `NormalizesTo` proof tree issue](https://github.com/rust-lang/rust/pull/124566)
121+
* [fix unwinding on 32-bit watchOS ARM](https://github.com/rust-lang/rust/pull/124494)
122+
* [fix unwinding on 32-bit watchOS ARM (v2)](https://github.com/rust-lang/rust/pull/124748)
123+
* [generalize `adjust_from_tcx` for `Allocation`](https://github.com/rust-lang/rust/pull/124492)
124+
* [implement `do_not_recommend` in the new solver](https://github.com/rust-lang/rust/pull/124717)
125+
* [implement `ptr_as_ref_unchecked`](https://github.com/rust-lang/rust/pull/122492)
126+
* [improve check-cfg CLI errors with more structured diagnostics](https://github.com/rust-lang/rust/pull/124679)
127+
* [interpret, miri: uniform treatments of intrinsics/functions with and without return block](https://github.com/rust-lang/rust/pull/124715)
128+
* [interpret: drop: always evaluate place](https://github.com/rust-lang/rust/pull/124720)
129+
* [interpret: hide some reexports in rustdoc](https://github.com/rust-lang/rust/pull/124627)
130+
* [lazily normalize inside trait ref during orphan check & consider ty params in rigid alias types to be uncovered](https://github.com/rust-lang/rust/pull/117164)
131+
* [let miri and const eval execute intrinsics' fallback bodies](https://github.com/rust-lang/rust/pull/124293)
132+
* [only consider ambiguous goals when finding best obligation for ambiguities](https://github.com/rust-lang/rust/pull/124690)
133+
* [prefer lower vtable candidates in select in new solver](https://github.com/rust-lang/rust/pull/124724)
134+
* [record impl args in the proof tree](https://github.com/rust-lang/rust/pull/124718)
135+
* [record impl args in the proof tree in new solver](https://github.com/rust-lang/rust/pull/124759)
136+
* [remove redundant union check in `KnownPanicsLint` const prop](https://github.com/rust-lang/rust/pull/124550)
137+
* [rewrite select (in the new solver) to use a `ProofTreeVisitor`](https://github.com/rust-lang/rust/pull/124529)
138+
* [shallow resolve in orphan check](https://github.com/rust-lang/rust/pull/124623)
139+
* [split mcdc code to a sub module of coverageinfo](https://github.com/rust-lang/rust/pull/124399)
140+
* [stop `llvm.expect`ing assert terminators](https://github.com/rust-lang/rust/pull/124606)
141+
* [support `Result<T, E>` across FFI when niche optimization can be used](https://github.com/rust-lang/rust/pull/122253)
142+
* [tweak `consts_may_unify`](https://github.com/rust-lang/rust/pull/124610)
143+
* [use `ObligationCtxt` in favor of `TraitEngine` in many more places](https://github.com/rust-lang/rust/pull/124588)
144+
* [use `super_fold` in `RegionsToStatic` visitor](https://github.com/rust-lang/rust/pull/124808)
145+
* [use `tcx.types.unit` instead of `Ty::new_unit(tcx)`](https://github.com/rust-lang/rust/pull/124624)
146+
* [use a proof tree visitor to refine the `Obligation` for error reporting in new solver](https://github.com/rust-lang/rust/pull/124418)
147+
* [miri: /miri run: support -v flag to print what it is doing](https://github.com/rust-lang/miri/pull/3545)
148+
* [miri: don’t print `Preparing a sysroot` when `-q`/`--quiet` is passed](https://github.com/rust-lang/miri/pull/3531)
149+
* [miri: macos: use getentropy from libc](https://github.com/rust-lang/miri/pull/3551)
150+
* [miri: make file descriptors into refcount references](https://github.com/rust-lang/miri/pull/3533)
151+
* [miri: make many-seeds a mode of ./miri run rather than a separate command](https://github.com/rust-lang/miri/pull/3548)
152+
* [miri: only show the 'basic API common for this target' message when this is a missing foreign function](https://github.com/rust-lang/miri/pull/3562)
153+
* [miri: pthread shims: reorganize field offset handling, and add sanity checks](https://github.com/rust-lang/miri/pull/3564)
154+
* [miri: solaris: make pre-main code work](https://github.com/rust-lang/miri/pull/3570)
155+
* [miri: sync: better error in invalid synchronization primitive ID](https://github.com/rust-lang/miri/pull/3560)
156+
* [miri: tls dtors: treat all unixes uniformly](https://github.com/rust-lang/miri/pull/3550)
157+
* [miri: tree Borrows: first apply transition, then check protector with new 'initialized'](https://github.com/rust-lang/miri/pull/3532)
158+
* [miri: unix/thread: properly use `pthread_t` for thread IDs](https://github.com/rust-lang/miri/pull/3568)
159+
* [some hir cleanups](https://github.com/rust-lang/rust/pull/124401)
160+
* [stabilize `exclusive_range_pattern`](https://github.com/rust-lang/rust/pull/124459)
161+
* [stabilize `exclusive_range_pattern` (v2)](https://github.com/rust-lang/rust/pull/124749)
162+
* [stabilize `split_at_checked`](https://github.com/rust-lang/rust/pull/124678)
163+
* [improve several `Read` implementations](https://github.com/rust-lang/rust/pull/122441)
164+
* [add constants for f16 and f128](https://github.com/rust-lang/rust/pull/123850)
165+
* [compiler builtins for `f16`/`f128` float conversions](https://github.com/rust-lang/compiler-builtins/pull/593)
166+
* [cargo lint: Warn not Error on unsupported lint tool](https://github.com/rust-lang/cargo/pull/13833)
167+
* [cargo lints: Prevent inheritance from bring exposed for published packages](https://github.com/rust-lang/cargo/pull/13852)
168+
* [cargo lints: Remove ability to specify `-` in lint name](https://github.com/rust-lang/cargo/pull/13837)
169+
* [cargo resolver: Treat unset MSRV as compatible](https://github.com/rust-lang/cargo/pull/13791)
170+
* [cargo toml: Don't lose 'public' when inheriting a dep](https://github.com/rust-lang/cargo/pull/13836)
171+
* [cargo toml: On 2024 Edition, disallow ignored `default-features` when inheriting](https://github.com/rust-lang/cargo/pull/13839)
172+
* [cargo toml: Remove unstable rejrected frontmatter syntax for cargo script](https://github.com/rust-lang/cargo/pull/13861)
173+
* [cargo toml: Validate `crates_types/proc-macro` for bin like others](https://github.com/rust-lang/cargo/pull/13841)
174+
* [cargo toml: Avoid inferring when targets are known](https://github.com/rust-lang/cargo/pull/13849)
175+
* [cargo clean package perf improvements](https://github.com/rust-lang/cargo/pull/13818)
176+
* [cargo: error when unstable lints are specified but not enabled](https://github.com/rust-lang/cargo/pull/13805)
177+
* [cargo: populate git information when building Cargo from Rust's source tarball](https://github.com/rust-lang/cargo/pull/13832)
178+
* [cargo: stabilize `-Zcheck-cfg` as always enabled](https://github.com/rust-lang/cargo/pull/13571)
179+
* [cargo: workaround copying file returning EAGAIN on ZFS on mac OS](https://github.com/rust-lang/cargo/pull/13845)
180+
* [rustdoc-search: search for references](https://github.com/rust-lang/rust/pull/124148)
181+
* [clippy: allow more attributes in `clippy::useless_attribute`](https://github.com/rust-lang/rust-clippy/pull/12755)
182+
* [clippy: don't lint `assigning_clones` on nested late init locals](https://github.com/rust-lang/rust-clippy/pull/12742)
183+
* [clippy: don't suggest `Box::default()` in functions with differing generics](https://github.com/rust-lang/rust-clippy/pull/12687)
184+
* [clippy: fix `FormatArgs` storage when `-Zthreads` \> 1](https://github.com/rust-lang/rust-clippy/pull/12567)
185+
* [clippy: fix `for x in y unsafe { }`](https://github.com/rust-lang/rust-clippy/pull/12515)
186+
* [clippy: fix suggestion error for `manual_is_ascii_check` with missing type](https://github.com/rust-lang/rust-clippy/pull/11988)
187+
* [clippy: suggest collapsing nested or patterns if the MSRV allows it](https://github.com/rust-lang/rust-clippy/pull/12745)
188+
* [clippy: type safe CLI implementation for clippy-dev](https://github.com/rust-lang/rust-clippy/pull/12747)
189+
* [rust-analyzer: make generate function assist generate a function as a constructor if the generated function has the name "new" and is an asscociated function](https://github.com/rust-lang/rust-analyzer/pull/17138)
190+
* [rust-analyzer: fix Run lens showing when lenses are disabled](https://github.com/rust-lang/rust-analyzer/pull/17177)
191+
* [rust-analyzer: fix impl trait params not being counted properly](https://github.com/rust-lang/rust-analyzer/pull/17176)
192+
* [rust-analyzer: correctly handle `no_core`/`no_std` for preludes](https://github.com/rust-lang/rust-analyzer/pull/17172)
193+
* [rust-analyzer: discard path when the path is invalid](https://github.com/rust-lang/rust-analyzer/pull/17161)
194+
* [rust-analyzer: fix implicit ty args being lowered where they shouldn't](https://github.com/rust-lang/rust-analyzer/pull/17175)
195+
* [rust-analyzer: implement creating generics for impl traits in associated types](https://github.com/rust-lang/rust-analyzer/pull/17160)
196+
* [rust-analyzer: lifetime's Bound Var Debrujin Index in Dyn Traits](https://github.com/rust-lang/rust-analyzer/pull/17190)
99197

100198
### Rust Compiler Performance Triage
101199

@@ -287,7 +385,20 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
287385

288386
# Quote of the Week
289387

290-
<!-- QOTW goes here -->
388+
> Rust and its borrow checker are like proper form when lifting boxes. While you might have been lifting boxes "the natural way" for decades without a problem, and its an initial embuggerance to think and perform proper lifting form, it is learnable, efficient, and prevents some important problems.
389+
>
390+
> Or more succinctly:
391+
> C/C++: It'll screw your back(end).
392+
393+
And the reply:
394+
395+
> 1. there’s a largish group of men who would feel their masculinity attacked if you implied they should learn it
396+
> 2. while it's learnable finding usefully targeted educational resources are hard to come by
397+
> 3. proper form while lifting boxes are a really terrible way to model graphs
398+
399+
[Brett Witty and Leon on Mastodon](https://mstdn.social/@brettwitty/111734369720814683)
400+
401+
Thanks to [Brett Witty](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1566) for the self-suggestion!
291402

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

0 commit comments

Comments
 (0)