Skip to content

Commit f5683f5

Browse files
authored
Merge branch 'master' into twif-18
2 parents 9c547fe + 9a2a8c5 commit f5683f5

File tree

3 files changed

+114
-55
lines changed

3 files changed

+114
-55
lines changed

.github/workflows/checks.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Correctness Checks
2+
on: [push, pull_request]
3+
jobs:
4+
Run-Link-Checker:
5+
runs-on: ubuntu-20.04
6+
steps:
7+
- name: checkout
8+
uses: actions/checkout@v2
9+
- name: Install Python dependencies
10+
uses: py-actions/py-dependency-install@v3
11+
with:
12+
path: "tools/requirements.txt"
13+
update-pip: "false"
14+
update-setuptools: "false"
15+
update-wheel: "false"
16+
- run: python3 tools/inspect_links.py --num-warn 5

draft/2022-01-05-this-week-in-rust.md

Lines changed: 97 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,59 @@ If you find any errors in this week's issue, [please submit a PR](https://github
1515
## Updates from Rust Community
1616

1717
### Project/Tooling Updates
18+
* [rust-analyzer in 2021](https://rust-analyzer.github.io/blog/2021/12/30/2021-recap.html)
19+
* [rust-analyzer changelog #110](https://rust-analyzer.github.io//thisweek/2022/01/03/changelog-110.html)
20+
* [The year 2021 in Dimforge and our objectives for 2022](https://dimforge.com/blog/2022/01/02/the-year-2021-in-dimforge/)
1821
* [This week in Fluvio #18: the programmable streaming platform](https://www.fluvio.io/news/this-week-in-fluvio-0018/)
22+
* [What's new in SeaORM 0.5.0](https://www.sea-ql.org/SeaORM/blog/2022-01-01-whats-new-in-0.5.0)
23+
* [Ezio](https://www.ncameron.org/blog/ezio/)
24+
* [SixtyFPS (GUI crate): Changelog for 3rd of January 2022](https://sixtyfps.io/thisweek/2022-01-03.html)
25+
* [Introducing Dioxus v0.1](https://dioxuslabs.com/blog/introducing-dioxus/)
26+
* [SNAFU 0.7 Released](https://users.rust-lang.org/t/snafu-0-7-released/69766)
27+
* [hyper-ish 2021 in review](https://seanmonstar.com/post/672473147126300672/hyper-ish-2021-in-review)
28+
* [This Week in Glean: Glean in 2021](https://fnordig.de/2021/12/17/glean-in-2021/)
1929

2030
### Research
2131

2232
### Observations/Thoughts
33+
* [Ranges and suffering](https://kaylynn.gay/blog/post/rust_ranges_and_suffering)
34+
* [Why is my Rust build so slow?](https://fasterthanli.me/articles/why-is-my-rust-build-so-slow)
35+
* [Implementing Spinlock for RISC-V OS in Rust](https://vmm.dev/en/rust/spinlock.md)
36+
* [Writing bindings upside down](https://ilyabylich.svbtle.com/writing-bindings-upside-down)
37+
* [Rust 2021 – Looking Back and Forth](https://llogiq.github.io/2021/12/30/review.html)
38+
* [How a Single Line of Code Made a 24-core Server Slower Than a Laptop](https://pkolaczk.github.io/server-slower-than-a-laptop/)
39+
* [In Defense of Async: Function Colors Are Rusty](https://www.thecodedmessage.com/posts/async-colors/)
40+
* [Rust and Valgrind](https://nnethercote.github.io/2022/01/05/rust-and-valgrind.html)
41+
* [Porting Rust's std to rustix](https://blog.sunfishcode.online/port-std-to-rustix/)
42+
* [Improved portability and performance 🦀](https://pngquant.org/rust.html)
43+
* [Thoughts on return, break and continue](https://blog.oberien.de/2022/01/04/thoughts-on-return-break-continue.html)
44+
* [Parsing Decimals 4 times faster](https://cantortrading.fi/rust_decimal_str/)
45+
* [Beyond the Borrow Checker: Differential Fuzzing](https://tiemoko.com/blog/diff-fuzz/)
2346

2447
### Rust Walkthroughs
48+
* [Don't shell out!](https://fasterthanli.me/series/dont-shell-out)
49+
* [12 Rust Tips and Tricks you might not know yet](https://federicoterzi.com/blog/12-rust-tips-and-tricks-you-might-not-know-yet/)
50+
* [Indexing Strings in Rust and TypeScript: A Case Study of String](https://dawchihliou.github.io/articles/indexing-strings-in-rust-and-typescript)
51+
* [Safe && Portable Data Structure Design](https://tiemoko.com/slides/SafeAndPortableDataStructureDesign_CodeAndSupply_Dec2021.pdf)
52+
* [The joy of building a ray tracer, for fun, in Rust](https://blog.singleton.io/posts/2022-01-02-raytracing-with-rust/)
53+
* [An Introduction To Session-based Authentication In Rust](https://www.lpalmieri.com/posts/session-based-authentication-in-rust/)
54+
* [Profiling linkers](https://fasterthanli.me/articles/profiling-linkers)
55+
* [Debian's approach to Rust - Dependency handling](https://diziet.dreamwidth.org/10559.html)
56+
* [Nine Rules for Writing Python Extensions in Rust & Rayon](https://towardsdatascience.com/nine-rules-for-writing-python-extensions-in-rust-d35ea3a4ec29?sk=f8d808d5f414154fdb811e4137011437)
57+
* [Why Rust enums are so cool](https://hashrust.com/blog/why-rust-enums-are-so-cool/)
58+
* [DE] [Auf Nummer sicher: Sicheres Programmieren mit Rust](https://www.heise.de/hintergrund/Auf-Nummer-sicher-Sicheres-Programmieren-mit-Rust-6302125.html)
2559

2660
### Miscellaneous
61+
* [Fluvio SmartModules with user-defined parameters](https://www.infinyon.com/blog/2021/12/smartmodule-params/)
62+
* [Audio] [LibertyOS with Daniel Teberian](https://rustacean-station.org/episode/052-daniel-teberian/)
63+
* [Video] [Web api benchmarking: Rust (Axum) vs Rust (Warp)](https://www.youtube.com/watch?v=VVKDGnWc2DA)
64+
* [Video] [Adding while statements to Rena](https://www.youtube.com/watch?v=3TuPG_9WIZw)
2765

2866
## Crate of the Week
2967

30-
This week's crate is [zoxide](https://github.com/ajeetdsouza/zoxide), a smarter `cd` command.
68+
This week's crate is [fltk-rs](https://crates.io/crates/fltk), a crate with bindings to the [FLTK](https://github.com/fltk/fltk) GUI toolkit.
3169

32-
Thanks to [Ajeet D'Souza](https://users.rust-lang.org/t/crate-of-the-week/2704/993) for the self-suggestion!
70+
Thanks to [Mark Summerfield](https://users.rust-lang.org/t/crate-of-the-week/2704/999) for the suggestion!
3371

3472
[Please submit your suggestions and votes for next week][submit_crate]!
3573

@@ -48,51 +86,51 @@ If you are a Rust project owner and are looking for contributors, please submit
4886

4987
## Updates from the Rust Project
5088

51-
188 pull requests were [merged in the last week][merged]
52-
53-
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-12-20..2021-12-27
54-
55-
* [miri: provide slightly better notes when tracking a pointer tag](https://github.com/rust-lang/miri/pull/1945)
56-
* [backport LLVM changes to disable deferred inlining](https://github.com/rust-lang/rust/pull/92110)
57-
* [fix duplicate derive clone suggestion](https://github.com/rust-lang/rust/pull/91544)
58-
* [perf: change `Backtrace::enabled` atomic from `SeqCst` to `Relaxed`](https://github.com/rust-lang/rust/pull/92139)
59-
* [perf: eliminate `ObligationCauseData`](https://github.com/rust-lang/rust/pull/91844)
60-
* [fix bad caching of `~const Drop` bounds](https://github.com/rust-lang/rust/pull/92149)
61-
* [constify `core::intrinsics::black_box` and `core::hint::black_box`](https://github.com/rust-lang/rust/pull/92226)
62-
* [make `PTR::as_ref` and similar methods `const`](https://github.com/rust-lang/rust/pull/91823)
63-
* [RawVec: don't recompute capacity after allocating](https://github.com/rust-lang/rust/pull/92220)
64-
* [allow reverse iteration of lowercase'd/uppercase'd chars](https://github.com/rust-lang/rust/pull/88858)
65-
* [stabilise `entry_insert`](https://github.com/rust-lang/rust/pull/90345)
66-
* [suggest adding `#[cfg(test)]` to a test module](https://github.com/rust-lang/rust/pull/91770)
67-
* [cargo: make levenshtein distance case insensitive.](https://github.com/rust-lang/cargo/pull/10224)
68-
* [clippy: add suggestion for `neg_multiply` lint](https://github.com/rust-lang/rust-clippy/pull/8144)
69-
* [clippy: fix `iter_skip_next` false positives](https://github.com/rust-lang/rust-clippy/pull/8133)
70-
* [clippy: improve `unwrap_or_else_default` when handling `unwrap_or_else(XXX::new)`](https://github.com/rust-lang/rust-clippy/pull/8163)
71-
* [clippy: fix `shadow_reuse` false negative for if let bindings](https://github.com/rust-lang/rust-clippy/pull/8165)
72-
* [clippy: fix an ICE on unwrapping a None](https://github.com/rust-lang/rust-clippy/pull/8167)
73-
* [clippy: new lint: `init-numbered-fields`](https://github.com/rust-lang/rust-clippy/pull/8170)
74-
* [rustfmt: fix static async closure qualifier order](https://github.com/rust-lang/rustfmt/pull/5150)
75-
* [rustfmt: retain qualified path when rewriting struct literal expressions](https://github.com/rust-lang/rustfmt/pull/5152)
89+
230 pull requests were [merged in the last week][merged]
90+
91+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-12-27..2022-01-03
92+
93+
* [allow loading LLVM plugins with both legacy and new pass manager](https://github.com/rust-lang/rust/pull/91125)
94+
* [suggest `while let x = y` when encountering `while x = y`](https://github.com/rust-lang/rust/pull/92402)
95+
* [refactor variance diagnostics to work with more types](https://github.com/rust-lang/rust/pull/89336)
96+
* [extend check for `UnsafeCell` in consts to cover unions](https://github.com/rust-lang/rust/pull/90383)
97+
* [parse and suggest moving where clauses after equals for type aliases](https://github.com/rust-lang/rust/pull/92118)
98+
* [relax `priv-in-pub` lint on generic bounds and where clauses of trait impls](https://github.com/rust-lang/rust/pull/90586)
99+
* [perf: store liveness in interval sets for region inference](https://github.com/rust-lang/rust/pull/90637)
100+
* [add `try_reserve` and `try_reserve_exact` for `OsString`](https://github.com/rust-lang/rust/pull/92338)
101+
* [support `\[x; n\]` expressions in `concat_bytes!`](https://github.com/rust-lang/rust/pull/92066)
102+
* [std-simd: impl `std::simd::StdFloat`](https://github.com/rust-lang/portable-simd/pull/219)
103+
* [rustdoc: use `ThinVec` for `GenericArgs` bindings](https://github.com/rust-lang/rust/pull/92395)
104+
* [clippy: extend `unused_io_amount` to cover async io](https://github.com/rust-lang/rust-clippy/pull/8179)
105+
* [clippy: fix `enum_variants` false positive on prefixes that are not camel-case](https://github.com/rust-lang/rust-clippy/pull/8127)
106+
* [clippy: fixed issues with `to_radians` and `to_degrees` lints](https://github.com/rust-lang/rust-clippy/pull/8187)
107+
* [clippy: limit the `identity_op` lint to integral operands](https://github.com/rust-lang/rust-clippy/pull/8183)
108+
* [clippy: `erasing_op` lint ignored when operation `Output` type is different from the type of constant `0`](https://github.com/rust-lang/rust-clippy/pull/8204)
109+
* [clippy: perf: cache test item names](https://github.com/rust-lang/rust-clippy/pull/8182)
110+
* [clippy: fix `redundant_closure` fp with `Rc<F>`/`Arc<F>`](https://github.com/rust-lang/rust-clippy/pull/8193)
111+
* [clippy: `wrong_self_convention`: match `SelfKind::No` more restrictively](https://github.com/rust-lang/rust-clippy/pull/8208)
112+
* [rustfmt: do not flatten match arm block with leading attributes](https://github.com/rust-lang/rustfmt/pull/5158)
113+
* [rustfmt: improve out of line module resolution](https://github.com/rust-lang/rustfmt/pull/5142)
114+
* [rustfmt: support parsing of asm! args](https://github.com/rust-lang/rustfmt/pull/5156)
76115

77116
### Rust Compiler Performance Triage
78117

79-
Relatively quiet week, mostly rustdoc improvements.
118+
It was a relatively calm, but good week overall. Most of the gains were improvements to rustdoc running times.
80119

81-
Triage done by **@simulacrum**.
82-
Revision range: [3d57c61a..e91ad5fc62](https://perf.rust-lang.org/?start=3d57c61a9e04dcd3df633f41142009d6dcad4399&end=e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4&absolute=false&stat=instructions%3Au)
120+
Triage done by **@pnkfelix**.
121+
Revision range: [e91ad5..2b681a](https://perf.rust-lang.org/?start=e91ad5fc62bdee4a29c18baa5fad2ca42fc91bf4&end=2b681ac06b1a6b7ea39525e59363ffee0d1a68e5&absolute=false&stat=instructions%3Au)
83122

84-
2 Regressions, 1 Improvements, 6 Mixed; 0 of them in rollups
123+
1 Regressions, 6 Improvements, 1 Mixed; 0 of them in rollups
124+
38 comparisons made in total
85125

86-
26 comparisons made in total
87-
88-
[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-12-28.md)
126+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2022-01-04.md)
89127

90128
### [Approved RFCs](https://github.com/rust-lang/rfcs/commits/master)
91129

92130
Changes to Rust follow the Rust [RFC (request for comments) process](https://github.com/rust-lang/rfcs#rust-rfcs). These
93131
are the RFCs that were approved for implementation this week:
94132

95-
* [Amend RFC 2996 to replace `Stream` with `AsyncIterator`](https://github.com/rust-lang/rfcs/pull/3208)
133+
* [Amend RFC 3107 to change feature name, fix grammatical error](https://github.com/rust-lang/rfcs/pull/3212)
96134

97135
### Final Comment Period
98136

@@ -106,19 +144,16 @@ decision. Express your opinions now.
106144

107145
#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
108146

109-
* [disposition: merge] [Clarify the guarantees that ThreadId does and doesn't make.](https://github.com/rust-lang/rust/pull/84083)
110-
* [disposition: merge] [Remove effect of `#[no_link]` attribute on name resolution](https://github.com/rust-lang/rust/pull/92034)
111-
* [disposition: merge] [Tracking Issue for Stdin::lines, Stdin::split forwarder methods](https://github.com/rust-lang/rust/issues/87096)
112-
* [disposition: merge] [Tracking issue for Result::cloned, Result::cloned_err, Result::copied, Result::copied_err](https://github.com/rust-lang/rust/issues/63168)
113-
* [disposition: merge] [Remove unnecessary bounds for some Hash{Map,Set} methods](https://github.com/rust-lang/rust/pull/91593)
147+
* [disposition: merge] [Tracking issue for Box::into_pin (feature box_into_pin)](https://github.com/rust-lang/rust/issues/62370)
148+
* [disposition: merge] [make Instant::{duration_since, elapsed, sub} saturating and remove workarounds](https://github.com/rust-lang/rust/pull/89926)
114149

115150
### [New RFCs](https://github.com/rust-lang/rfcs/pulls)
116151

117152
* *No new RFCs were published this week.*
118153

119154
## Upcoming Events
120155

121-
Rusty Events between 12/29/2021 - 1/31/2022 🦀
156+
Rusty Events between 1/5/2022 - 2/2/2022 🦀
122157

123158
### Online
124159

@@ -127,14 +162,21 @@ Rusty Events between 12/29/2021 - 1/31/2022 🦀
127162
* [January 6, 2022 | Nürnberg, DE | **Rust Nürnberg online #8**| Rust Nuremberg](https://www.meetup.com/rust-noris/events/282344613/)
128163
* [January 8, 2022 | Various cities | **Rust GameDev Monthly Meetup** | Rust GameDev](https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com)
129164
* [January 11, 2022 | Dallas, TX, US | **Second Tuesday Meetup**| Dallas Rust](https://www.meetup.com/Dallas-Rust/events/vqtjcsydccbpb/)
165+
* [January 11, 2022 | Los Gatos, CA, US | **Book #24 - Rust for Rustaceans - Chapter 2** | Los Gatos Reading Group](https://www.meetup.com/Los-Gatos-Rust-Reading-Group/events/282813296)
130166
* [January 11, 2022 | Seattle, WA, US | **Monthly meetup** | Seattle Rust Meetup](https://www.meetup.com/Seattle-Rust-Meetup/events/gskksrydccbpb/)
131167
* [January 12, 2022 | Boulder, CO, US | **Monthly Meetup** | Boulder Elixir and Rust](https://www.meetup.com/boulder-elixir-rust/events/zvxcsrydccbqb/)
168+
* [January 12, 2022 | Frankfurt, DE | **Rust for bare-metal embedded systems** | Developing Embedded Systems in Rhein-Main](https://www.meetup.com/Developing-Embedded-Systems-in-Rhein-Main/events/282321009)
132169
* [January 12, 2022 | Los Angeles, CA, US | **Live Coding Session - Mob Programming a Rust Code Kata [Virtual] Jan. 2022** | Rust Los Angeles](https://www.meetup.com/Rust-Los-Angeles/events/282580016/)
133170
* [January 12, 2022 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/gjrtqsydccbqb/)
171+
* [January 13, 2022 | Charlottesville, VA, US | **Higher kinded polymorphism** | Charlottesville Rust Meetup](https://www.meetup.com/Charlottesville-Rust-Meetup/events/282990814)
172+
* [January 13, 2022 | Minneapolis, MN, US | **Safe Systems Programming in Rust: The Promise and the Challenge** | Software Engineering Reading Group](https://www.meetup.com/meetup-group-bxuhnetv/events/282770888)
173+
* [January 13, 2022 | San Diego, CA, US | **San Diego Rust Rust January 2022 Tele-Meetup** | San Diego Rust](https://www.meetup.com/San-Diego-Rust/events/283032744)
134174
* [January 13, 2022 | Warsaw, PL | **Rust Warsaw #4** | Rust Warsaw](https://www.meetup.com/pl-PL/Rust-Warsaw/events/282879405/)
135175
* [January 18, 2022 | Washington, DC, US| **Mid-month Rustful** | Rust DC](https://www.meetup.com/RustDC/events/vdhxgsydccbxb/)
136-
* [January 19, 2022 | Vancouver, BC, CA | **Rust Study/Hack/Hang-out night** |Vancouver Rust](https://www.meetup.com/Vancouver-Rust/events/nwcmpsydccbzb)
176+
* [January 19, 2022 | Vancouver, BC, CA | **Rust Study/Hack/Hang-out night** | Vancouver Rust](https://www.meetup.com/Vancouver-Rust/events/nwcmpsydccbzb)
137177
* [January 25, 2022 | Dallas, TX, US | **Last Tuesday Meetup** | Dallas Rust](https://www.meetup.com/Dallas-Rust/events/jqxqwrydccbhc/)
178+
* [January 27, 2022 | Stuttgart, DE | **Rust-Meetup** | Rust Community Stuttgart](https://www.meetup.com/Rust-Community-Stuttgart/events/282545254)
179+
* [February 1, 2022 | Buffalo, NY, US | **First Tuesdays: Buffalo Rust User Group** | Buffalo Rust Meetup](https://www.meetup.com/Buffalo-Rust-Meetup/events/283011769)
138180

139181
### North America
140182

@@ -152,26 +194,27 @@ Email the [Rust Community Team][community] for access.
152194

153195
# Rust Jobs
154196

197+
**Dreamsolution**
198+
199+
* [Rust Developer (Delft, NL)](https://www.dreamsolution.nl/2021-12-30-vacature-rust-developer.html)
200+
155201
*Tweet us at [@ThisWeekInRust](https://twitter.com/ThisWeekInRust) to get your job offers listed here!*
156202

157203
# Quote of the Week
158204

159-
> One reason we keep certain things as hard errors rather than lints: it establishes a baseline
160-
> that you can safely assume about other people's code, since it can't be turned off. And as a
161-
> result, that baseline can become part of people's mental model of Rust itself, rather than
162-
> something that might or might not be true in any given codebase.
205+
> I performed an extremely scientific poll on twitter, and determined this is not how it's pronounced
206+
>
207+
> ----
208+
>
209+
> Well, it really is Vec<T, A>, pronounced Veck-tah. 😛
163210
>
164-
> We have to take care to not use that lightly, because that places work on all users of Rust to
165-
> maintain code to that baseline. But there are cases where we do. We don't allow using one integer
166-
> type where another was expected. We don't allow certain operations outside an unsafe block. ...
211+
> ----
167212
>
168-
> I think the standard we should apply is asking whether something is part of the baseline that
169-
> people should be able to assume about all Rust code, and if that's worth the tradeoff of requiring
170-
> that baseline of all Rust users.
213+
> Look, I moved away from Boston to avoid this sort of thing 😄.
171214
172-
[Josh Triplett on rust-internals](https://internals.rust-lang.org/t/lack-of-mut-in-bindings-as-a-deny-by-default-lint/15818/8)
215+
[the8472 & Thom Chiovoloni on github](https://github.com/rust-lang/rust/pull/92463#discussion_r777059401)
173216

174-
Thanks to [Josh Triplett](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1153) for the self-suggestion!
217+
Thanks to [Josh Triplett](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1159) for the suggestion!
175218

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

tools/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
beautifulsoup4==4.10.0
2-
Markdown==3.3.5
2+
Markdown==3.3.6

0 commit comments

Comments
 (0)