Skip to content

Commit b8309ab

Browse files
authored
Merge branch 'master' into patch-8
2 parents 4b3bd28 + 2b2daf9 commit b8309ab

File tree

3 files changed

+141
-30
lines changed

3 files changed

+141
-30
lines changed

content/2023-03-15-this-week-in-rust.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ If you find any errors in this week's issue, [please submit a PR](https://github
4747
* (video) [Teaching Embedded Rust](https://www.youtube.com/watch?v=hGdYBEkQJPU)
4848

4949
### Rust Walkthroughs
50-
* [Beginning Rust: by exploring a very basic Axum web API in detail](https://medium.com/@lindblomdev/beginning-rust-by-exploring-a-very-basic-axum-web-api-in-detail-1f4c87e422e0)
50+
* [Beginning Rust: by exploring a very basic Axum web API in detail](https://medium.com/@lindblomdev/beginning-rust-by-exploring-a-very-basic-axum-web-api-in-detail-1f4c87e422e0?sk=6518c70d4704afe90e6b3b81bdf7ebf8)
5151
* [Rewriting the CLI in Rust: Was It Worth It?](https://blog.railway.app/p/rust-cli-rewrite)
5252
* [Trace through a Kafka Cluster using OpenTelemetry](https://dev.to/ciscoemerge/trace-through-a-kafka-cluster-with-rust-and-opentelemetry-2jln)
5353
* [Tour of a HTTP request in Rust](https://rustwebdevelopment.com/blog/tour-http/)

draft/2023-03-22-this-week-in-rust.md

Lines changed: 139 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,58 @@ and just ask the editors to select the category.
3030
### Official
3131

3232
### Foundation
33+
* [Welcoming Software Engineer Adam Harvey to the Rust Foundation Team](https://foundation.rust-lang.org/news/welcoming-software-engineer-adam-harvey-to-the-rust-foundation-team/)
34+
* [New SLSA++ Survey Reveals Real-World Developer Approaches to Software Supply Chain Security](https://foundation.rust-lang.org/news/new-slsa-survey-reveals-real-world-developer-approaches-to-software-supply-chain-security/)
3335

3436
### Newsletters
37+
* [This Month in Rust OSDev: February 2023 | Rust OSDev](https://rust-osdev.com/this-month/2023-02/)
3538

3639
### Project/Tooling Updates
40+
* [autometrics 0.3: Defining Service-Level Objectives (SLOs) in Rust Source Code](https://fiberplane.com/blog/autometrics-rs-0-3-defining-service-level-objectives-in-rust-source-code)
41+
* [Typst starts its public beta test and goes open source](https://typst.app/blog/2023/beta-oss-launch)
42+
* [Klint: Compile-time Detection of Atomic Context Violations for Kernel Rust Code](https://www.memorysafety.org/blog/gary-guo-klint-rust-tools/)
43+
* [rust-analyzer changelog #173](https://rust-analyzer.github.io/thisweek/2023/03/20/changelog-173.html)
44+
* [Gitea 1.19.0 is released](https://blog.gitea.io/2023/03/gitea-1.19.0-is-released/)
45+
* [Fornjot (code-first CAD in Rust) - Weekly Release - Finished!](https://www.fornjot.app/blog/weekly-release/2023-w12/)
46+
* [activitypub-federation 0.4.0: Major rewrite with improvements to usability and documentation](https://docs.rs/activitypub_federation)
47+
* [Quickwit 0.5: Distributed tracing with Open Telemetry and Jaeger, VRL, Pulsar support, and more...!](https://quickwit.io/blog/quickwit-0.5)
48+
* [pavex, a new Rust web framework - Progress report #2](https://www.lpalmieri.com/posts/pavex-progress-report-02/)
3749

3850
### Observations/Thoughts
51+
* [Temporary lifetimes](https://smallcultfollowing.com/babysteps/blog/2023/03/15/temporary-lifetimes/)
52+
* [Must move types](https://smallcultfollowing.com/babysteps/blog/2023/03/16/must-move-types/)
53+
* [Defer blocks and async drop](https://www.ncameron.org/blog/defer-blocks-and-async-drop/)
54+
* [A template proposal for adopting Rust at work](https://tim.mcnamara.nz/post/711821310255349760/template-proposal-to-adopt-rust)
55+
* [Patterns & Abstractions](https://without.boats/blog/patterns-and-abstractions/)
56+
* [Const as an auto trait](https://without.boats/blog/const-as-an-auto-trait/)
57+
* [Item Patterns And Struct Else](https://blog.nilstrieb.dev/posts/item-patterns-and-struct-else/)
58+
* [Why use Rust on the backend?](https://blog.adamchalmers.com/why-rust-on-backend/)
59+
* [The Importance of Logging](https://www.thecodedmessage.com/posts/logging/)
60+
* [AsRef vs Borrow trait (ft. ChatGPT)](https://rusty-ferris.pages.dev/blog/asref-vs-borrow-trait/)
61+
* [audio] [Cargo Limit with Alexander Lopatin :: Rustacean Station](https://rustacean-station.org/episode/alexander-lopatin/)
62+
* [video] [The Truth about Rust/WebAssembly Performance](https://www.youtube.com/watch?v=4KtotxNAwME)
3963

4064
### Rust Walkthroughs
41-
- [Using Cow in Rust for efficient memory utilization](https://blog.logrocket.com/using-cow-rust-efficient-memory-utilization/)
65+
* [Using Cow in Rust for efficient memory utilization](https://blog.logrocket.com/using-cow-rust-efficient-memory-utilization/)
66+
* [STM32F4 Embedded Rust at the PAC: Creating Hardware Abstractions](https://apollolabsblog.hashnode.dev/stm32f4-embedded-rust-at-the-pac-creating-hardware-abstractions)
67+
* [STM32F4 Embedded Rust at the PAC: GPIO Interrupts](https://apollolabsblog.hashnode.dev/stm32f4-embedded-rust-at-the-pac-gpio-interrupts)
68+
* [video] [Setting up CI and property testing for a Rust crate](https://www.youtube.com/watch?v=xUH-4y92jPg)
69+
* [Build your own Counting Bloom Filter](https://www.arunma.com/2023/03/19/build-your-own-counting-bloom-filter-in-rust/)
4270

4371
### Research
72+
* [Verus: Verifying Rust Programs using Linear Ghost Types](https://arxiv.org/abs/2303.05491)
73+
* [Ownership guided C to Rust translation](https://arxiv.org/abs/2303.10515)
74+
* [Optimizing a parser/compiler with data-oriented design: a case study](https://tweedegolf.nl/en/blog/88/data-oriented-design)
4475

4576
### Miscellaneous
77+
* [Bringing Rust to the Xen Project](https://xcp-ng.org/blog/2023/03/17/bringing-rust-to-the-xen-project/)
78+
* [The birth of a package manager [written in Rust ;)]](https://ochagavia.nl/blog/the-birth-of-a-package-manager/)
4679

4780
## Crate of the Week
4881

49-
<!-- COTW goes here -->
82+
This week's crate is [Speedy2D](https://github.com/QuantumBadger/Speedy2D), a crate offering cross-platform Hardware-accelerated drawing of shapes, images, and text, with an easy to use API.
83+
84+
Thanks to [Aleksey Kladov](https://users.rust-lang.org/t/crate-of-the-week/2704/1169) for the suggestion!
5085

5186
[Please submit your suggestions and votes for next week][submit_crate]!
5287

@@ -59,29 +94,111 @@ Every week we highlight some tasks from the Rust community for you to pick and g
5994

6095
Some of these tasks may also have mentors available, visit the task page for more information.
6196

62-
<!-- CFPs go here, use this format: * [project name - title of issue](link to issue) -->
63-
<!-- * [ - ]() -->
97+
* [racoon - Open Source IAM call for contributors](https://github.com/opeolluwa/racoon)
98+
* [Ockam - create clap command to show the details of a secure-channel listener on a node](https://github.com/build-trust/ockam/issues/4439)
99+
* [Ockam - create clap command to delete an existing Forwarder on a node](https://github.com/build-trust/ockam/issues/4437)
100+
* [Ockam - ockam run - a single command to run many ockam “create” commands](https://github.com/build-trust/ockam/issues/4479)
64101

65102
If you are a Rust project owner and are looking for contributors, please submit tasks [here][guidelines].
66103

67104
[guidelines]: https://users.rust-lang.org/t/twir-call-for-participation/4821
68105

69106
## Updates from the Rust Project
70107

71-
<!-- Rust updates go here -->
108+
321 pull requests were [merged in the last week][merged]
109+
110+
[merged]: https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-03-13..2023-03-20
111+
112+
* [`inherit_overflow`: adapt pattern to also work with v0 mangling](https://github.com/rust-lang/rust/pull/109181)
113+
* [`read_buf_exact`: on error, all read bytes are appended to the buffer](https://github.com/rust-lang/rust/pull/109022)
114+
* [add `enable-warnings` flag for llvm, and disable it by default](https://github.com/rust-lang/rust/pull/108991)
115+
* [add `useless_anonymous_reexport` lint](https://github.com/rust-lang/rust/pull/109003)
116+
* [add note for mismatched types because of circular dependencies](https://github.com/rust-lang/rust/pull/105793)
117+
* [do not ICE for unexpected lifetime with ConstGeneric rib](https://github.com/rust-lang/rust/pull/109222)
118+
* [don't ICE for late-bound consts across `AnonConstBoundary`](https://github.com/rust-lang/rust/pull/109105)
119+
* [don't suggest similar method when unstable](https://github.com/rust-lang/rust/pull/109212)
120+
* [fix ICE in `custom-test-frameworks` feature](https://github.com/rust-lang/rust/pull/109301)
121+
* [fix ClashingExternDeclarations lint ICE](https://github.com/rust-lang/rust/pull/109370)
122+
* [emit diagnostic when calling methods on the unit type in method chains](https://github.com/rust-lang/rust/pull/109116)
123+
* [ensure `ptr::read` gets all the same LLVM `load` metadata that dereferencing does](https://github.com/rust-lang/rust/pull/109035)
124+
* [erase escaping late-bound regions when probing for ambiguous associated types](https://github.com/rust-lang/rust/pull/109102)
125+
* [error-msg: expand suggestion for `unused_def` lint](https://github.com/rust-lang/rust/pull/109158)
126+
* [error-msg: impl better suggestion for `E0532`](https://github.com/rust-lang/rust/pull/108971)
127+
* [fall back to old metadata computation when type references errors](https://github.com/rust-lang/rust/pull/109101)
128+
* [fast path for `process_obligations`](https://github.com/rust-lang/rust/pull/108815)
129+
* [fix `generics_of` for impl's RPITIT (Return Position Impl Trait In Trait) synthesized associated type](https://github.com/rust-lang/rust/pull/109277)
130+
* [fix generics mismatch errors for RPITITs on -Zlower-impl-trait-in-trait-to-assoc-ty](https://github.com/rust-lang/rust/pull/109238)
131+
* [install projection from RPITIT to default trait method opaque correctly](https://github.com/rust-lang/rust/pull/109198)
132+
* [make fns from other crates with RPITIT work for `-Zlower-impl-trait-in-trait-to-assoc-ty`](https://github.com/rust-lang/rust/pull/108923)
133+
* [fix object safety checks for new RPITITs](https://github.com/rust-lang/rust/pull/108909)
134+
* [fix linker detection for clang with prefix](https://github.com/rust-lang/rust/pull/109156)
135+
* [flatten/inline `format_args!()` and (string and int) literal arguments into `format_args!()`](https://github.com/rust-lang/rust/pull/106824)
136+
* [implement `FixedSizeEncoding` for `UnusedGenericParams`](https://github.com/rust-lang/rust/pull/109324)
137+
* [implement checked `Shl`/`Shr` at MIR building](https://github.com/rust-lang/rust/pull/108282)
138+
* [only expect a GAT const param for `type_of` of GAT const arg](https://github.com/rust-lang/rust/pull/109364)
139+
* [pass the right HIR back from `get_fn_decl`](https://github.com/rust-lang/rust/pull/109248)
140+
* [remove `identity_future` indirection](https://github.com/rust-lang/rust/pull/104833)
141+
* [remove box expressions from HIR](https://github.com/rust-lang/rust/pull/108958)
142+
* [replace ZST operands and debuginfo by constants](https://github.com/rust-lang/rust/pull/107270)
143+
* [simplify proc macro signature validity check](https://github.com/rust-lang/rust/pull/109136)
144+
* [some cleanups in our normalization logic](https://github.com/rust-lang/rust/pull/109171)
145+
* [suggest surrounding the macro with `{}` to interpret as a statement](https://github.com/rust-lang/rust/pull/109251)
146+
* [use `unused_generic_params` from crate metadata](https://github.com/rust-lang/rust/pull/109109)
147+
* [miri: move reject with isolation logic in fcntl](https://github.com/rust-lang/miri/pull/2787)
148+
* [miri: tree borrows](https://github.com/rust-lang/miri/pull/2785)
149+
* [properly allow macro expanded `format_args` invocations to use captures](https://github.com/rust-lang/rust/pull/106505)
150+
* [optimize dep node backtrace and ignore fatal errors](https://github.com/rust-lang/rust/pull/108524)
151+
* [fallback to lstat when stat fails on Windows](https://github.com/rust-lang/rust/pull/109235)
152+
* [stabilise `unix_socket_abstract`](https://github.com/rust-lang/rust/pull/109288)
153+
* [stabilize `atomic_as_ptr`](https://github.com/rust-lang/rust/pull/108419)
154+
* [use index based drop loop for slices and arrays](https://github.com/rust-lang/rust/pull/109085)
155+
* [allow using `Range` as an `Iterator` in const contexts](https://github.com/rust-lang/rust/pull/104100)
156+
* [cargo: accurately show status when downgrading dependencies](https://github.com/rust-lang/cargo/pull/11839)
157+
* [cargo: add `--ignore-rust-version` flag to cargo install](https://github.com/rust-lang/cargo/pull/11859)
158+
* [cargo: add more information to wait-for-publish](https://github.com/rust-lang/cargo/pull/11713)
159+
* [cargo: align semantics of generated vcs ignore files](https://github.com/rust-lang/cargo/pull/11855)
160+
* [cargo: handle case mismatches when looking up env vars in the Config snapshot](https://github.com/rust-lang/cargo/pull/11824)
161+
* [rustdoc: correctly merge import's and its target's docs in one more case](https://github.com/rust-lang/rust/pull/109266)
162+
* [rustdoc: docFS: replace rayon with threadpool and enable it for all targets](https://github.com/rust-lang/rust/pull/109139)
163+
* [rustdoc: implement bag semantics for function parameter search](https://github.com/rust-lang/rust/pull/109331)
164+
* [clippy: add `allow_attribute` lint](https://github.com/rust-lang/rust-clippy/pull/10481)
165+
* [clippy: new lint to detect `&std::path::MAIN_SEPARATOR.to_string()`](https://github.com/rust-lang/rust-clippy/pull/10483)
166+
* [clippy: enhance `ifs_same_cond` to warn same immutable method calls as well](https://github.com/rust-lang/rust-clippy/pull/10350)
167+
* [clippy: fix `almost_swapped` false positive (`let mut a = b; a = a`)](https://github.com/rust-lang/rust-clippy/pull/10499)
168+
* [clippy: fix `almost_swapped`: Ignore external macros](https://github.com/rust-lang/rust-clippy/pull/10502)
169+
* [clippy: issue function modifiers in the right order in `manual_async_fn` lint](https://github.com/rust-lang/rust-clippy/pull/10456)
170+
* [rust-analyzer: add an autofix for inserting an unsafe block to missing unsafe diagnostic](https://github.com/rust-lang/rust-analyzer/pull/14281)
171+
* [rust-analyzer: prioritize missing variants in match pattern completions](https://github.com/rust-lang/rust-analyzer/pull/13789)
172+
* [rust-analyzer: allow the status bar item to be clicked again](https://github.com/rust-lang/rust-analyzer/pull/14337)
173+
* [rust-analyzer: fix reference completions being emitted in places other than argument lists](https://github.com/rust-lang/rust-analyzer/pull/14355)
174+
* [rust-analyzer: fix rustc proc-macro handling being broken on the rustc workspace itself](https://github.com/rust-lang/rust-analyzer/pull/14348)
175+
* [rust-analyzer: fix visibility resolution not respecting parent blocks](https://github.com/rust-lang/rust-analyzer/pull/14349)
176+
* [rust-analyzer: only skip adjustment hints for block, if and match expressions for reborrows](https://github.com/rust-lang/rust-analyzer/pull/14338)
177+
* [rust-analyzer: lint incoherent inherent impls](https://github.com/rust-lang/rust-analyzer/pull/13994)
72178

73179
### Rust Compiler Performance Triage
74180

75-
<!-- Perf results go here -->
181+
A mixed week, with some nice wins, but also at least two PR's that were
182+
subsequently reverted, such as the upgrade to LLVM 16. We do want to
183+
note PR [#108944][], which cut down on crate metadata, binary sizes, and
184+
was an overall win on execution time for many benchmarks.
185+
186+
[#108944]: https://github.com/rust-lang/rust/pull/108944
187+
188+
Triage done by **@pnkfelix**.
189+
Revision range: [00587489..ef03fda3](https://perf.rust-lang.org/?start=0058748944abb3282aba0e0a74823c6411703565&end=ef03fda339923e659d3d3ca3321de887316d2807&absolute=false&stat=instructions%3Au)
190+
191+
1 Regressions, 4 Improvements, 11 Mixed; 2 of them in rollups
192+
37 artifact comparisons made in total
193+
194+
[Full report here](https://github.com/rust-lang/rustc-perf/blob/master/triage/2022-03-21.md)
76195

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

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

82-
<!-- Approved RFCs go here, use this format: * [Topic](URL) -->
83-
<!-- or if none were approved this week, use: * *No RFCs were approved this week.* -->
84-
<!-- * []() -->
201+
* *No RFCs were approved this week.*
85202

86203
### Final Comment Period
87204

@@ -90,34 +207,24 @@ which are reaching a decision. Express your opinions now.
90207

91208
#### [RFCs](https://github.com/rust-lang/rfcs/labels/final-comment-period)
92209

93-
<!-- RFCs which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
94-
<!-- or if none entered FCP this week, use: * *No RFCs entered Final Comment Period this week.* -->
95-
<!-- * [disposition: ] []() -->
210+
* [disposition: merge] [RFC: result_ffi_guarantees](https://github.com/rust-lang/rfcs/pull/3391)
96211

97212
#### [Tracking Issues & PRs](https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc)
98-
99-
<!-- Tracking Issues which have entered FCP go here, use this format: * [disposition: merge|close] [Topic](URL) -->
100-
<!-- or if none entered FCP this week, use: * *No Tracking Issues or PRs entered Final Comment Period this week.* -->
101-
<!-- * [disposition: ] []() -->
213+
* [disposition: merge] [Initial support for return type notation (RTN)](https://github.com/rust-lang/rust/pull/109010)
214+
* [disposition: merge] [rustdoc: add support for type filters in arguments and generics](https://github.com/rust-lang/rust/pull/108629)
215+
* [disposition: merge] [rustdoc: run more HIR validation to mirror rustc](https://github.com/rust-lang/rust/pull/108576)
216+
* [disposition: merge] [Add a builtin FnPtr trait that is implemented for all function pointers](https://github.com/rust-lang/rust/pull/108080)
217+
* [disposition: merge] [Clarify stability guarantee for lifetimes in enum discriminants](https://github.com/rust-lang/rust/pull/104299)
102218

103219
### [New and Updated RFCs](https://github.com/rust-lang/rfcs/pulls)
104-
105-
<!-- New or updated RFCs go here, use this format: * [new|updated] [Topic](URL) -->
106-
<!-- or if there are no new or updated RFCs this week, use: * *No New or Updated RFCs were created this week.* -->
107-
<!-- * [new|updated] []() -->
220+
* *No New or Updated RFCs were created this week.*
108221

109222
### [Call for Testing](https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing)
110223
An important step for RFC implementation is for people to experiment with the
111224
implementation and give feedback, especially before stabilization. The following
112225
RFCs would benefit from user testing before moving forward:
113226

114-
<!-- Calls for Testing go here, use this format:
115-
* [<RFC Topic>](<RFC URL>)
116-
* [Tracking Issue](<Tracking Issue URL>)
117-
* [Testing steps](<Testing Steps URL>)
118-
-->
119-
<!-- or if there are no new or updated RFCs this week, use: * *No New or Updated RFCs were created this week.* -->
120-
<!-- Remember to remove the `call-for-testing` label from the RFC so that the maintainer can signal for testers again, if desired. -->
227+
* *No RFCs issued a call for testing this week.*
121228

122229
If you are a feature implementer and would like your RFC to appear on the above list, add the new `call-for-testing`
123230
label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature
@@ -201,7 +308,11 @@ Please see the latest [Who's Hiring thread on r/rust](INSERT_LINK_HERE)
201308

202309
# Quote of the Week
203310

204-
<!-- QOTW goes here -->
311+
> The generated program is a random sequence of bytes that just happens to take the shape of a seemingly working program by accident. Such is the joy of code that causes UB. You cannot deduce anything from what happens when you execute a program with UB, since that act is by itself meaningless. You need to establish that your program has no UB before making any inference based on what you see the program do after it came out of the compiler.
312+
313+
[Ralf Jung on github](https://github.com/rust-lang/miri/issues/2807#issuecomment-1462385947)
314+
315+
Thanks to [bugaevc](https://users.rust-lang.org/t/twir-quote-of-the-week/328/1381) for the suggestion!
205316

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

tools/inspect_links.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import os
1414
import re
1515
import sys
16-
import urllib
16+
import urllib.parse
1717

1818
LOG = logging.getLogger(__name__)
1919
LOG.setLevel(logging.INFO)

0 commit comments

Comments
 (0)