Skip to content

Commit 3319704

Browse files
authored
Merge branch 'master' into patch-1
2 parents 9a58276 + b93f4dd commit 3319704

File tree

1 file changed

+45
-39
lines changed

1 file changed

+45
-39
lines changed

draft/2020-09-30-this-week-in-rust.md

Lines changed: 45 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ No newsletters this week.
2121
### Tooling
2222

2323
### Observations/Thoughts
24+
* [Benchmarking vol. 2: Pitting Actix against Rocket v0.4 and v0.5-dev](https://matej.laitl.cz/bench-actix-rocket/)
2425

2526
### Learn Standard Rust
2627

@@ -30,6 +31,7 @@ No newsletters this week.
3031
* [OS in Rust: An executable that runs on bare metal: Part-1](https://blog.knoldus.com/os-in-rust-an-executable-that-runs-on-bare-metal-part-1/)
3132
* [OS in Rust: An executable that runs on bare metal: Part-2](https://blog.knoldus.com/os-in-rust-an-executable-that-runs-on-bare-metal-part-2/)
3233
* [Build a Discord Bot with Rust and Serenity](https://developers.facebook.com/blog/post/2020/09/30/build-discord-bot-with-rust-and-serenity/)
34+
* [Porting EBU R128 audio loudness analysis from C to Rust – Porting Details](https://coaxion.net/blog/2020/09/porting-ebu-r128-audio-loudness-analysis-from-c-to-rust-porting-details/)
3335

3436
### Project Updates
3537
* [Krustlet v0.5.0 Release](https://github.com/deislabs/krustlet/releases/tag/v0.5.0)
@@ -44,9 +46,9 @@ Here are the wonderful submissions since the call for blog posts:
4446

4547
# Crate of the Week
4648

47-
This week's crate is [cargo-about](https://crates.io/crates/cargo-about), a handy cargo subcommand to list the dependencies and their licenses!
49+
This week's crate is [fs-err](https://crates.io/crates/fs-err), a library to make filesystem errors usable.
4850

49-
Thanks to [Jimuazu](https://users.rust-lang.org/t/crate-of-the-week/2704/820) for the suggestion!
51+
Thanks to [Emerentius](https://users.rust-lang.org/t/crate-of-the-week/2704/821) for the suggestion!
5052

5153
[Submit your suggestions and votes for next week][submit_crate]!
5254

@@ -65,46 +67,50 @@ If you are a Rust project owner and are looking for contributors, please submit
6567

6668
# Updates from Rust Core
6769

68-
373 pull requests were [merged in the last week][merged]
69-
70-
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2020-09-14..2020-09-21
71-
72-
* [let user see the full type of type-length limit error](https://github.com/rust-lang/rust/pull/76843)
73-
* [don't allow implementing trait directly on `type-alias-impl-trait`](https://github.com/rust-lang/rust/pull/76940)
74-
* [give *even better* suggestion when matching a const range](https://github.com/rust-lang/rust/pull/76749)
75-
* [introduce a `PartitioningCx` struct](https://github.com/rust-lang/rust/pull/76694)
76-
* [initial support for `riscv32gc_unknown_linux_gnu`](https://github.com/rust-lang/rust/pull/76048)
77-
* [note when a a move/borrow error is caused by a deref coercion](https://github.com/rust-lang/rust/pull/75304)
78-
* [new MIR optimization pass to reduce branches on match of tuples of enums](https://github.com/rust-lang/rust/pull/75119)
79-
* [improve diagnostics for lifetime after `&mut`](https://github.com/rust-lang/rust/pull/73595)
80-
* [implement a generic Destination Propagation optimization on MIR](https://github.com/rust-lang/rust/pull/72632)
81-
* [miri: support non-rlib extern files](https://github.com/rust-lang/miri/pull/1557)
82-
* [add `as_str()` to `string::Drain`](https://github.com/rust-lang/rust/pull/76525)
83-
* [make all methods of `Duration` unstably const](https://github.com/rust-lang/rust/pull/76335)
84-
* [add `[T; N]: TryFrom<Vec<T>>`](https://github.com/rust-lang/rust/pull/76310)
85-
* [stabilize some `Result` methods as const](https://github.com/rust-lang/rust/pull/76136)
86-
* [stabilize some `Option` methods as const](https://github.com/rust-lang/rust/pull/76135)
87-
* [avoid useless `sift_down` when `std::collections::binary_heap::PeekMut` is never mutably dereferenced](https://github.com/rust-lang/rust/pull/75974)
88-
* [futures: implement `try_take_while`](https://github.com/rust-lang/futures-rs/pull/2212)
89-
* [clippy: change the criteria of `interior_mutable_const`](https://github.com/rust-lang/rust-clippy/pull/6046)
70+
370 pull requests were [merged in the last week][merged]
71+
72+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2020-09-21..2020-09-28
73+
74+
* [return values up to 128 bits in registers](https://github.com/rust-lang/rust/pull/76986)
75+
* [add `asm!` support for MIPS](https://github.com/rust-lang/rust/pull/76839)
76+
* [diagnostics: improve closure/generic parameter mismatch](https://github.com/rust-lang/rust/pull/76711)
77+
* [avoiding unnecesary allocations at `rustc_errors`](https://github.com/rust-lang/rust/pull/76846)
78+
* [add fast path for match checking](https://github.com/rust-lang/rust/pull/76918)
79+
* [cache types during normalization](https://github.com/rust-lang/rust/pull/76928)
80+
* [fix the performance regression of #76244](https://github.com/rust-lang/rust/pull/76913)
81+
* [encode less metadata for proc-macro crates](https://github.com/rust-lang/rust/pull/76897)
82+
* [invalidate local LLVM cache less often](https://github.com/rust-lang/rust/pull/77126)
83+
* [introduce a new flag to enable experimental/unsound mir opts](https://github.com/rust-lang/rust/pull/76899)
84+
* [MIR pass to remove unneeded drops on types not needing drop](https://github.com/rust-lang/rust/pull/76673)
85+
* [add optimization to avoid load of address](https://github.com/rust-lang/rust/pull/76683)
86+
* [miri: more informative deallocation error messages](https://github.com/rust-lang/rust/pull/77047)
87+
* [miri: add API for capturing backtrace](https://github.com/rust-lang/miri/pull/1559)
88+
* [`DroplessArena`: allocate objects from the end of memory chunk](https://github.com/rust-lang/rust/pull/77014)
89+
* [unstably allow `assume` intrinsic in const contexts](https://github.com/rust-lang/rust/pull/76973)
90+
* [add `array::from_ref`](https://github.com/rust-lang/rust/pull/77074)
91+
* [add `#[track_caller]` to more panicking `Cell` functions](https://github.com/rust-lang/rust/pull/77055)
92+
* [make some methods of `Pin` unstably const](https://github.com/rust-lang/rust/pull/76655)
93+
* [revert `const_type_id` stabilization](https://github.com/rust-lang/rust/pull/77083)
94+
* [revert adding `Atomic::from_mut`](https://github.com/rust-lang/rust/pull/76967)
95+
* [add `cfg(target_has_atomic_equal_alignment)` and use it for `Atomic::from_mut`](https://github.com/rust-lang/rust/pull/76965)
96+
* [make `[].as_`[`mut_`]`ptr_range()` (unstably) const](https://github.com/rust-lang/rust/pull/77097)
97+
* [log: implement `Log` for `Box<Log>`](https://github.com/rust-lang/log/pull/414)
9098

9199
## Rust Compiler Performance Triage
92100

93-
* [2020-09-21](https://github.com/rust-lang/rustc-perf/blob/master/triage/2020-09-21.md):
94-
2 Regressions, 5 Improvements, 4 Mixed
101+
* [2020-09-28](https://github.com/rust-lang/rustc-perf/blob/master/triage/2020-09-28.md):
102+
0 Regressions, 1 Improvements, 3 Mixed
95103

96-
This was the first week of semi-automated perf triage, and thank goodness:
97-
There was a lot going on. Most regressions are either quite small or already
98-
have a fix published.
99104

100-
[#72412](https://github.com/rust-lang/rust/issues/72412) is probably the most
101-
interesting case. It fixes a pathological problem involving nested closures by
102-
adding cycle detection to what seems to be a relatively hot part of the code.
103-
As a result, most users will see a slight [compile-time
104-
regression](https://perf.rust-lang.org/compare.html?start=2c69266c0697b0c0b34abea62cba1a1d3c59c90c&end=fdc3405c20122fd0f077f5a77addabc873f20e4c&stat=task-clock)
105-
for their crates.
105+
Most significant changes this week came in response to regressions discussed in
106+
last week's triage report. Curious readers may be interested in
107+
[#77058](https://github.com/rust-lang/rust/issues/77058), in which the removal
108+
of a single field from a struct caused a 25% decrease in wall-times for one
109+
seemingly unrelated benchmark, or
110+
[#76986](https://github.com/rust-lang/rust/issues/76986), an ABI change that
111+
should be a pretty clear win but seems to have mixed results.
106112

107-
See the [full report](https://github.com/rust-lang/rustc-perf/blob/master/triage/2020-09-21.md) for more.
113+
See the [full report](https://github.com/rust-lang/rustc-perf/blob/master/triage/2020-09-28.md) for more.
108114

109115
## Approved RFCs
110116

@@ -166,11 +172,11 @@ Email the [Rust Community Team][community] for access.
166172

167173
# Quote of the Week
168174

169-
> Sometimes you don't *want* the code to compile. The compiler's job is often to tell you that your code doesn't compile, rather than trying to find some meaning that allows compiling your code.
175+
> Rust has a curse (it has many, but this one is critical): inefficient code is generally visible. Experienced developers hate to notice that their code is inefficient. They will recoil at seeing `Arc<RefCell<T>>` , but won't bat an eye at using Python.
170176
171-
- [Josh Triplett on rust-internals](https://internals.rust-lang.org/t/pre-rfc-returning-automatically-generating-impl-trait/13090/11)
177+
- [Esteban Kuber on rust-users](https://users.rust-lang.org/t/failed-to-contribute-due-to-difficulty-in-understanding-rust/49148/6)
172178

173-
Thanks to [Jacob Pratt](https://users.rust-lang.org/t/twir-quote-of-the-week/328/943) for the suggestion!
179+
Thanks to [Jon G Stødle](https://users.rust-lang.org/t/twir-quote-of-the-week/328/945) for the suggestion!
174180

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

0 commit comments

Comments
 (0)