Skip to content

Commit 08e4482

Browse files
committed
C/QotW and notable changes
1 parent 4ece5b9 commit 08e4482

File tree

1 file changed

+112
-3
lines changed

1 file changed

+112
-3
lines changed

draft/2024-09-25-this-week-in-rust.md

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

5454
## Crate of the Week
5555

56-
<!-- COTW goes here -->
56+
This week's crate is [perpetual](https://github.com/perpetual-ml/perpetual), a self-generalizing gradient boosting implementation.
57+
58+
Thanks to [Mutlu Simsek](https://users.rust-lang.org/t/crate-of-the-week/2704/1348) for the self-suggestion!
5759

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

@@ -104,7 +106,110 @@ If you are an event organizer hoping to expand the reach of your event, please s
104106

105107
## Updates from the Rust Project
106108

107-
<!-- Rust updates go here -->
109+
400 pull requests were [merged in the last week][merged]
110+
111+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2024-09-17..2024-09-24
112+
113+
* [add arm64e-apple-tvos target](https://github.com/rust-lang/rust/pull/130614)
114+
* [parser: recover from `::`: to `:`:](https://github.com/rust-lang/rust/pull/130673)
115+
* [`read_volatile __rust_no_alloc_shim_is_unstable` in `alloc_zeroed`](https://github.com/rust-lang/rust/pull/130497)
116+
* [add `unqualified_local_imports` lint](https://github.com/rust-lang/rust/pull/125645)
117+
* [add recursion limit to FFI safety lint](https://github.com/rust-lang/rust/pull/130598)
118+
* [apply `EarlyOtherwiseBranch` to scalar value](https://github.com/rust-lang/rust/pull/129047)
119+
* [assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself](https://github.com/rust-lang/rust/pull/130666)
120+
* [bail if there are too many non-region infer vars in the query response](https://github.com/rust-lang/rust/pull/130617)
121+
* [call `module_name_to_str` instead of just unwrapping](https://github.com/rust-lang/rust/pull/130680)
122+
* [change `download-ci-llvm` default from `if-unchanged` to `true`](https://github.com/rust-lang/rust/pull/130529)
123+
* [check params for unsafety in THIR](https://github.com/rust-lang/rust/pull/130531)
124+
* [compiler: accept "improper" ctypes in extern "rust-cold" fn](https://github.com/rust-lang/rust/pull/130667)
125+
* [compiler: factor out `OVERFLOWING_LITERALS` impl](https://github.com/rust-lang/rust/pull/130646)
126+
* [correct outdated object size limit](https://github.com/rust-lang/rust/pull/127546)
127+
* [disallow hidden references to mutable static](https://github.com/rust-lang/rust/pull/124895)
128+
* [do not ICE with incorrect empty suggestion](https://github.com/rust-lang/rust/pull/127988)
129+
* [do not expect infer/bound/placeholder/error in v0 symbol mangling](https://github.com/rust-lang/rust/pull/130485)
130+
* [don't ICE in `opaque_hidden_inferred_bound` lint for RPITIT in trait with no default method body](https://github.com/rust-lang/rust/pull/130440)
131+
* [don't call `extern_crate` when local crate name is the same as a dependency and we have a trait error](https://github.com/rust-lang/rust/pull/130275)
132+
* [don't call `ty::Const::normalize` in error reporting](https://github.com/rust-lang/rust/pull/130712)
133+
* [encode `coroutine_by_move_body_def_id` in crate metadata](https://github.com/rust-lang/rust/pull/130201)
134+
* [ensure that `keyword_ident` lint doesn't trigger on `'r#kw` lifetime](https://github.com/rust-lang/rust/pull/130489)
135+
* [fix `break_last_token`](https://github.com/rust-lang/rust/pull/130551)
136+
* [fix anon const def-creation when macros are involved take 2](https://github.com/rust-lang/rust/pull/130337)
137+
* [fix circular `fn_sig` queries to correct number of args for methods](https://github.com/rust-lang/rust/pull/130496)
138+
* [fix fluent diagnostics](https://github.com/rust-lang/rust/pull/129477)
139+
* [further improve diagnostics for expressions in pattern position](https://github.com/rust-lang/rust/pull/123877)
140+
* [gate `repr(Rust)` correctly on non-ADT items](https://github.com/rust-lang/rust/pull/129422)
141+
* [get rid of niche selection's dependence on fields's order](https://github.com/rust-lang/rust/pull/130508)
142+
* [handle unsized consts with type `str` in v0 symbol mangling](https://github.com/rust-lang/rust/pull/130344)
143+
* [implement Return Type Notation (RTN)'s path form in where clauses](https://github.com/rust-lang/rust/pull/129629)
144+
* [improve handling of raw-idents in check-cfg](https://github.com/rust-lang/rust/pull/130507)
145+
* [normalize consts in writeback when GCE is enabled](https://github.com/rust-lang/rust/pull/130645)
146+
* [relate receiver invariantly in method probe for `Mode::Path`](https://github.com/rust-lang/rust/pull/129073)
147+
* [remove semi-nondeterminism of `DefPathHash` ordering from inliner](https://github.com/rust-lang/rust/pull/130455)
148+
* [replace calls to `ty::Const::{try_}eval` in mir build/pattern analysis](https://github.com/rust-lang/rust/pull/130715)
149+
* [rework `non_local_definitions` lint to only use a syntactic heuristic](https://github.com/rust-lang/rust/pull/127117)
150+
* [support 128-bit atomics on s390x](https://github.com/rust-lang/rust/pull/130558)
151+
* [take more advantage of the `isize::MAX` limit in `Layout`](https://github.com/rust-lang/rust/pull/129845)
152+
* [use `Vec` in `rustc_interface::Config::locale_resources`](https://github.com/rust-lang/rust/pull/129988)
153+
* [win: open dir for sync access in `remove_dir_all`](https://github.com/rust-lang/rust/pull/129934)
154+
* [miri: automatically add/remove labels when github review (requests) are used](https://github.com/rust-lang/miri/pull/3893)
155+
* [miri: refactor fd read/write](https://github.com/rust-lang/miri/pull/3852)
156+
* [add `extern "C-cmse-nonsecure-entry" fn`](https://github.com/rust-lang/rust/pull/127766)
157+
* [don't alloca for unused locals](https://github.com/rust-lang/rust/pull/129283)
158+
* [perf: skip normalizing param env if it is already normalized](https://github.com/rust-lang/rust/pull/130561)
159+
* [begin experimental support for pin reborrowing](https://github.com/rust-lang/rust/pull/130526)
160+
* [`RepeatN`: use MaybeUninit](https://github.com/rust-lang/rust/pull/130145)
161+
* [add `Thread::{into_raw, from_raw}`](https://github.com/rust-lang/rust/pull/97524)
162+
* [add `Vec::as_non_null`](https://github.com/rust-lang/rust/pull/130624)
163+
* [add `new_cyclic_in` for Rc and Arc](https://github.com/rust-lang/rust/pull/129674)
164+
* [add `str.as_str()` for easy Deref to string slices](https://github.com/rust-lang/rust/pull/129550)
165+
* [avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`](https://github.com/rust-lang/rust/pull/130408)
166+
* [delay uncapping the `max_read_size` in `File::read_to_end`](https://github.com/rust-lang/rust/pull/130670)
167+
* [add `Lazy{Cell,Lock}::get[_mut]` and `force_mut`](https://github.com/rust-lang/rust/pull/130476)
168+
* [make unstable `Result::flatten` a const fn](https://github.com/rust-lang/rust/pull/130692)
169+
* [mark `char::make_ascii_uppercase` and `char::make_ascii_lowercase` as const](https://github.com/rust-lang/rust/pull/130697)
170+
* [mark `u8::make_ascii_uppercase` and `u8::make_ascii_lowercase` as const](https://github.com/rust-lang/rust/pull/130713)
171+
* [pass `fmt::Arguments` by reference to `PanicInfo` and `PanicMessage`](https://github.com/rust-lang/rust/pull/129491)
172+
* [stabilize const `MaybeUninit::as_mut_ptr`](https://github.com/rust-lang/rust/pull/130542)
173+
* [remove uneeded `PartialOrd` bound in `cmp::Ord::clamp`](https://github.com/rust-lang/rust/pull/130481)
174+
* [std: implement the `random` feature (alternative version)](https://github.com/rust-lang/rust/pull/129201)
175+
* [support `char::encode_utf16` in const scenarios](https://github.com/rust-lang/rust/pull/130659)
176+
* [support `char::encode_utf8` in const scenarios](https://github.com/rust-lang/rust/pull/130511)
177+
* [futures: fix issues with `AsyncBufRead::read_line` and `AsyncBufReadExt::lines`](https://github.com/rust-lang/futures-rs/pull/2884)
178+
* [hashbrown: implement Clone and Debug for HashTable's Iter `struct`](https://github.com/rust-lang/hashbrown/pull/541)
179+
* [hashbrown: implement `Debug`, `FusedIterator` and `Iterator::fold` for all `HashTable` iterators](https://github.com/rust-lang/hashbrown/pull/561)
180+
* [hashbrown: re-introduce a way to get the allocation size of a table](https://github.com/rust-lang/hashbrown/pull/553)
181+
* [cargo: complete: Upgrade `clap_complete`](https://github.com/rust-lang/cargo/pull/14573)
182+
* [cargo: complete: Harden `--target` completions](https://github.com/rust-lang/cargo/pull/14564)
183+
* [cargo: resolve: Don't list transitive, incompatible dependencies as available](https://github.com/rust-lang/cargo/pull/14568)
184+
* [cargo: resolve: Improve multi-MSRV workspaces](https://github.com/rust-lang/cargo/pull/14569)
185+
* [cargo: add a `--dry-run` flag to the `install` command](https://github.com/rust-lang/cargo/pull/14280)
186+
* [cargo: add custom completer for `cargo build --example=<TAB>`](https://github.com/rust-lang/cargo/pull/14531)
187+
* [cargo: add custom completer for `cargo help <TAB>`](https://github.com/rust-lang/cargo/pull/14557)
188+
* [cargo: add custom completer for completing benchmark names](https://github.com/rust-lang/cargo/pull/14532)
189+
* [cargo: add custom completer for completing target triple](https://github.com/rust-lang/cargo/pull/14535)
190+
* [cargo: add custom completer for completing test names](https://github.com/rust-lang/cargo/pull/14548)
191+
* [cargo: suggest `cargo info` command in the `cargo search` result](https://github.com/rust-lang/cargo/pull/14537)
192+
* [rustdoc: use the correct span for doctests](https://github.com/rust-lang/rust/pull/130582)
193+
* [clippy: ignore `missing_panics_doc` in const context](https://github.com/rust-lang/rust-clippy/pull/13382)
194+
* [clippy: fix `if_then_some_else_none` sugg missing closure intro](https://github.com/rust-lang/rust-clippy/pull/13409)
195+
* [clippy: generate versions HTML directly](https://github.com/rust-lang/rust-clippy/pull/13414) (nice poem, @xFredNet)
196+
* [clippy: initial impl of `unnecessary_first_then_check`](https://github.com/rust-lang/rust-clippy/pull/13421)
197+
* [clippy: lint comparison to empty slice using `PartialEq` methods](https://github.com/rust-lang/rust-clippy/pull/13432)
198+
* [clippy: unused trait imports (formerly anonymous trait import)](https://github.com/rust-lang/rust-clippy/pull/13322)
199+
* [clippy: use contiguous spans for `empty_line_after_*` suggestion](https://github.com/rust-lang/rust-clippy/pull/13439)
200+
* [rust-analyzer: don't lint names of `#[no_mangle]` extern fns](https://github.com/rust-lang/rust-analyzer/pull/18136)
201+
* [rust-analyzer: add diagnostics for `unsafe_op_in_unsafe_fn`](https://github.com/rust-lang/rust-analyzer/pull/18135)
202+
* [rust-analyzer: implement `expr_2021`](https://github.com/rust-lang/rust-analyzer/pull/18137)
203+
* [rust-analyzer: support the `${concat(...)}` metavariable expression](https://github.com/rust-lang/rust-analyzer/pull/18151)
204+
* [rust-analyzer: always cache macro expansions' root node in Semantics](https://github.com/rust-lang/rust-analyzer/pull/18117)
205+
* [rust-analyzer: don't complete `;` when in closure return expression](https://github.com/rust-lang/rust-analyzer/pull/18132)
206+
* [rust-analyzer: extend `type_variable_table` when modifying index is larger than the table size](https://github.com/rust-lang/rust-analyzer/pull/18139)
207+
* [rust-analyzer: get rid of `$crate` in expansions shown to the user](https://github.com/rust-lang/rust-analyzer/pull/18131)
208+
* [rust-analyzer: handle errors and lints from external macros](https://github.com/rust-lang/rust-analyzer/pull/18128)
209+
* [rust-analyzer: handle lint attributes that are under `#[cfg_attr]`](https://github.com/rust-lang/rust-analyzer/pull/18108)
210+
* [rust-analyzer: remove check that text of `parse_expr_from_str()` matches the produced parsed tree](https://github.com/rust-lang/rust-analyzer/pull/18146)
211+
* [rust-analyzer: support expect in attribute completion and hover](https://github.com/rust-lang/rust-analyzer/pull/18172)
212+
* [rust-analyzer: when checking for forbidden expr kind matches, account for rawness](https://github.com/rust-lang/rust-analyzer/pull/18153)
108213

109214
### Rust Compiler Performance Triage
110215

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

309414
# Quote of the Week
310415

311-
<!-- QOTW goes here -->
416+
> New users feel like iteration times are so slow and it takes forever to get going with Rust. But if there's a library available, I feel like I'm roughly as productive with Rust as I am with Ruby, if not more, when I think about the whole amount of work I'm doing. I haven't really figured out how to talk about that without sounding purely like a zealot, but yeah, I feel like Rust is actually very, very productive, even though many people don't see it that way initially.
417+
418+
[Steve Klabnik at Oxidize Conference](https://youtu.be/q8qn0dyT3xc?t=2784)
419+
420+
Thanks to [Brian Kung](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1611) for the suggestion!
312421

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

0 commit comments

Comments
 (0)