Skip to content

Commit ee0cdda

Browse files
committed
C/QotW and notable changes
1 parent e450246 commit ee0cdda

File tree

1 file changed

+112
-3
lines changed

1 file changed

+112
-3
lines changed

draft/2024-11-13-this-week-in-rust.md

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

4848
## Crate of the Week
4949

50-
<!-- COTW goes here -->
50+
This week's crate is [struct-split](https://github.com/wdanilo/struct-split), a proc macro to implement partial borrows.
51+
52+
Thanks to [Felix](https://users.rust-lang.org/t/crate-of-the-week/2704/1374) for the suggestion!
5153

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

@@ -98,7 +100,110 @@ If you are an event organizer hoping to expand the reach of your event, please s
98100

99101
## Updates from the Rust Project
100102

101-
<!-- Rust updates go here -->
103+
403 pull requests were [merged in the last week][merged]
104+
105+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-11-05..2024-11-12
106+
107+
* [remove the `wasm32-wasi` target from rustc](https://github.com/rust-lang/rust/pull/132562)
108+
* [add a new `wide-arithmetic` feature for WebAssembly](https://github.com/rust-lang/rust/pull/132077)
109+
* [add Unicode block-drawing compiler output support](https://github.com/rust-lang/rust/pull/126597)
110+
* [add `{ignore,needs}-{rustc,std}-debug-assertions` directive support](https://github.com/rust-lang/rust/pull/131913)
111+
* [add a default implementation for `CodegenBackend::link`](https://github.com/rust-lang/rust/pull/132820)
112+
* [add discriminators to DILocations when multiple functions are inlined into a single point](https://github.com/rust-lang/rust/pull/132613)
113+
* [add v9, v8plus, and leoncasa target feature to sparc and use v8plus in `create_object_file`](https://github.com/rust-lang/rust/pull/132552)
114+
* [additional tests to ensure let is rejected during parsing](https://github.com/rust-lang/rust/pull/132828)
115+
* [arbitrary self types v2: (unused) Receiver trait](https://github.com/rust-lang/rust/pull/132144)
116+
* [basic inline assembly support for SPARC and SPARC64](https://github.com/rust-lang/rust/pull/132472)
117+
* [coverage: extract safe FFI wrapper functions to `llvm_cov`](https://github.com/rust-lang/rust/pull/132452)
118+
* [coverage: restrict empty-span expansion to only cover `{` and `}`](https://github.com/rust-lang/rust/pull/132675)
119+
* [coverage: simplify parts of coverage graph creation](https://github.com/rust-lang/rust/pull/132389)
120+
* [do not filter empty lint passes & re-do CTFE pass](https://github.com/rust-lang/rust/pull/132637)
121+
* [do not reveal opaques in the param-env, we got lazy norm instead](https://github.com/rust-lang/rust/pull/132755)
122+
* [do not trust download-rustc=if-unchanged on CI for now](https://github.com/rust-lang/rust/pull/132852)
123+
* [don't suggest `.into_iter()` on iterators](https://github.com/rust-lang/rust/pull/132760)
124+
* [don't use `maybe_unwrap_block` when checking for macro calls in a block expr](https://github.com/rust-lang/rust/pull/132653)
125+
* [dont suggest `use<impl Trait>` when we have an edition-2024-related borrowck issue](https://github.com/rust-lang/rust/pull/132816)
126+
* [drop "gnu" in the target env for FreeBSD armv6/7](https://github.com/rust-lang/rust/pull/132764)
127+
* [emit warning when calling/declaring functions with unavailable vectors](https://github.com/rust-lang/rust/pull/132173)
128+
* [enforce that raw lifetimes must be valid raw identifiers](https://github.com/rust-lang/rust/pull/132363)
129+
* [ensure that tail expr receive lifetime extension](https://github.com/rust-lang/rust/pull/129627)
130+
* [fix parens mangled in shared mut static lint suggestion](https://github.com/rust-lang/rust/pull/132095)
131+
* [get rid of `check_opaque_type_well_formed`](https://github.com/rust-lang/rust/pull/132757)
132+
* [make `RustString` an extern type to avoid `improper_ctypes` warnings](https://github.com/rust-lang/rust/pull/132549)
133+
* [make `Ty::primitive_symbol` recognize `str`](https://github.com/rust-lang/rust/pull/132799)
134+
* [make `fn_abi_sanity_check` a bit stricter](https://github.com/rust-lang/rust/pull/132729)
135+
* [make sure that we suggest turbofishing the right type arg for never suggestion](https://github.com/rust-lang/rust/pull/132933)
136+
* [mark some target features as 'forbidden' so they cannot be (un)set with -Ctarget-feature](https://github.com/rust-lang/rust/pull/129884)
137+
* [only disable cache if predicate has opaques within it](https://github.com/rust-lang/rust/pull/132625)
138+
* [passWrapper: adapt for new parameter in LLVM](https://github.com/rust-lang/rust/pull/132600)
139+
* [prefer `pub(super)` in `unreachable_pub` lint suggestion](https://github.com/rust-lang/rust/pull/132426)
140+
* [properly suggest `E::assoc` when we encounter `E::Variant::assoc`](https://github.com/rust-lang/rust/pull/132567)
141+
* [provide placeholder generics for traits in "no method found for type parameter" suggestions](https://github.com/rust-lang/rust/pull/132487)
142+
* [reject raw lifetime followed by `'`, like regular lifetimes do](https://github.com/rust-lang/rust/pull/132341)
143+
* [remove 'platform-intrinsic' ABI leftovers](https://github.com/rust-lang/rust/pull/132734)
144+
* [remove `rustc_session::config::rustc_short_optgroups`](https://github.com/rust-lang/rust/pull/132891)
145+
* [remove support for `rustc_safe_intrinsic` attribute; use `rustc_intrinsic` functions instead](https://github.com/rust-lang/rust/pull/132717)
146+
* [remove unnecessary pub `enum` glob-imports from `rustc_middle::ty`](https://github.com/rust-lang/rust/pull/132580)
147+
* [require `const_impl_trait` gate for all conditional and trait const calls](https://github.com/rust-lang/rust/pull/132823)
148+
* [revert using `HEAP` static in Windows alloc](https://github.com/rust-lang/rust/pull/131888)
149+
* [set "symbol name" in raw-dylib import libraries to the decorated name](https://github.com/rust-lang/rust/pull/130586)
150+
* [simplify FFI calls for `-Ztime-llvm-passes` and `-Zprint-codegen-stats`](https://github.com/rust-lang/rust/pull/132590)
151+
* [simplify some places that deal with generic parameter defaults](https://github.com/rust-lang/rust/pull/132912)
152+
* [simplify the internal API for declaring command-line options](https://github.com/rust-lang/rust/pull/132754)
153+
* [suggest swapping LHS and RHS when RHS impls `PartialEq<lhs_ty>`](https://github.com/rust-lang/rust/pull/132404)
154+
* [tweak E0320 overflow error wording](https://github.com/rust-lang/rust/pull/132663)
155+
* [tweak detection of multiple crate versions to be more encompassing](https://github.com/rust-lang/rust/pull/128849)
156+
* [use `download-rustc="if-unchanged"` as a global default](https://github.com/rust-lang/rust/pull/132772)
157+
* [use a separate dir for r-a builds consistently in helix config](https://github.com/rust-lang/rust/pull/132794)
158+
* [use verbose for path separator suggestion](https://github.com/rust-lang/rust/pull/132780)
159+
* [`pointee_info_at`: fix logic for recursing into enums](https://github.com/rust-lang/rust/pull/132745)
160+
* [`rustc_codegen_llvm`: Add a new 'pc' option to branch-protection](https://github.com/rust-lang/rust/pull/132259)
161+
* [`rustc_target`: more target string fixes for LLVM 20](https://github.com/rust-lang/rust/pull/132785)
162+
* [interpret: `get_alloc_info`: also return mutability](https://github.com/rust-lang/rust/pull/132801)
163+
* [StableMIR: A few fixes to pretty printing](https://github.com/rust-lang/rust/pull/132161)
164+
* [StableMIR: API to retrieve definitions from crates](https://github.com/rust-lang/rust/pull/132131)
165+
* [miri: fix linux-futex test being accidentally disabled](https://github.com/rust-lang/miri/pull/4022)
166+
* [miri: get/set thread name shims return errors for invalid handles](https://github.com/rust-lang/miri/pull/4004)
167+
* [miri: preparing for merge from rustc](https://github.com/rust-lang/miri/pull/4023)
168+
* [miri: pthread-sync test: avoid confusing error when running with preemption](https://github.com/rust-lang/miri/pull/4020)
169+
* [miri: remove MutexID list](https://github.com/rust-lang/miri/pull/4002)
170+
* [miri: renamed this arguments to ecx](https://github.com/rust-lang/miri/pull/4029)
171+
* [miri: stacked borrows tests: add those that fail under TB](https://github.com/rust-lang/miri/pull/4028)
172+
* [miri: standardized variable names for InterpCx](https://github.com/rust-lang/miri/pull/4018)
173+
* [miri: store futexes in per-allocation data rather than globally](https://github.com/rust-lang/miri/pull/3971)
174+
* [miri: sync support: dont implicitly clone inside the general sync machinery](https://github.com/rust-lang/miri/pull/4027)
175+
* [stabilise `const_char_encode_utf16`](https://github.com/rust-lang/rust/pull/132153)
176+
* [stabilize Arm64EC inline assembly](https://github.com/rust-lang/rust/pull/131781)
177+
* [stabilize WebAssembly `multivalue`, reference-types`, and tail-call` target features](https://github.com/rust-lang/rust/pull/131080)
178+
* [stabilize `UnsafeCell::from_mut`](https://github.com/rust-lang/rust/pull/131261)
179+
* [stabilize s390x inline assembly](https://github.com/rust-lang/rust/pull/131258)
180+
* [add new unstable feature `const_eq_ignore_ascii_case`](https://github.com/rust-lang/rust/pull/131721)
181+
* [make `char::is_whitespace` unstably const](https://github.com/rust-lang/rust/pull/132500)
182+
* [inline `str::repeat`](https://github.com/rust-lang/rust/pull/132705)
183+
* [core/fmt: Replace checked slice indexing by unchecked to support panic-free code](https://github.com/rust-lang/rust/pull/132473)
184+
* [add Set entry API](https://github.com/rust-lang/rust/pull/120077)
185+
* [implement `div_ceil` for `NonZero<unsigned>`](https://github.com/rust-lang/rust/pull/132665)
186+
* [implement `file_lock` feature](https://github.com/rust-lang/rust/pull/130999)
187+
* [initialize channel `Block`s directly on the heap](https://github.com/rust-lang/rust/pull/132738)
188+
* [disable `f16` on platforms that have recursion problems](https://github.com/rust-lang/compiler-builtins/pull/730)
189+
* [cargo: warnings: add build.warnings option](https://github.com/rust-lang/cargo/pull/14388)
190+
* [cargo: test: Make redactions consistent with snapbox](https://github.com/rust-lang/cargo/pull/14790)
191+
* [cargo: git: do not validate submodules of fresh checkouts](https://github.com/rust-lang/cargo/pull/14605)
192+
* [cargo: normalize the `target` paths](https://github.com/rust-lang/cargo/pull/14497)
193+
* [cargo: refactor: clone-on-write when needed for InternedString](https://github.com/rust-lang/cargo/pull/14808)
194+
* [cargo: rustfix: replace special-case duplicate handling with error](https://github.com/rust-lang/cargo/pull/14782)
195+
* [rustdoc-search: show type signature on type-driven SERP](https://github.com/rust-lang/rust/pull/124544)
196+
* [rustdoc-search: simplify rules for generics and type params](https://github.com/rust-lang/rust/pull/127589)
197+
* [bindgen: fix `field_visibility` not called for new-type aliases](https://github.com/rust-lang/rust-bindgen/pull/2967)
198+
* [bindgen: fix `unsafe_op_in_unsafe_fn` when using dynamic librarys and `wrap_unsafe_ops`](https://github.com/rust-lang/rust-bindgen/pull/2961)
199+
* [handle separate prefixes in clippy rules](https://github.com/rust-lang/rust/pull/132873)
200+
* [clippy: `no_mangle_with_rust_abi`: properly position the suggested ABI](https://github.com/rust-lang/rust-clippy/pull/13659)
201+
* [clippy: add match-based manual try to `clippy::question_mark`](https://github.com/rust-lang/rust-clippy/pull/13627)
202+
* [clippy: collect attribute spans early for disallowed macros](https://github.com/rust-lang/rust-clippy/pull/13657)
203+
* [clippy: fix `large_include_file` lint being triggered all the time by doc comments](https://github.com/rust-lang/rust-clippy/pull/13672)
204+
* [clippy: fix: `identity_op` suggestions use correct parenthesis](https://github.com/rust-lang/rust-clippy/pull/13647)
205+
* [rust-analyzer: editors/code: change minimum VS Code from 1.78 to 1.83](https://github.com/rust-lang/rust-analyzer/pull/18486)
206+
* [rust-analyzer: use completion item indices instead of property matching when searching for the completion item to resolve](https://github.com/rust-lang/rust-analyzer/pull/18503)
102207

103208
### Rust Compiler Performance Triage
104209

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

293398
# Quote of the Week
294399

295-
<!-- QOTW goes here -->
400+
> Netstack3 encompasses 63 crates and 60 developer-years of code. It contains more code than the top ten crates on [crates.io](https://crates.io/) combined. ... For the past eleven months, they have been running the new networking stack on 60 devices, full time. In that time, Liebow-Feeser said, most code would have been expected to show "mountains of bugs". Netstack3 had only three; he attributed that low number to the team's approach of encoding as many important invariants in the type system as possible.
401+
402+
[Joshua Liebow-Feeser at RustConf, as reported by Daroc Alden on Linux Weekly News](https://lwn.net/SubscriberLink/995814/17e451bcb3015920/)
403+
404+
Thanks to [Anton Fetisov](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1630) for the suggestion!
296405

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

0 commit comments

Comments
 (0)