Rust <h2>Official Resources</h2> <ul> <li><a href="https://www.rust-lang.org" rel="noopener noreferrer">Official Website</a></li> <li><a href="https://blog.rust-lang.org/" rel="noopener noreferrer">Official Blog</a></li> <li><a href="https://this-week-in-rust.org/" rel="noopener noreferrer">This Week In Rust</a></li> <li><a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer">Installers</a></li> <li><a href="https://github.com/rust-lang/" rel="noopener noreferrer">Source Code</a></li> <li><a href="https://github.com/rust-lang/rust/issues" rel="noopener noreferrer">Bug Tracker</a></li> </ul> http://127.0.0.1:3001/inn/2 2023-09-25T00:00:00+00:00 Increasing the minimum supported Apple platform versions freedit 2023-09-25 2023-09-25 148 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/09/25/Increasing-Apple-Version-Requirements.html">Increasing the minimum supported Apple platform versions</a> </div> </article> <p>As of Rust 1.74 (to be released on November 16th, 2023), the minimum version of Apple's platforms (iOS, macOS, and tvOS) that the Rust toolchain supports will be <a href="https://github.com/rust-lang/rust/pull/104385" rel="noopener noreferrer">increased</a> to newer minimums. These changes affect both the Rust compiler itself (<code>rustc</code>), other host tooling, and most importantly, the standard library and any binaries produced that use it. With these changes in place, any binaries produced will stop loading on older versions or exhibit other, unspecified, behavior.</p> <p>The new minimum versions are now:</p> <ul> <li>macOS: 10.12 Sierra (First released 2016)</li> <li>iOS: 10 (First released 2016)</li> <li>tvOS: 10 (First released 2016)</li> </ul> <p>If your application does not target or support macOS 10.7-10.11 or iOS 7-9 already these changes most likely do not affect you.</p> <h1><a href="#affected-targets" rel="noopener noreferrer"></a>Affected targets</h1> <p>The following contains each affected target, and the comprehensive effects on it:</p> <ul> <li><code>x86_64-apple-darwin</code> (Minimum OS raised)</li> <li><code>aarch64-apple-ios</code> (Minimum OS raised)</li> <li><code>aarch64-apple-ios-sim</code> (Minimum iOS <em>and macOS</em> version raised.)</li> <li><code>x86_64-apple-ios</code> (Minimum iOS <em>and macOS</em> version raised. This is also a simulator target.)</li> <li><code>aarch64-apple-tvos</code> (Minimum OS raised)</li> <li><code>armv7-apple-ios</code> (Target removed. The oldest iOS 10-compatible device uses ARMv7s.)</li> <li><code>armv7s-apple-ios</code> (Minimum OS raised)</li> <li><code>i386-apple-ios</code> (Minimum OS raised)</li> <li><code>i686-apple-darwin</code> (Minimum OS raised)</li> <li><code>x86_64-apple-tvos</code> (Minimum tvOS <em>and macOS</em> version raised. This is also a simulator target.)</li> </ul> <p>From these changes, only one target has been removed entirely: <code>armv7-apple-ios</code>. It was a tier 3 target.</p> <p>Note that Mac Catalyst and M1/M2 (<code>aarch64</code>) Mac targets are not affected, as their minimum OS version already has a higher baseline. Refer to the <a href="https://doc.rust-lang.org/nightly/rustc/platform-support.html" rel="noopener noreferrer">Platform Support Guide</a> for more information.</p> <h1><a href="#affected-systems" rel="noopener noreferrer"></a>Affected systems</h1> <p>These changes remove support for multiple older mobile devices (iDevices) and many more Mac systems. Thanks to <code>@madsmtm</code> for <a href="https://github.com/rust-lang/rust/pull/104385#issuecomment-1317830217" rel="noopener noreferrer">compiling the list</a>.</p> <p>As of this update, the following device models are no longer supported by the latest Rust toolchain:</p> <h3><a href="#ios" rel="noopener noreferrer"></a>iOS</h3> <ul> <li>iPhone 4S (Released in 2011)</li> <li>iPad 2 (Released in 2011)</li> <li>iPad, 3rd generation (Released in 2012)</li> <li>iPad Mini, 1st generation (Released in 2012)</li> <li>iPod Touch, 5th generation (Released in 2012)</li> </ul> <h3><a href="#macos" rel="noopener noreferrer"></a>macOS</h3> <p>A total of 27 Mac system models, released between 2007 and 2009, are no longer supported.</p> <p>The affected systems are not comprehensively listed here, but external resources exist which contain lists of the exact models. They can be found <a href="https://support.apple.com/kb/SP742?locale=en_US" rel="noopener noreferrer">from Apple</a> and <a href="https://yama-mac.com/en/macos_correspondence_table/#toc4" rel="noopener noreferrer">Yama-Mac</a>, for example.</p> <h3><a href="#tvos" rel="noopener noreferrer"></a>tvOS</h3> <p>The third generation AppleTV (released 2012-2013) is no longer supported.</p> <h1><a href="#why-are-the-requirements-being-changed" rel="noopener noreferrer"></a>Why are the requirements being changed?</h1> <p>Prior to now, Rust claimed support for very old Apple OS versions, but many never even received passive testing or support. This is a rough place to be for a toolchain, as it hinders opportunities for improvement in exchange for a support level many people, or everyone, will never utilize. For Apple's mobile platforms, many of the old versions are now even unable to receive new software due to App Store publishing restrictions.</p> <p>Additionally, the past two years have clearly indicated that Apple, which has tight control over toolchains for these targets, is making it difficult-to-impossible to support them anymore. As of XCode 14, last year's toolchain release, building for many old OS versions <a href="https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes" rel="noopener noreferrer">became unsupported</a>. XCode 15 continues this trend. After enough time, continuing to use an older toolchain can even lead to breaking build issues for others.</p> <p>We want Rust to be a first-class option for developing software for and on Apple's platforms, but to continue this goal we have to set an easier, and more realistic compatibility baseline. The new requirements were determined after surveying what Apple and third-party statistics are available to us and picking a middle ground that balances compatibility with Rusts's needs and limitations.</p> <h1><a href="#do-i-need-to-do-anything" rel="noopener noreferrer"></a>Do I need to do anything?</h1> <p>If you or an application you develop are affected by this change, there are different options which may be helpful:</p> <ul> <li>If possible, raise your minimum supported OS versions. All OS versions discussed in above have no support from the vendor. Not even security updates.</li> <li>If you are running the Rust compiler or other host tools that were previously supported, consider cross-compiling from a newer host instead. You may also no longer be able to depend on the Rust standard library.</li> <li>If none of these options work, you may need to freeze the version of the Rust toolchain your project builds with. Alternatively, you may be able to maintain a custom toolchain that supports your requirements for any sub-component of it.</li> </ul> <p>If your project does not directly support a specific version, but instead depends on a default previously used by Rust, there are some steps you can take to help improve. For example, a number of crates in the ecosystem have hardcoded Rust's default support versions since they haven't changed for a long time:</p> <ul> <li>If you use the <code>cc</code> crate to include build languages into your project, a <a href="https://github.com/rust-lang/cc-rs/pull/848" rel="noopener noreferrer">future update</a> will handle this transparently.</li> <li>If you need a minimum OS version for anything else, crates should query the new <code>rustc --print deployment-target</code> option for a default, or user-set, value on toolchains using Rust 1.71 or newer going forward. Hardcoded defaults should only be used for older toolchains where this is unavailable.</li> </ul> crates.io Policy Update RFC freedit 2023-09-22 2023-09-22 146 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/09/22/crates-io-usage-policy-rfc.html">crates.io Policy Update RFC</a> </div> </article> <p>Around the end of July the crates.io team opened an <a href="https://github.com/rust-lang/rfcs/pull/3463" rel="noopener noreferrer">RFC</a> to update the current crates.io usage policies. This policy update addresses operational concerns of the crates.io community service that have arisen since the last significant policy update in 2017, particularly related to name squatting and spam. The RFC has caused considerable discussion, and most of the suggested improvements have since been integrated into the proposal.</p> <p>At the last team meeting the crates.io team decided to move the RFC forward and start the <strong>final comment period</strong> process.</p> <p>We have been made aware by a couple of community members though that the RFC might not have been visible enough in the Rust community. We hope that this blog post changes that.</p> <p>We invite you all to review the RFC and let us know if there are still any major concerns with these proposed policies.</p> <p>Here is a quick <strong>TL;DR</strong>:</p> <ul> <li>The current policies are quite vague on a couple of topics. The new policies are more explicit.</li> <li>Reserving names is still allowed, but only to a certain degree and if you have a good reason for it.</li> <li>The crates.io team will try to contact crate owners before taking any actions.</li> </ul> <p>Finally, if you have any comments, please open threads on the <a href="https://github.com/rust-lang/rfcs/pull/3463/files" rel="noopener noreferrer">RFC diff</a>, instead of using the main comment box, to keep the discussion more structured. Thank you!</p> This Week in Rust 513 freedit 2023-09-20 2023-09-20 143 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/09/20/this-week-in-rust-513/">This Week in Rust 513</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/09/19/Rust-1.72.1.html" rel="noopener noreferrer">Announcing Rust 1.72.1</a></li> </ul> <h3><a href="#foundation" rel="noopener noreferrer">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/announcing-the-rust-foundation-s-associate-membership-with-openssf/" rel="noopener noreferrer">Announcing the Rust Foundation’s Associate Membership with OpenSSF</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://servo.org/blog/2023/09/15/upcoming-events-and-new-browser-ui/" rel="noopener noreferrer">This month in Servo: upcoming events, new browser UI, and more!</a></li> <li><a href="https://github.com/CloudCannon/pagefind/releases/tag/v1.0.0" rel="noopener noreferrer">Pagefind v1.0.0 — Stable static search at scale</a></li> <li><a href="https://grafbase.com/blog/open-sourcing-the-grafbase-engine" rel="noopener noreferrer">Open sourcing the Grafbase Engine</a></li> <li><a href="https://www.arroyo.dev/blog/arroyo-0-6-0" rel="noopener noreferrer">Announcing Arroyo 0.6.0</a></li> <li><a href="https://rust-analyzer.github.io/thisweek/2023/09/18/changelog-199.html" rel="noopener noreferrer">rust-analyzer changelog #199</a></li> <li><a href="https://github.com/bytebeamio/rumqtt/releases/tag/rumqttd-0.18.0" rel="noopener noreferrer">rumqttd 0.18.0</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://smallcultfollowing.com/babysteps/blog/2023/09/18/stability-without-stressing-the-out/" rel="noopener noreferrer">Stability without stressing the !@#! out</a></li> <li><a href="https://corrode.dev/blog/async/" rel="noopener noreferrer">The State of Async Rust</a></li> <li><a href="https://about.xethub.com/blog/nfs-fuse-why-we-built-nfs-server-rust" rel="noopener noreferrer">NFS &gt; FUSE: Why We Built our own NFS Server in Rust</a></li> <li><a href="https://medium.com/@otukof/breaking-tradition-why-rust-might-be-your-best-first-language-d10afc482ac1" rel="noopener noreferrer">Breaking Tradition: Why Rust Might Be Your Best First Language</a></li> <li><a href="https://apollolabsblog.hashnode.dev/the-embedded-rust-esp-development-ecosystem" rel="noopener noreferrer">The Embedded Rust ESP Development Ecosystem</a></li> <li><a href="http://www.williballenthin.com/post/sifting-through-crates.io-for-malware-with-ossf-package-analysis/" rel="noopener noreferrer">Sifting through crates.io for malware with OSSF Package Analysis</a></li> <li><a href="https://swatinem.de/blog/optimized-strings/" rel="noopener noreferrer">Choosing a more optimal <code>String</code> type</a></li> <li><a href="https://without.boats/blog/changing-the-rules-of-rust/" rel="noopener noreferrer">Changing the rules of Rust</a></li> <li><a href="https://without.boats/blog/follow-up-to-changing-the-rules-of-rust/" rel="noopener noreferrer">Follow up to "Changing the rules of Rust"</a></li> <li><a href="https://alic.dev/blog/dense-enums" rel="noopener noreferrer">When Zig Outshines Rust - Memory Efficient Enum Arrays</a></li> <li><a href="https://trent.kiwi/bevy-three-years" rel="noopener noreferrer">Three years of Bevy</a></li> <li><a href="https://kerkour.com/should-i-rust-or-should-i-go" rel="noopener noreferrer">Should I Rust or should I go?</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/rust-1.68-1.69/" rel="noopener noreferrer">What's New in Rust 1.68 and 1.69</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/joel-marcey-pitching-rust/" rel="noopener noreferrer">Pitching Rust to decision-makers, with Joel Marcey</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://peterprototypes.com/blog/huggingface-from-rust/" rel="noopener noreferrer">🤗 Calling Hugging Face models from Rust</a></li> <li><a href="https://reemus.dev/tldr/rust-cross-compilation-github-actions" rel="noopener noreferrer">Rust Cross-Compilation With GitHub Actions</a></li> <li><a href="https://developerlife.com/2023/09/17/tuify-clap/" rel="noopener noreferrer">tuify your clap CLI apps and make them more interactive</a></li> <li><a href="https://tech.marksblogg.com/clickhouse-gis-rust.html" rel="noopener noreferrer">Enhancing ClickHouse's Geospatial Support</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=CpvzeyzgQdw" rel="noopener noreferrer">All Rust string types explained</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://blog.brownplt.org/2023/09/17/rust-ownership.html" rel="noopener noreferrer">A Grounded Conceptual Model for Ownership Types in Rust</a></li> <li><a href="https://arxiv.org/abs/2309.05137" rel="noopener noreferrer">Debugging Trait Errors as Logic Programs</a></li> <li><a href="https://arxiv.org/abs/2309.06640" rel="noopener noreferrer">REVIS: An Error Visualization Tool for Rust</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://chillfish8.ghost.io/jetbrains-youre-scaring-me/" rel="noopener noreferrer">JetBrains, You're scaring me. The Rust plugin deprecation situation.</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/avhz/RustQuant" rel="noopener noreferrer">RustQuant</a>, a crate for quantitative finance.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1238" rel="noopener noreferrer">avhz</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/133" rel="noopener noreferrer">r3bl_rs_utils - [tuify] Use nice ANSI symbols instead of "&gt;" to decorate what row is currently selected</a></li> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/120" rel="noopener noreferrer">r3bl_rs_utils - [all] Use nu shell scripts (not just or fish) and add Github Actions to build &amp; test on mac &amp; linux</a></li> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/118" rel="noopener noreferrer">r3bl_rs_utils - [tuify] Use offscreen buffer from r3bl_tui to make repaints smooth</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5977" rel="noopener noreferrer">Ockam - make building of&nbsp;<code>ockam_app</code>&nbsp;create behind a feature flag</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5904" rel="noopener noreferrer">Ockam - Use the Terminal to print out RPC response instead of printlns</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1357" rel="noopener noreferrer">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/888" rel="noopener noreferrer">Hyperswitch - separate payments_session from payments core</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/917" rel="noopener noreferrer">Hyperswitch - move redis key creation to a common module</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>342 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-09-11..2023-09-18" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/114452" rel="noopener noreferrer"><code>#[diagnostic::on_unimplemented]</code> without filters</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115334" rel="noopener noreferrer"><code>repr(transparent)</code>: it's fine if the one non-1-ZST field is a ZST</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110800" rel="noopener noreferrer">accept additional user-defined syntax classes in fenced code blocks</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115793" rel="noopener noreferrer">add <code>explicit_predicates_of</code> to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115687" rel="noopener noreferrer">add <code>i686-pc-windows-gnullvm</code> triple</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115611" rel="noopener noreferrer">add diagnostic for raw identifiers in format string</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115765" rel="noopener noreferrer">add source type for invalid bool casts</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115740" rel="noopener noreferrer">cache <code>reachable_set</code> on disk</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115850" rel="noopener noreferrer">canonicalize effect vars in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112038" rel="noopener noreferrer">change <code>unsafe_op_in_unsafe_fn</code> to be <code>warn</code>-by-default from edition 2024</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115315" rel="noopener noreferrer">closure field capturing: don't depend on alignment of packed fields</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115804" rel="noopener noreferrer">consistently pass <code>ty::Const</code> through valtrees</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115867" rel="noopener noreferrer">coverage: simplify internal representation of debug types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115816" rel="noopener noreferrer">disabled socketpair for Vita</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115860" rel="noopener noreferrer">enable varargs support for AAPCS calling convention</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115735" rel="noopener noreferrer">extend rustc -Zls</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115859" rel="noopener noreferrer">fallback effects even if types also fallback</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115329" rel="noopener noreferrer">fix <code>std::primitive</code> doc: homogenous → homogeneous</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115832" rel="noopener noreferrer">fix the error message for <code>#![feature(no_coverage)]</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115815" rel="noopener noreferrer">fix: return early when has tainted in mir pass</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115772" rel="noopener noreferrer">improve Span in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115782" rel="noopener noreferrer">improve <code>PadAdapter::write_char</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115677" rel="noopener noreferrer">improve invalid let expression handling</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115838" rel="noopener noreferrer">inspect: closer to proof trees for coherence</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115871" rel="noopener noreferrer">llvm-wrapper: adapt for LLVM API changes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114750" rel="noopener noreferrer">make <code>.rmeta</code> file in <code>dep-info</code> have correct name (<code>lib</code> prefix)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115884" rel="noopener noreferrer">make <code>ty::Const</code> debug printing less verbose</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114494" rel="noopener noreferrer">make <code>useless_ptr_null_checks</code> smarter about some std functions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115748" rel="noopener noreferrer">move <code>required_consts</code> check to general post-mono-check function</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115785" rel="noopener noreferrer">only suggest turbofish in patterns if we may recover</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115834" rel="noopener noreferrer">properly consider binder vars in <code>HasTypeFlagsVisitor</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115705" rel="noopener noreferrer">read from non-scalar constants and statics in dataflow const-prop</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115736" rel="noopener noreferrer">remove <code>verbose_generic_activity_with_arg</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115215" rel="noopener noreferrer">remove assert that checks type equality</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115269" rel="noopener noreferrer">resolve: mark binding is determined after all macros had been expanded</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114656" rel="noopener noreferrer">rework <code>no_coverage</code> to <code>coverage(off)</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/108043" rel="noopener noreferrer">small wins for formatting-related code</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115764" rel="noopener noreferrer">some ConstValue refactoring</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115751" rel="noopener noreferrer">some inspect improvements</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115817" rel="noopener noreferrer">treat host effect params as erased in codegen</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115914" rel="noopener noreferrer">turn custom code classes in docs into warning</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115825" rel="noopener noreferrer">visit <code>ExprField</code> for lint levels</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115733" rel="noopener noreferrer">store a index per dep node kind</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115477" rel="noopener noreferrer">stabilize the <code>Saturating</code> type</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115520" rel="noopener noreferrer">stabilize <code>const_transmute_copy</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115434" rel="noopener noreferrer">make <code>Debug</code> impl for <code>ascii::Char</code> match that of <code>char</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/109409" rel="noopener noreferrer">add <code>minmax{,_by,_by_key}</code> functions to <code>core::cmp</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112229" rel="noopener noreferrer">specialize count for range iterators</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113748" rel="noopener noreferrer">impl <code>Step</code> for IP addresses</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113753" rel="noopener noreferrer">add implementation for <code>thread::sleep_until</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12660" rel="noopener noreferrer">cargo: cli: Add '-n' to dry-run</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12614" rel="noopener noreferrer">cargo: pkgid: Allow incomplete versions when unambigious</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12680" rel="noopener noreferrer">cargo: doc: differentiate defaults for split-debuginfo</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12649" rel="noopener noreferrer">cargo: stabilize credential-process and registry-auth</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12671" rel="noopener noreferrer">cargo: emit a warning for <code>credential-alias</code> shadowing</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12685" rel="noopener noreferrer">cargo: generalise suggestion on abiguous spec</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12662" rel="noopener noreferrer">cargo: limit cargo add feature print</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12659" rel="noopener noreferrer">cargo: prerelease candidates error message</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12655" rel="noopener noreferrer">cargo: consolidate clap/shell styles</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12677" rel="noopener noreferrer">cargo: use <code>RegistryOrIndex enum</code> to replace two booleans</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5908" rel="noopener noreferrer">rustfmt: Style help like cargo nightly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115851" rel="noopener noreferrer">clippy: ignore <code>#[doc(hidden)]</code> functions in clippy doc lints</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115689" rel="noopener noreferrer">clippy: reuse rustdoc's doc comment handling in Clippy</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11484" rel="noopener noreferrer">clippy: <code>extra_unused_type_parameters</code>: Fix edge case FP for parameters in where bounds</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11515" rel="noopener noreferrer">clippy: <code>filter_map_bool_then</code>: include multiple derefs from adjustments</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11452" rel="noopener noreferrer">clippy: <code>len_without_is_empty</code>: follow type alias to find inherent <code>is_empty</code> method</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11523" rel="noopener noreferrer">clippy: <code>used_underscore_bindings</code>: respect lint levels on the binding definition</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11301" rel="noopener noreferrer">clippy: <code>useless_conversion</code>: don't lint if type parameter has unsatisfiable bounds for <code>.into_iter()</code> receiver</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11509" rel="noopener noreferrer">clippy: fix FP of <code>let_unit_value</code> on async fn args</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11517" rel="noopener noreferrer">clippy: fix ICE by <code>u64::try_from(&lt;u128&gt;)</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11507" rel="noopener noreferrer">clippy: trigger <code>transmute_null_to_fn</code> on chain of casts</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11506" rel="noopener noreferrer">clippy: fix <code>filter_map_bool_then</code> with a bool reference</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11504" rel="noopener noreferrer">clippy: ignore closures for some type lints</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11473" rel="noopener noreferrer">clippy: ignore span's parents in <code>collect_ast_format_args</code>/<code>find_format_args</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11526" rel="noopener noreferrer">clippy: add <code>redundant_as_str</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11468" rel="noopener noreferrer">clippy: add extra <code>byref</code> checking for the guard's local</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11413" rel="noopener noreferrer">clippy: new <code>unnecessary_map_on_constructor</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11483" rel="noopener noreferrer">clippy: new lint: <code>path_ends_with_ext</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11511" rel="noopener noreferrer">clippy: split <code>needless_borrow</code> into two lints</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15597" rel="noopener noreferrer">rust-analyzer: field shorthand overwritten in promote local to const assist</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15625" rel="noopener noreferrer">rust-analyzer: don't skip closure captures after let-else</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15606" rel="noopener noreferrer">rust-analyzer: fix lens location <code>"above_whole_item"</code> breaking lenses</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15601" rel="noopener noreferrer">rust-analyzer: temporarily skip decl check in derive expansions</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15611" rel="noopener noreferrer">rust-analyzer: prefer stable paths over unstable ones in import path calculation</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A pretty quiet week, with relatively few statistically significant changes, though some good improvements to a number of benchmarks, particularly in cycle counts rather than instructions.</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=7e0261e7ea2085bdc0bc3d0fd6776bf343473858&amp;end=af78bae565e85b9c5698ee909af0652674eca6d4&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">7e0261e7ea..af78bae</a></p> <p>3 Regressions, 3 Improvements, 2 Mixed; 2 of them in rollups</p> <p>56 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-09-19.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/3349" rel="noopener noreferrer">RFC: Unicode and escape codes in literals</a></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113301" rel="noopener noreferrer">stabilize combining +bundle and +whole-archive link modifiers</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/115659" rel="noopener noreferrer">Stabilize <code>impl_trait_projections</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/108545" rel="noopener noreferrer">Tracking Issue for <code>option_as_slice</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114901" rel="noopener noreferrer">Amend style guide section for formatting where clauses in type aliases</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112380" rel="noopener noreferrer">Add allow-by-default lint for unit bindings</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3491" rel="noopener noreferrer">RFC: Remove implicit features in a new edition</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3490" rel="noopener noreferrer">RFC: const functions in traits</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-09-20 - 2023-10-18 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-09-20 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/295826608/" rel="noopener noreferrer"><strong>SurrealDB for Rustaceans</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/295057154/" rel="noopener noreferrer"><strong>Nightly Night: Generators</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295666673/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Cologne, DE) | <a href="https://www.meetup.com/aws-cologne/" rel="noopener noreferrer">Cologne AWS User Group #AWSUGCGN</a><ul> <li><a href="https://www.meetup.com/aws-cologne/events/294594401/" rel="noopener noreferrer"><strong>AWS User Group Cologne - September Edition: Stefan Willenbrock: Developer Preview: Discovering Rust on AWS</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/295363887/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 33rd Edition</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/295828383/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-09-25 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294908596/" rel="noopener noreferrer"><strong>How we built the SurrealDB Python client in Rust.</strong></a></li> </ul> </li> <li>2023-09-26 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679767/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a> | <a href="https://berline.rs/" rel="noopener noreferrer"><strong>Mirror</strong></a></li> </ul> </li> <li>2023-09-26 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallasrust/events/295942051/" rel="noopener noreferrer"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-09-26 | Virtual (Melbourne, VIC, AU) | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/296048213/" rel="noopener noreferrer"><strong>(Hybrid - online &amp; in person) September 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> <li>2023-10-03 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295919493/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-10-04 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfcnbgb/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-10-04 | Virtual (Various) | <a href="https://www.eventbrite.com/o/ferrous-systems-gmbh-68735392123" rel="noopener noreferrer">Ferrous Systems</a><ul> <li><a href="https://www.eventbrite.com/e/a-decade-of-rust-with-ferrous-systems-tickets-680492891557?aff=ebdssbdestsearch" rel="noopener noreferrer"><strong>A Decade of Rust with Ferrous Systems</strong></a></li> </ul> </li> <li>2023-10-05 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/296135640/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-10-07 | Virtual (Kampala, UG) | <a href="https://www.eventbrite.com/o/rust-circle-kampala-65249289033" rel="noopener noreferrer">Rust Circle Kampala</a><ul> <li><a href="https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763617907?aff=erelpanelorg" rel="noopener noreferrer"><strong>Rust Circle Meetup: Mentorship (First Saturday)</strong></a></li> </ul> </li> <li>2023-10-10 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679773/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a> | <a href="https://berline.rs/" rel="noopener noreferrer"><strong>Mirror</strong></a></li> </ul> </li> <li>2023-10-10 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallasrust/events/fvdtgtyfcnbnb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-10-11| Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/zvxcsryfcnbpb/" rel="noopener noreferrer"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-10-11 - 2023-10-13 | Virtual (Brussels, BE) | <a href="https://eurorust.eu" rel="noopener noreferrer">EuroRust</a><ul> <li><a href="https://eurorust.eu" rel="noopener noreferrer"><strong>EuroRust 2023</strong></a></li> </ul> </li> <li>2023-10-12 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732662/" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-10-18 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/295057159/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-09-25 | Singapore, SG | <a href="https://www.meetup.com/singapore-web3-blockchain-meetup/" rel="noopener noreferrer">Metacamp - Web3 Blockchain Community</a><ul> <li><a href="https://www.meetup.com/singapore-web3-blockchain-meetup/events/296156132/" rel="noopener noreferrer"><strong>Introduction to Rust</strong></a></li> </ul> </li> <li>2023-09-26 | Singapore, SG | <a href="https://www.meetup.com/rust-singapore/" rel="noopener noreferrer">Rust Singapore</a><ul> <li><a href="https://www.meetup.com/rust-singapore/events/295505646/" rel="noopener noreferrer"><strong>SG Rustaceans! Updated - Singapore First Rust Meetup!</strong></a></li> </ul> </li> <li>2023-10-03 | Taipei, TW | <a href="https://www.meetup.com/wasm-rust-meetup/" rel="noopener noreferrer">WebAssembly and Rust Meetup (Wasm Empowering AI)</a><ul> <li><a href="https://www.meetup.com/wasm-rust-meetup/events/295672575/" rel="noopener noreferrer"><strong>WebAssembly Meetup (Wasm Empowering AI) in Taipei</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-09-21 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/294031975/" rel="noopener noreferrer"><strong>Rust Aarhus - Rust and Talk at Concordium</strong></a></li> </ul> </li> <li>2023-09-21 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/" rel="noopener noreferrer">Rust Bern</a><ul> <li><a href="https://www.meetup.com/rust-bern/events/295503351/" rel="noopener noreferrer"><strong>Rust Bern Meetup #3 2023 🦀</strong></a></li> </ul> </li> <li>2023-09-28 | Berlin, DE | <a href="https://www.meetup.com/react-berlin-meetup/" rel="noopener noreferrer">React Berlin</a><ul> <li><a href="https://www.meetup.com/react-berlin-meetup/events/295382108/" rel="noopener noreferrer"><strong>React Berlin September Meetup: Creating Videos with React &amp; Remotion &amp; More: Integrating Rust with React Native – Gheorghe Pinzaru</strong></a></li> </ul> </li> <li>2023-09-28 | Madrid, ES | <a href="https://www.meetup.com/madrust/" rel="noopener noreferrer">MadRust</a><ul> <li><a href="https://www.meetup.com/madrust/events/296063394/" rel="noopener noreferrer"><strong>Primer evento Post COVID: ¡Cervezas MadRust!</strong></a></li> </ul> </li> <li>2023-09-28 | Paris, FR | <a href="https://www.meetup.com/paris-scala-user-group-psug/events/296025234/" rel="noopener noreferrer">Paris Scala User Group (PSUG)</a><ul> <li><a href="https://www.meetup.com/paris-scala-user-group-psug/events/296025234/" rel="noopener noreferrer"><strong>PSUG #114 Comparons Scala et Rust</strong></a></li> </ul> </li> <li>2023-09-30 | Saint Petersburg, RU | <a href="https://t.me/ruRust_spb" rel="noopener noreferrer">Rust Saint Petersburg meetups</a><ul> <li><a href="https://rurust-saint-petersburg-m.timepad.ru/event/2561864/" rel="noopener noreferrer"><strong>Rust Community Meetup: A tale about how I tried to make my Blitz Basic - Vitaly; How to use nix to build projects on Rust – Danil; Getting to know tower middleware. General overview – Mikhail</strong></a> </li> </ul> </li> <li>2023-10-10 | Berlin, DE | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679773/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-10-12 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/295955356/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-10-17 | Leipzig, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/" rel="noopener noreferrer">Rust - Modern Systems Programming in Leipzig</a><ul> <li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/295504251/" rel="noopener noreferrer"><strong>SIMD in Rust</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-09-21 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972877/" rel="noopener noreferrer"><strong>A Cargo Preview w/Ed Page, A Cargo Team Member</strong></a></li> </ul> </li> <li>2023-09-21 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295747006/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-09-21 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Music City Rust Developers</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/295587220/" rel="noopener noreferrer"><strong>Rust on the web! Get started with Leptos</strong></a></li> </ul> </li> <li>2023-09-26 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn" rel="noopener noreferrer">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295579189/" rel="noopener noreferrer"><strong>Rust: snacks &amp; learn</strong></a></li> </ul> </li> <li>2023-09-26 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/" rel="noopener noreferrer">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/295771515" rel="noopener noreferrer"><strong>Monthly Rust group</strong></a></li> </ul> </li> <li>2023-09-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295466314" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-09-28 | Boulder, CO, US | <a href="https://www.meetup.com/solidstatedepot/" rel="noopener noreferrer">Solid State Depot - The Boulder Makerspace</a><ul> <li><a href="https://www.meetup.com/solidstatedepot/events/295466122/" rel="noopener noreferrer"><strong>Rust and ROS for Robotics + Happy Hour</strong></a></li> </ul> </li> <li>2023-10-11 | Boulder, CO, US | <a href="https://www.meetup.com/boulder-rust-meetup/" rel="noopener noreferrer">Boulder Rust Meetup</a><ul> <li><a href="https://www.meetup.com/boulder-rust-meetup/events/296193722/" rel="noopener noreferrer"><strong>First Meetup - Demo Day and Office Hours</strong></a></li> </ul> </li> <li>2023-10-12 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/295771376/" rel="noopener noreferrer"><strong>The Actor Model: Fearless Concurrency, Made Easy w/Chris Mena</strong></a></li> </ul> </li> <li>2023-10-17 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfcnbwb/" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-09-26 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/" rel="noopener noreferrer">Rust Canberra</a><ul> <li><a href="https://www.meetup.com/rust-canberra/events/295432237/" rel="noopener noreferrer"><strong>September Meetup</strong></a></li> </ul> </li> <li>2023-09-26 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/296048213/" rel="noopener noreferrer"><strong>(Hybrid - online &amp; in person) September 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> <li>2023-09-28 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/" rel="noopener noreferrer">Rust Brisbane</a><ul> <li><a href="https://www.meetup.com/rust-brisbane/events/295946587/" rel="noopener noreferrer"><strong>September Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/163w6fl/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>This is the first programming language I've learned that makes it so easy to make test cases! It's actually a pleasure to implement them.</p> </blockquote> <p>– <a href="https://users.rust-lang.org/t/published-first-library-looking-for-feedback/99856/7" rel="noopener noreferrer">0xMB on rust-users</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1467" rel="noopener noreferrer">Moy2010</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="REDDIT_LINK_HERE" rel="noopener noreferrer">Discuss on r/rust</a></small></p> Announcing Rust 1.72.1 freedit 2023-09-19 2023-09-19 141 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/09/19/Rust-1.72.1.html">Announcing Rust 1.72.1</a> </div> </article> <p>The Rust team has published a new point release of Rust, 1.72.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.</p> <p>If you have a previous version of Rust installed via rustup, getting Rust 1.72.1 is as easy as:</p> <pre><code>rustup update stable </code></pre> <p>If you don't have it already, you can <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer">get <code>rustup</code></a> from the appropriate page on our website.</p> <h2><a href="#whats-in-1721" rel="noopener noreferrer"></a>What's in 1.72.1</h2> <p>1.72.1 resolves a few regressions introduced in 1.72.0:</p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/115236" rel="noopener noreferrer">Partially revert codegen change, improving codegen</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115276" rel="noopener noreferrer">rustdoc: Fix self ty params in objects with lifetimes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114948" rel="noopener noreferrer">Fix regression in compile times</a></li> <li>Resolve some ICEs in the compiler: <ul> <li><a href="https://github.com/rust-lang/rust/pull/115215" rel="noopener noreferrer">#115215</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115559" rel="noopener noreferrer">#115559</a></li> </ul> </li> </ul> <h3><a href="#contributors-to-1721" rel="noopener noreferrer"></a>Contributors to 1.72.1</h3> <p>Many people came together to create Rust 1.72.1. We couldn't have done it without all of you. <a href="https://thanks.rust-lang.org/rust/1.72.1/" rel="noopener noreferrer">Thanks!</a></p> This Week in Rust 512 freedit 2023-09-13 2023-09-13 136 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/09/13/this-week-in-rust-512/">This Week in Rust 512</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/inside-rust/2023/09/08/infra-team-leadership-change.html" rel="noopener noreferrer">Leadership change in the Rust Infrastructure Team</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://rust-osdev.com/this-month/2023-08/" rel="noopener noreferrer">This Month in Rust OSDev: August 2023</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/09/11/changelog-198.html" rel="noopener noreferrer">rust-analyzer changelog #198</a></li> <li><a href="https://www.reddit.com/r/rust/comments/16fxr58/meet_yazi_blazing_fast_terminal_file_manager/" rel="noopener noreferrer">Meet Yazi: Blazing fast terminal file manager, written in Rust, based on async I/O</a></li> <li><a href="https://thenewstack.io/candle-a-new-machine-learning-framework-for-rust/" rel="noopener noreferrer">Candle: A New Machine Learning Framework for Rust</a></li> <li><a href="https://www.reddit.com/r/rust/comments/16cmgwg/wasmer_42_is_released_upping_the_ante_with_50/" rel="noopener noreferrer">Wasmer 4.2 is Released: Upping the Ante with 50% Faster Module Load Times! 🚀</a></li> <li><a href="https://beta.tauri.app/blog/roadmap-to-tauri-2-0/" rel="noopener noreferrer">Roadmap to Tauri 2.0</a></li> <li><a href="https://blog.jetbrains.com/rust/2023/09/13/introducing-rustrover-a-standalone-rust-ide-by-jetbrains/" rel="noopener noreferrer">Introducing RustRover – A Standalone Rust IDE by JetBrains</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://ferrous-systems.com/blog/how-ferrocene-improves-rust/" rel="noopener noreferrer">How Ferrocene improves Rust</a></li> <li><a href="https://www.snoyman.com/blog/owned-values-and-futures/" rel="noopener noreferrer">Owned values and Futures in Rust</a></li> <li><a href="https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/" rel="noopener noreferrer">Semver violations are common, better tooling is the answer</a></li> <li><a href="https://rainingcomputers.blog/dist/rethinking_rusts_unsafe_keyword.md" rel="noopener noreferrer">Rethinking Rust’s unsafe keyword</a></li> <li><a href="https://bitbashing.io/async-rust.html" rel="noopener noreferrer">Async Rust Is A Bad Language</a></li> <li><a href="https://notgull.net/why-you-want-async/" rel="noopener noreferrer">Why you might actually want async in your project</a></li> <li><a href="https://mcyoung.xyz/2023/08/09/yarns/" rel="noopener noreferrer">I Wrote A String Type</a></li> <li><a href="https://www.shuttle.rs/blog/2023/09/13/web-scraping-rust-reqwest" rel="noopener noreferrer">Writing a Web Scraper in Rust using Reqwest</a></li> <li><a href="https://dora.carsmos.ai/blog/rust-python" rel="noopener noreferrer">Gotchas in Rust-Python binding with pyo3</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://litchipi.site/post/14762501311625827021" rel="noopener noreferrer">How Rust can build an elegant API around raw memory</a></li> <li><a href="https://logankeenan.com/posts/deploy-your-rust-project-to-any-hosting-provider-in-minutes/" rel="noopener noreferrer">Deploy Your Rust Project to Any Hosting Provider in Minutes</a></li> <li><a href="https://www.youtube.com/watch?v=gdmUhzJfgzk" rel="noopener noreferrer">Rust embedded at Espressif @ Copenhagen Rust Community</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://work.yba.dev/what-s-the-time-in-tokio" rel="noopener noreferrer">What's The Time In Tokio?</a></li> <li><a href="https://mo8it.com/blog/teaching-rust/" rel="noopener noreferrer">Teaching Rust in 5 days</a></li> <li><a href="https://jonboh.dev/posts/rr/" rel="noopener noreferrer">Time Travel Debugging Rust in NeoVim</a></li> <li><a href="https://www.shuttle.rs/blog/2023/09/08/building-semantic-search-in-rust" rel="noopener noreferrer">Semantic Search with Qdrant, OpenAI and Shuttle</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-gpio-interrupts" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: GPIO Interrupts</a></li> <li>[audio] <a href="https://ieni.dev/2023/09/%EF%B8%8F-trustfall-and-cargo-semver-checks-with-predrag-gruevski-rustship/" rel="noopener noreferrer">RustShip: Trustfall and cargo-semver-checks with Predrag Gruevski</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=7lHtXkYnip8" rel="noopener noreferrer">How to Do Embedded Development with Rust • Steve Klabnik • GOTO 2023</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/sysid/rs-env" rel="noopener noreferrer">irsenv</a>, a hierarchical environmant variable manager.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1237" rel="noopener noreferrer">sysid</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/google/zerocopy/issues/202" rel="noopener noreferrer">zerocopy - Prevent panics statically</a></li> <li><a href="https://github.com/google/zerocopy/issues/274" rel="noopener noreferrer">zerocopy - Implement traits for tuple types (and maybe other container types?)</a></li> <li><a href="https://github.com/google/zerocopy/issues/340" rel="noopener noreferrer">zerocopy - [CI] Deduplicate <code>actions/cache</code> directives</a></li> <li><a href="https://github.com/google/zerocopy/issues/307" rel="noopener noreferrer">zerocopy - Refactor version comparison logic in <code>check_versions</code> CI job</a></li> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/116" rel="noopener noreferrer">r3bl_rs_utils - Add styling support so that selected and unselected styles can be passed in</a></li> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/123" rel="noopener noreferrer">r3bl_rs_utils - Create a function that allows multiple selections from a list of strings</a></li> <li><a href="https://github.com/r3bl-org/r3bl_rs_utils/issues/125" rel="noopener noreferrer">r3bl_rs_utils - Add support for syntect output</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5904" rel="noopener noreferrer">Ockam - Use the Terminal to print out RPC response instead of printlns - Issue #5904 - build-trust/ockam - GitHub</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5936" rel="noopener noreferrer">Ockam - Investigate and fix breaking changes in upgrading from nix crate 0.26.2 to 0.27.1</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5523" rel="noopener noreferrer">Ockam - Give user feedback on using Ockam Command CLI</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/57" rel="noopener noreferrer">RustQuant - Increase test coverage.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/39" rel="noopener noreferrer">RustQuant - Create Python bindings.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/14" rel="noopener noreferrer">RustQuant - Add/improve documentation.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/89" rel="noopener noreferrer">RustQuant - Implement jump-diffusion simulator.</a></li> <li> <p><a href="https://github.com/hyperium/hyper/issues/3067" rel="noopener noreferrer">hyper - hyper 1.0 API docs polish - meta issue</a></p> </li> <li> <p><a href="https://github.com/juspay/hyperswitch/issues/2153" rel="noopener noreferrer">Hyperswitch - log a placeholder if merchant_id is not found</a></p> </li> <li><a href="https://github.com/juspay/hyperswitch/issues/2154" rel="noopener noreferrer">Hyperswitch - merchant account delete does not delete the <code>merchant_key_store</code></a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1357" rel="noopener noreferrer">Hyperswitch - add domain type for client secret</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>382 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-09-04..2023-09-11" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/115345" rel="noopener noreferrer">move wasm32-wasi-preview1-threads target to Tier 2</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115638" rel="noopener noreferrer"><code>-Cllvm-args</code> usability improvement</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115358" rel="noopener noreferrer">debuginfo: add compiler option to allow compressed debuginfo sections</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115712" rel="noopener noreferrer"><code>rustc_layout, rustc_abi</code>: make sure the types are well-formed</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115713" rel="noopener noreferrer">abort if check nightly options failed on stable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113492" rel="noopener noreferrer">add CL and CMD into to pdb debug info</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115397" rel="noopener noreferrer">add support to return value in StableMIR interface and not crash due to compilation error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115492" rel="noopener noreferrer">allow <code>large_assignments</code> for Box/Arc/Rc initialization</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114590" rel="noopener noreferrer">allow redirecting subprocess stdout to our stderr etc. (redux)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115657" rel="noopener noreferrer">avoid a <code>source_span</code> query when encoding Spans into query results</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115605" rel="noopener noreferrer">better Debug for <code>Ty</code> in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114586" rel="noopener noreferrer">bubble up opaque <code>&lt;eq&gt;</code> opaque operations instead of picking an order</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115739" rel="noopener noreferrer">call <code>LateLintPass::check_attribute</code> from <code>with_lint_attrs</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115467" rel="noopener noreferrer">do not require associated types with Self: Sized to uphold bounds when confirming object candidate</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115519" rel="noopener noreferrer">don't ICE on associated type projection without feature gate in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115631" rel="noopener noreferrer">don't ICE when computing ctype's <code>repr_nullable_ptr</code> for possibly-unsized ty</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115602" rel="noopener noreferrer">don't report any errors in <code>lower_intrinsics</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115527" rel="noopener noreferrer">don't require <code>Drop</code> for <code>[PhantomData&lt;T&gt;; N]</code> where <code>N</code> and <code>T</code> are generic, if <code>T</code> requires <code>Drop</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115629" rel="noopener noreferrer">don't suggest dereferencing to unsized type</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115630" rel="noopener noreferrer">dont suggest use between <code>use</code> and cfg attr</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115353" rel="noopener noreferrer">emit error instead of ICE when optimized MIR is missing</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115656" rel="noopener noreferrer">enable incremental-relative-spans by default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114813" rel="noopener noreferrer">explain why we can mutate the FPU control word</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115534" rel="noopener noreferrer">expose more information with DefId in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115548" rel="noopener noreferrer">extract parallel operations in <code>rustc_data_structures::sync</code> into a new <code>parallel</code> submodule</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115698" rel="noopener noreferrer">fix ICE in <code>improper_ctypes_definitions</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115088" rel="noopener noreferrer">fix Step Skipping Caused by Using the <code>--exclude</code> Option</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115708" rel="noopener noreferrer">fix <code>homogeneous_aggregate</code> not ignoring some ZST</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115529" rel="noopener noreferrer">fix error report for size overflow from transmute</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115335" rel="noopener noreferrer">fix overflow in array length computation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115643" rel="noopener noreferrer">fix: return early when has tainted in mir-lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115727" rel="noopener noreferrer">implement fallback for effect param</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115582" rel="noopener noreferrer">implement refinement lint for RPITIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115559" rel="noopener noreferrer">implied bounds: do not ICE on unconstrained region vars</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115662" rel="noopener noreferrer">improve "associated type not found" diagnostics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115523" rel="noopener noreferrer">improve <code>AttrTokenStream</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115744" rel="noopener noreferrer">improve diagnostic for generic params from outer items (E0401)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115587" rel="noopener noreferrer">fix <code>unnecessary_unsafe</code> false positive</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115595" rel="noopener noreferrer">fix incorrect mutable suggestion information for binding in ref pattern like: <code>let &amp;b = a;</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115633" rel="noopener noreferrer">lint node for <code>private_bounds</code>/<code>private_interfaces</code> is the item which names the private type</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115166" rel="noopener noreferrer">lint on invalid usage of <code>UnsafeCell::raw_get</code> in reference casting</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115371" rel="noopener noreferrer">make if let guard parsing consistent with normal guards</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115668" rel="noopener noreferrer">make the deadlock panic clearly refer to a deadlock</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115387" rel="noopener noreferrer">make unknown/renamed/removed lints passed via command line respect lint levels</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115743" rel="noopener noreferrer">point out if a local trait has no implementations</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114946" rel="noopener noreferrer">preserve ASAN-related symbols during LTO</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115624" rel="noopener noreferrer">print the path of a return-position impl trait in trait when <code>return_type_notation</code> is enabled</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114511" rel="noopener noreferrer">remove the unhelpful let binding diag comes from <code>FormatArguments</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115574" rel="noopener noreferrer">replace <code>rustc_data_structures</code> dependency with <code>rustc_index</code> in <code>rustc_parse_format</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115308" rel="noopener noreferrer">suggest <code>iter_mut()</code> where trying to modify elements from <code>.iter()</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115540" rel="noopener noreferrer">support debuginfo for custom MIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115488" rel="noopener noreferrer">take <code>&amp;mut Results</code> in <code>ResultsVisitor</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115634" rel="noopener noreferrer">use <code>newtype_index</code> for <code>IntVid</code> and <code>FloatVid</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115507" rel="noopener noreferrer">use relative positions inside a SourceFile</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115417" rel="noopener noreferrer">use the same DISubprogram for each instance of the same inlined function within a caller</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115252" rel="noopener noreferrer">represent MIR composite debuginfo as projections instead of aggregates</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115306" rel="noopener noreferrer">encode only MIR reachable from other crates</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115749" rel="noopener noreferrer">allow loading the SMIR for constants and statics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115532" rel="noopener noreferrer">implement SMIR generic parameter instantiation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115608" rel="noopener noreferrer">miri: catch function calls where the argument is caller-invalid / the return value callee-invalid</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3056" rel="noopener noreferrer">miri: use <code>#!/usr/bin/env</code> shebang</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115388" rel="noopener noreferrer">add optimized lock methods for <code>Sharded</code> and refactor <code>Lock</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115401" rel="noopener noreferrer">add <code>FreezeLock</code> type and use it to store <code>Definitions</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115711" rel="noopener noreferrer">use <code>FreezeLock</code> for <code>CStore</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115418" rel="noopener noreferrer">use <code>Freeze</code> for <code>SourceFile</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115594" rel="noopener noreferrer">span tweaks</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110050" rel="noopener noreferrer">use a specialized varint + bitpacking scheme for DepGraph encoding</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114299" rel="noopener noreferrer">add <code>char::MIN</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115453" rel="noopener noreferrer">stabilize <code>io_error_other</code> feature</a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/468" rel="noopener noreferrer">hashbrown: make allocator not <code>Clone</code></a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/330" rel="noopener noreferrer">codegen_gcc: fix const handling in ATT syntax</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/328" rel="noopener noreferrer">codegen_gcc: set the correct gimple output format</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12622" rel="noopener noreferrer">cargo-credential: change serialization of cache expiration</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12578" rel="noopener noreferrer">cargo: Add styling to help output</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12602" rel="noopener noreferrer">cargo: Make resolver behavior independent of package order</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12637" rel="noopener noreferrer">cargo: error out if <code>cargo clean --doc</code> is mixed with <code>-p</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12648" rel="noopener noreferrer">cargo: stabilize lints</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12644" rel="noopener noreferrer">cargo: fix: don't print <code>_TOKEN</code> suggestion when not applicable</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12626" rel="noopener noreferrer">cargo: fix: improve warning for both token &amp; credential-provider</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115682" rel="noopener noreferrer">rustdoc: add impl items from aliased type into sidebar</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115752" rel="noopener noreferrer">rustdoc: add missing "Aliased type" title in the sidebar</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115669" rel="noopener noreferrer">rustdoc: change syntax for anonymous functions set in JS</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115201" rel="noopener noreferrer">rustdoc: list matching impls on type aliases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115604" rel="noopener noreferrer">rustdoc: render private fields in tuple <code>struct</code> as <code>/* private fields */</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114855" rel="noopener noreferrer">rustdoc: show inner <code>enum</code> and <code>struct</code> in type definition for concrete type</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5536" rel="noopener noreferrer">rustfmt: Prefer <code>light_rewrite_comment</code> if it is not a doccomment</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5902" rel="noopener noreferrer">rustfmt: fix checking if newline is needed before <code>else</code> in let-else statement</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11459" rel="noopener noreferrer">clippy: <code>implied_bounds_in_impls</code>: include (previously omitted) associated types in suggestion</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11451" rel="noopener noreferrer">clippy: <code>slow_vector_initialization</code>: use the source span of <code>vec![]</code> macro and fix another FP</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11456" rel="noopener noreferrer">clippy: add suggestions for <code>std_instead_of_core</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11477" rel="noopener noreferrer">clippy: auto deref does not apply on union field</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11439" rel="noopener noreferrer">clippy: check binary operators and attributes in <code>disallowed_macros</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11454" rel="noopener noreferrer">clippy: ignore wildcards in function arguments and local bindings</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11462" rel="noopener noreferrer">clippy: preserve literals and range kinds in <code>manual_range_patterns</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11358" rel="noopener noreferrer">clippy: rename <code>incorrect_impls</code> to <code>non_canonical_impls,</code> move them to warn by default</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15524" rel="noopener noreferrer">rust-analyzer: add "Bind unused parameter" assist</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15573" rel="noopener noreferrer">rust-analyzer: add <code>into_to_qualified_from</code> assist</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15578" rel="noopener noreferrer">rust-analyzer: diagnose mismatched arg count for tuple <code>struct</code> patterns</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15584" rel="noopener noreferrer">rust-analyzer: diagnose private fields in record constructor</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15528" rel="noopener noreferrer">rust-analyzer: enable <code>rust_analyzer</code> for cfgs when code is being analyzed by rust-analyzer</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15559" rel="noopener noreferrer">rust-analyzer: implement <code>builtin#format_args,</code> using rustc's <code>format_args</code> parser</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15532" rel="noopener noreferrer">rust-analyzer: on type format '(', by adding closing ')' automatically</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15557" rel="noopener noreferrer">rust-analyzer: parse builtin# syntax and add typechecking for <code>builtin#offset_of</code> expression</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15577" rel="noopener noreferrer">rust-analyzer: clear native diagnostics on file closing</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15232" rel="noopener noreferrer">rust-analyzer: disallow renaming of non-local items</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15574" rel="noopener noreferrer">rust-analyzer: use crate name for <code>CARGO_CRATE_NAME</code></a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>An interesting week. We saw a massive improvement to instruction-counts across over a hundred benchmarks, thanks to #110050 an improved encoding scheme for the dependency graphs that underlie incremental-compilation. However, these instruction-count improvements did not translate to direct cycle time improvements. We also saw an improvement to our artifact sizes due to #115306. Beyond that, we had a scattering of small regressions to instruction-counts that were justified because they were associated with bug fixes.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=15e52b05ca8f63e0da27c808680388717e5b997e&amp;end=7e0261e7ea2085bdc0bc3d0fd6776bf343473858&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">15e52b05..7e0261e7</a></p> <p>3 Regressions, 2 Improvements, 5 Mixed; 2 of them in rollups 84 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-09-13.md" rel="noopener noreferrer">Full report - pending</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3399" rel="noopener noreferrer">Allow cfg-attributes in where clauses</a></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/3477" rel="noopener noreferrer">Cargo Check T-lang Policy</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/3161" rel="noopener noreferrer">[RFC2603] Extend <code>&lt;const&gt;</code> to include <code>str</code> and structural constants.</a></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/104385" rel="noopener noreferrer">Raise minimum supported Apple OS versions</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/115520" rel="noopener noreferrer">Stabilize const_transmute_copy</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114941" rel="noopener noreferrer">Don't resolve generic impls that may be shadowed by dyn built-in impls</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/115315" rel="noopener noreferrer">closure field capturing: don't depend on alignment of packed fields</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/110800" rel="noopener noreferrer">Accept additional user-defined syntax classes in fenced code blocks</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3488" rel="noopener noreferrer">Unify crate categories and keywords as tags</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3487" rel="noopener noreferrer">RFC: Cargo feature visibility (private/public)</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3486" rel="noopener noreferrer">RFC: Cargo feature deprecation</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3485" rel="noopener noreferrer">RFC: Cargo feature descriptions</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3484" rel="noopener noreferrer">Unsafe Extern Blocks</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-09-13 - 2023-10-11 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-09-12 - 2023-09-15 | Virtual (Albuquerque, NM, US) | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/295011539" rel="noopener noreferrer"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-09-14 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732655" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-09-19 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/" rel="noopener noreferrer">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/295778065" rel="noopener noreferrer"><strong>Mid-month Rustful—NeuronBench by Greg Hale</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/295826608/" rel="noopener noreferrer"><strong>SurrealDB for Rustaceans</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/295057154/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295666673/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Cologne, DE) | <a href="https://www.meetup.com/aws-cologne/" rel="noopener noreferrer">Cologne AWS User Group #AWSUGCGN</a><ul> <li><a href="https://www.meetup.com/aws-cologne/events/294594401/" rel="noopener noreferrer"><strong>AWS User Group Cologne - September Edition: Stefan Willenbrock: Developer Preview: Discovering Rust on AWS</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/295363887/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 33rd Edition</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/295828383/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-09-25 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294908596/" rel="noopener noreferrer"><strong>How we built the SurrealDB Python client in Rust.</strong></a></li> </ul> </li> <li>2023-09-26 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallasrust/events/295942051/" rel="noopener noreferrer"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-10-03 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295919493/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-10-04 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfcnbgb/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-10-04 | Virtual (Various) | <a href="https://www.eventbrite.com/o/ferrous-systems-gmbh-68735392123" rel="noopener noreferrer">Ferrous Systems</a><ul> <li><a href="https://www.eventbrite.com/e/a-decade-of-rust-with-ferrous-systems-tickets-680492891557?aff=ebdssbdestsearch" rel="noopener noreferrer"><strong>A Decade of Rust with Ferrous Systems</strong></a></li> </ul> </li> <li>2023-10-07 | Virtual (Kampala, UG) | <a href="https://www.eventbrite.com/o/rust-circle-kampala-65249289033" rel="noopener noreferrer">Rust Circle Kampala</a><ul> <li><a href="https://www.eventbrite.com/e/rust-circle-meetup-tickets-628763617907?aff=erelpanelorg" rel="noopener noreferrer"><strong>Rust Circle Meetup: Mentorship (First Saturday)</strong></a></li> </ul> </li> <li>2023-10-10 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallasrust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallasrust/events/fvdtgtyfcnbnb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-10-11| Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li>[<strong>Monthly Meetup</strong>]https://www.meetup.com/boulder-elixir-rust/events/zvxcsryfcnbpb/)</li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-10-03 | Taipei, TW | <a href="https://www.meetup.com/wasm-rust-meetup/" rel="noopener noreferrer">WebAssembly and Rust Meetup (Wasm Empowering AI)</a><ul> <li><a href="https://www.meetup.com/wasm-rust-meetup/events/295672575/" rel="noopener noreferrer"><strong>WebAssembly Meetup (Wasm Empowering AI) in Taipei</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-09-13 | Cologne, DE | <a href="https://rust.cologne/2023/09/13/rare-rust.html" rel="noopener noreferrer">Rust User Group Cologne</a><ul> <li><a href="https://www.meetup.com/rustcologne/events/295869748/" rel="noopener noreferrer"><strong>Rare Rust</strong></a> | <a href="https://rust.cologne/2023/09/13/rare-rust.html" rel="noopener noreferrer"><strong>Group Detail Page</strong></a></li> </ul> </li> <li>2023-09-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/295109905/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-09-15 | Stuttgart, DE | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/295639296/" rel="noopener noreferrer"><strong>Onsite Meeting</strong></a></li> </ul> </li> <li>2023-09-15 | Tiel, NL | <a href="https://www.meetup.com/rust-getting-started/" rel="noopener noreferrer">Rust, Getting Started</a><ul> <li><a href="https://www.meetup.com/rust-getting-started/events/295880062/" rel="noopener noreferrer"><strong>Rust Workshop - 2</strong></a></li> </ul> </li> <li>2023-09-16 | Brussels, BE | <a href="https://hsbxl.be/events/software-freedom-day/2023-09-16/" rel="noopener noreferrer">HSBXL</a><ul> <li><a href="https://www.meetup.com/brussels-hackerspace/events/295912633/" rel="noopener noreferrer"><strong>Software Freedom Day 2023</strong></a></li> </ul> </li> <li>2023-09-19 | Augsburg, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/" rel="noopener noreferrer">Rust - Modern Systems Programming in Leipzig</a><ul> <li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/295504245/" rel="noopener noreferrer"><strong>Logging and tracing in Rust</strong></a></li> </ul> </li> <li>2023-09-21 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/294031975/" rel="noopener noreferrer"><strong>Rust Aarhus - Rust and Talk at Concordium</strong></a></li> </ul> </li> <li>2023-09-21 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/" rel="noopener noreferrer">Rust Bern</a><ul> <li><a href="https://www.meetup.com/rust-bern/events/295503351/" rel="noopener noreferrer"><strong>Rust Bern Meetup #3 2023 🦀</strong></a></li> </ul> </li> <li>2023-09-26 | Berlin, DE | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679767/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-09-28 | Berlin, DE | <a href="https://www.meetup.com/react-berlin-meetup/" rel="noopener noreferrer">React Berlin</a><ul> <li><a href="https://www.meetup.com/react-berlin-meetup/events/295382108/" rel="noopener noreferrer"><strong>React Berlin September Meetup: Creating Videos with React &amp; Remotion &amp; More: Integrating Rust with React Native – Gheorghe Pinzaru</strong></a></li> </ul> </li> <li>2023-09-28 | Madrid, ES | <a href="https://www.meetup.com/madrust/" rel="noopener noreferrer">MadRust</a><ul> <li><a href="https://www.meetup.com/madrust/events/296063394/" rel="noopener noreferrer"><strong>Primer evento Post COVID: ¡Cervezas MadRust!</strong></a></li> </ul> </li> <li>2023-09-30 | Saint Petersburg, RU | <a href="https://t.me/ruRust_spb" rel="noopener noreferrer">Rust Saint Petersburg meetups</a><ul> <li><a href="https://rurust-saint-petersburg-m.timepad.ru/event/2561864/" rel="noopener noreferrer"><strong>Rust Community Meetup: A tale about how I tried to make my Blitz Basic - Vitaly; How to use nix to build projects on Rust – Danil; Getting to know tower middleware. General overview – Mikhail</strong></a> </li> </ul> </li> <li>2023-10-10 | Berlin, DE | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679773/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-09-12 - 2023-09-15 | Albuquerque, NM, US + Virtual | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-14 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/295484105" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-09-16 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295579189/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-09-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/295545278" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-09-21 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972877/" rel="noopener noreferrer"><strong>Real Time Multiplayer Game Server in Rust</strong></a></li> </ul> </li> <li>2023-09-21 | Mountain View, CA, US| <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295747006/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-09-21 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Music City Rust Developers</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/295587220/" rel="noopener noreferrer"><strong>Rust on the web! Get started with Leptos</strong></a></li> </ul> </li> <li>2023-09-23 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295869150/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-09-26 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/" rel="noopener noreferrer">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/295771515" rel="noopener noreferrer"><strong>Monthly Rust group</strong></a></li> </ul> </li> <li>2023-09-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295466314" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-09-30 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/fktvgtyfcmbnc/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-10-07 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/fktvgtyfcnbkb/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-09-14 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.linkedin.com/events/7097356771584880640/" rel="noopener noreferrer"><strong>Rust Meetup 2: Lunch &amp; Learn</strong></a> | <a href="https://www.tickettailor.com/events/perthrustusergroup/984771" rel="noopener noreferrer"><strong>Ticket Link</strong></a></li> </ul> </li> <li>2023-09-19 | Christchurch, NZ | <a href="https://www.meetup.com/christchurch-rustlang-meetup-group/" rel="noopener noreferrer">Christchurch Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/christchurch-rustlang-meetup-group/events/295602231/" rel="noopener noreferrer"><strong>Christchurch Rust meetup meeting</strong></a></li> </ul> </li> <li>2023-09-26 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/" rel="noopener noreferrer">Rust Canberra</a><ul> <li><a href="https://www.meetup.com/rust-canberra/events/295432237/" rel="noopener noreferrer"><strong>September Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/163w6fl/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>It's very much a positive feedback loop: good tooling makes good tooling easier to build, so more of it gets built and the cycle repeats.<br> <code>cargo-semver-checks</code> stands on the shoulders of giants like <code>rustc</code> and <code>rustdoc</code> and <a href="https://github.com/obi1kenobi/trustfall" rel="noopener noreferrer">Trustfall</a>. Remove any one of them (or even just <code>rustc</code>'s high-quality diagnostics!) and <code>cargo-semver-checks</code> wouldn't have been a viable project at all. </p> </blockquote> <p>– <a href="https://www.reddit.com/r/rust/comments/16cj1mo/comment/jzjw4vk/?utm_source=share&amp;utm_medium=web2x&amp;context=3" rel="noopener noreferrer">Predrag Gruevski on /r/rust</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1466" rel="noopener noreferrer">Vincent de Phily</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/16i3yr2/this_week_in_rust_512/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 511 freedit 2023-09-06 2023-09-06 132 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/09/06/this-week-in-rust-511/">This Week in Rust 511</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html" rel="noopener noreferrer">Electing New Project Directors</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/09/04/keeping-secure-with-cargo-audit-0.18.html" rel="noopener noreferrer">Keeping Rust projects secure with cargo-audit 0.18: performance, compatibility and security improvements</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/09/01/crates-io-malware-postmortem.html" rel="noopener noreferrer">crates.io Postmortem: User Uploaded Malware</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://gamedev.rs/news/048/" rel="noopener noreferrer">This Month in Rust GameDev #48 - July 2023</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://slint.dev/blog/slint-1.2-released" rel="noopener noreferrer">Slint 1.2 Released with Enhanced Platform Abstraction</a></li> <li><a href="https://blog.weiznich.de/blog/diesel-async-0-4/" rel="noopener noreferrer">Announcing diesel-async 0.4</a></li> <li><a href="https://git-cliff.org/blog/1.3.0/" rel="noopener noreferrer">git-cliff 1.3.0 is released! (highly customizable changelog generator)</a></li> <li><a href="https://dwrensha.github.io/capnproto-rust/2023/09/04/0.18-release.html" rel="noopener noreferrer">capnp 0.18 release</a></li> <li><a href="https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-25" rel="noopener noreferrer">rustc_codegen_gcc: Progress Report #25</a></li> <li><a href="https://reddit.com/r/rust/s/glIVUEPb8U" rel="noopener noreferrer">Type-safe Rust-In-Flutter 3.0</a></li> <li><a href="https://reddit.com/r/rust/s/GeGknPLPOm" rel="noopener noreferrer">Announcing Nucleo: A fast fuzzy matcher library</a></li> <li><a href="https://marc0.hashnode.dev/freya" rel="noopener noreferrer">Announcing Freya GUI library</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://rusty-ferris.pages.dev/blog/fp-actions-vs-calculations/" rel="noopener noreferrer">Elevate Your Rust Code: The Art of Separating Actions and Calculations</a></li> <li><a href="https://tweedegolf.nl/en/blog/101/are-we-embedded-yet" rel="noopener noreferrer">Are we embedded yet?</a></li> <li><a href="https://www.lpalmieri.com/posts/pavex-progress-report-06/" rel="noopener noreferrer">Pavex DevLog #6: designing safe and ergonomic middlewares</a></li> <li><a href="https://model-checking.github.io/kani-verifier-blog/2023/08/31/using-kani-to-validate-security-boundaries-in-aws-firecracker.html" rel="noopener noreferrer">Using Kani to Validate Security Boundaries in AWS Firecracker</a></li> <li><a href="https://deepcausality.com/blog/views-on-rust-ml/" rel="noopener noreferrer">Views on Machine Learning in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=8j_FbjiowvE" rel="noopener noreferrer">5 Strong Opinions On Everyday Rust</a></li> <li>[video] <a href="https://www.youtube.com/live/H7q-7CNb7gc?si=zgWjLlaCxNHJfRJq&amp;t=8229" rel="noopener noreferrer">Core Flight System Applications in Rust with n2o4</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://hegdenu.net/posts/understanding-async-await-4/" rel="noopener noreferrer">How I finally understood async/await in Rust (part 4: why would I ever want to write a future manually?)</a></li> <li><a href="https://developerlife.com/2023/08/28/justfile/" rel="noopener noreferrer">Use just to run commands in Rust projects</a></li> <li><a href="https://www.shuttle.rs/blog/2023/08/30/using-oauth-with-axum" rel="noopener noreferrer">How to Implement OAuth in Rust</a></li> <li><a href="https://www.iankduncan.com/articles/2023-08-30-integrating-haskell-and-tokio" rel="noopener noreferrer">Integrating a large Tokio-based Rust library with Haskell</a></li> <li><a href="https://github.com/nsengupta/ractor-tutorial#readme" rel="noopener noreferrer">A series of 3 tutorials that walks one through the world of Actors as implemented by 'ractor' framework </a></li> <li><a href="https://broch.tech/posts/rust-async-fn-trait/" rel="noopener noreferrer">Trying out Rust's Async Functions in Traits</a></li> <li><a href="https://dhruv-ahuja.github.io/posts/implementing-buffered-queue-in-rust/" rel="noopener noreferrer">Implementing a Naive Buffered Queue in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=6D8WVYm1YwY" rel="noopener noreferrer">Raytracing in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=PoaHybRUC18" rel="noopener noreferrer">Creating a spectrogram generator - "peer programming" with the Internet</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://arxiv.org/abs/2308.14623" rel="noopener noreferrer">Accelerating package expansion in Rust through development of a semantic versioning tool</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://github.blog/2023-08-30-why-rust-is-the-most-admired-language-among-developers/" rel="noopener noreferrer">Why Rust is the most admired language among developers</a></li> <li><a href="https://godot-rust.github.io/dev/ffi-optimizations-benchmarking/" rel="noopener noreferrer">FFI optimizations and benchmarking</a></li> <li><a href="https://ochagavia.nl/blog/becoming-a-contractor/" rel="noopener noreferrer">Becoming a [Rust] contractor</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/algesten/str0m" rel="noopener noreferrer">str0m</a>, a synchronous sans-IO WebRTC implementation.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1235" rel="noopener noreferrer">Hugo Tunius</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/1357" rel="noopener noreferrer">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1943" rel="noopener noreferrer">Hyperswitch - deserialization error exposes sensitive values in the logs</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1521" rel="noopener noreferrer">Hyperswitch - remove unnecessary function from Refunds Validate Flow</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5897" rel="noopener noreferrer">Ockam - Inconsistent behavior of <code>ockam tcp-outlet create</code></a></li> <li><a href="https://github.com/build-trust/ockam/issues/5898" rel="noopener noreferrer">Ockam - Incorrect alias handling in outlet creation</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5895" rel="noopener noreferrer">Ockam - Investigate Github API error in github actions workflows that use nix</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>357 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-08-28..2023-09-04" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/114349" rel="noopener noreferrer"><code>rustc_llvm</code>: Link to <code>zlib</code> on dragonfly and solaris</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113542" rel="noopener noreferrer">adapt table sizes to the contents, accommodating u64 rmeta offsets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115144" rel="noopener noreferrer">add <code>ParallelGuard</code> type to handle unwinding in parallel sections</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114845" rel="noopener noreferrer">add alignment to the NPO guarantee</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115187" rel="noopener noreferrer">add new interface to smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115270" rel="noopener noreferrer">add note on non-exhaustiveness when matching on str and nested non-exhaustive enums</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115470" rel="noopener noreferrer">add stable provenance</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115471" rel="noopener noreferrer">also skip musl checks when <code>BOOTSTRAP_SKIP_TARGET_SANITY</code> is set</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114114" rel="noopener noreferrer">always add <code>LC_BUILD_VERSION</code> for metadata object files</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115323" rel="noopener noreferrer">avoid stdout redirection on <code>curl</code> executions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114616" rel="noopener noreferrer">capture all lifetimes for TAITs and impl trait in associated types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115366" rel="noopener noreferrer">capture lifetimes for associated type bounds destined to be lowered to opaques</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115444" rel="noopener noreferrer">create a SMIR visitor</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115424" rel="noopener noreferrer">diagnostics: avoid wrong <code>unused_parens</code> on <code>x as (T) &lt; y</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114704" rel="noopener noreferrer">parser: not insert dummy field in <code>struct</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113201" rel="noopener noreferrer">permit recursive weak type aliases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113126" rel="noopener noreferrer">replace old private-in-public diagnostic with type privacy lints</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115400" rel="noopener noreferrer">return ident for <code>ExprField</code> and <code>PatField</code> HIR nodes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115286" rel="noopener noreferrer">skip rendering metadata strings from <code>include_str!/include_bytes!</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115347" rel="noopener noreferrer">suggest removing <code>impl</code> in generic trait bound position</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115384" rel="noopener noreferrer">work around ICE in diagnostics for local super-universes missing <code>UniverseInfo</code>s</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111580" rel="noopener noreferrer">don't ICE on layout computation failure</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115513" rel="noopener noreferrer">don't forget to normalize the translated message</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115361" rel="noopener noreferrer">don't manually compute param indices when adding implicit <code>Sized</code> and <code>ConstParamHasTy</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115392" rel="noopener noreferrer">don't record spans for predicates in coherence</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115363" rel="noopener noreferrer">don't suggest adding parentheses to call an inaccessible method</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115478" rel="noopener noreferrer">emit unused doc comment warnings for pat and expr fields</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115194" rel="noopener noreferrer">fix inlining with -Zalways-encode-mir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115277" rel="noopener noreferrer">fix some issues around ZST handling</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115441" rel="noopener noreferrer">fix the repetitive word</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115058" rel="noopener noreferrer">inline functions called from <code>add_coverage</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114483" rel="noopener noreferrer">interpret: fix projecting into an unsized field of a local</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111752" rel="noopener noreferrer">lower <code>Or</code> pattern without allocating place</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113565" rel="noopener noreferrer">make SIGSEGV handler emit nicer backtraces</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115313" rel="noopener noreferrer">make <code>get_return_block()</code> return <code>Some</code> only for HIR nodes in body</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115393" rel="noopener noreferrer">make <code>termcolor</code> types public in <code>rustc_errors</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115472" rel="noopener noreferrer">make it more clear what 'Tier 2' (without host tools) means</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115411" rel="noopener noreferrer">miri ABI check: fix handling of 1-ZST; don't accept sign differences</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115182" rel="noopener noreferrer">miri ABI compatibility check: accept u32 and i32</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115374" rel="noopener noreferrer">miri function ABI check: accept <code>repr(transparent)</code> wrappers as compatible</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115272" rel="noopener noreferrer">miri/diagnostics: don't forget to <code>print_backtrace</code> when ICEing on unexpected errors</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3048" rel="noopener noreferrer">miri: add '--skip-children' to rustfmt invocation</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3045" rel="noopener noreferrer">miri: make sure we test all tier 1 targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115391" rel="noopener noreferrer">encode <code>DepKind</code> as <code>u16</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114908" rel="noopener noreferrer">do not compute unneeded query results</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115422" rel="noopener noreferrer">use <code>OnceLock</code> for <code>SingleCache</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115443" rel="noopener noreferrer">stabilize <code>os_str_bytes</code> feature</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114065" rel="noopener noreferrer"><code>impl TryFrom&lt;char&gt; for u16</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115449" rel="noopener noreferrer">const-stabilize <code>is_ascii</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115273" rel="noopener noreferrer">optimize <code>Take::{fold, for_each}</code> when wrapping <code>TrustedRandomAccess</code> iterators</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113295" rel="noopener noreferrer">implement <code>Step</code> for <code>ascii::Char</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114795" rel="noopener noreferrer">make <code>Cell::swap</code> panic if the Cells partially overlap</a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/465" rel="noopener noreferrer">hashbrown: fix two bugs in <code>clone_from</code></a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/467" rel="noopener noreferrer">hashbrown: migrate from <code>actions-rs/toolchain@v1</code> to <code>dtolnay/rust-toolchain@master</code> and remove <code>Cross.toml</code></a></li> <li><a href="https://github.com/rust-lang/regex/pull/1080" rel="noopener noreferrer">regex-automata: reduce regex contention considerably</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1079" rel="noopener noreferrer">regex: upgrade to memchr 2.6 to bring in aarch64 improvements</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/278" rel="noopener noreferrer">codegen_gcc: add support for Link-Time Optimization</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/312" rel="noopener noreferrer">codegen_gcc: add support for <code>noalias</code> function parameters</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/324" rel="noopener noreferrer">codegen_gcc: only apply NoAlias attribute if optimization is enabled</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12575" rel="noopener noreferrer">cargo install: suggest --git when package name is url</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12607" rel="noopener noreferrer">cargo cli: Help users know possible <code>--target</code> values</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12584" rel="noopener noreferrer">cargo lints: Fail when overriding inherited lints</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12595" rel="noopener noreferrer">cargo doc: adjust all doc headings one level up</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12604" rel="noopener noreferrer">cargo fewer temporary needless strings</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12590" rel="noopener noreferrer">cargo: add error for unsupported credential provider version</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12587" rel="noopener noreferrer">cargo: improve logout message for asymmetric tokens</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12591" rel="noopener noreferrer">cargo: prepare for partial-version package specs</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12582" rel="noopener noreferrer">cargo: set tracing target for networking messages</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12618" rel="noopener noreferrer">cargo: test: new options of debuginfo are no longer unstable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115436" rel="noopener noreferrer">rustdoc: Fix type based search</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115276" rel="noopener noreferrer">rustdoc: correctly deal with self ty params when eliding default object lifetimes</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11437" rel="noopener noreferrer">clippy: <code>implied_bounds_in_impls</code>: don't ICE on default generic parameter and move to nursery</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11418" rel="noopener noreferrer">clippy: add config flag for reborrows in <code>explicit_iter_loop</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11430" rel="noopener noreferrer">clippy: correctly format <code>vec!</code> invocations</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11448" rel="noopener noreferrer">clippy: defaultUnionRepresentation: explain why we only warn about unions with at least 2 non-ZST fields</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11259" rel="noopener noreferrer">clippy: don't pass extra generic arguments in <code>needless_borrow</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11376" rel="noopener noreferrer">clippy: fix span when linting <code>explicit_auto_deref</code> immediately after <code>needless_borrow</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11396" rel="noopener noreferrer">clippy: new lint: <code>iter_out_of_bounds</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10692" rel="noopener noreferrer">clippy: new lint: <code>missing_asserts_for_indexing</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11447" rel="noopener noreferrer">clippy: rewrite <code>never_loop</code> as a strict reachability pass</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11450" rel="noopener noreferrer">clippy: <code>never_loop</code> catches <code>loop { panic!() }</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11455" rel="noopener noreferrer">clippy: skip <code>todo!()</code> in <code>never_loop</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11416" rel="noopener noreferrer">clippy: use multipart suggestions for raw string lints</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5853" rel="noopener noreferrer">rustfmt: fix issues with formatting imports with comments</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5839" rel="noopener noreferrer">rustfmt: fix: reject leading <code>.</code>, <code>)</code> without prefix as item marker</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A lot of spurious noise this week from a few benchmarks (bitmaps-3.1.0, libc, and even cargo-0.60.0 at a few points). Beyond that, we had a few small improvements associated with the trait system and with parallel-rustc.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=cedbe5c715c1fa9359683c5f108bed2054ac258b&amp;end=15e52b05ca8f63e0da27c808680388717e5b997e&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">cedbe5c7..15e52b05</a></p> <p>4 Regressions, 7 Improvements, 8 Mixed; 2 of them in rollups 66 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-09-05.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112725" rel="noopener noreferrer">rustdoc-search: add support for type parameters</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/107421" rel="noopener noreferrer">Enable -Zdrop-tracking-mir by default</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114183" rel="noopener noreferrer">Stabilize <code>PATH</code> option for <code>--print KIND=PATH</code></a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3482" rel="noopener noreferrer">Pre-RFC describing mechanism to remove orphan rule constraints</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-09-06 - 2023-10-04 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-09-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294049877" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-09-06 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/294343596/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-09-07 | Virtual (Ann Arbor, MI, US) | <a href="https://www.meetup.com/michigan-python/" rel="noopener noreferrer">Michigan Python</a><ul> <li><a href="https://www.meetup.com/michigan-python/events/294951180/" rel="noopener noreferrer"><strong>Online MI Python: Improving Python Speed with a Bit of Rust</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Virtual (Albuquerque, NM, US) | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | Berlin, DE | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295635473/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-09-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/gqdlgtyfcmbqb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/295011539" rel="noopener noreferrer"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-09-14 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732655" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/295826608/" rel="noopener noreferrer"><strong>SurrealDB for Rustaceans</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/295057154/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295666673/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Cologne, DE) | <a href="https://www.meetup.com/aws-cologne/" rel="noopener noreferrer">Cologne AWS User Group #AWSUGCGN</a><ul> <li><a href="https://www.meetup.com/aws-cologne/events/294594401/" rel="noopener noreferrer"><strong>AWS User Group Cologne - September Edition: Stefan Willenbrock: Developer Preview: Discovering Rust on AWS</strong></a></li> </ul> </li> <li>2023-09-21 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972877/" rel="noopener noreferrer"><strong>Real Time Multiplayer Game Server in Rust</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/295363887/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 33rd Edition</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/295828383/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-09-25 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294908596/" rel="noopener noreferrer"><strong>How we built the SurrealDB Python client in Rust.</strong></a></li> </ul> </li> <li>2023-09-26 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallasrust/events/mvdtgtyfcmbjc/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-10-03 | Buffalo, NY, US | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295919493/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-10-04 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfcnbgb/" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-10-03 | Taipei, TW | <a href="https://www.meetup.com/wasm-rust-meetup/" rel="noopener noreferrer">WebAssembly and Rust Meetup (Wasm Empowering AI)</a><ul> <li><a href="https://www.meetup.com/wasm-rust-meetup/events/295672575/" rel="noopener noreferrer"><strong>WebAssembly Meetup (Wasm Empowering AI) in Taipei</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-09-12 | Berlin, DE | <a href="https://www.meetup.com/berlinawsug/" rel="noopener noreferrer">Berlin AWS User Group</a><ul> <li><a href="https://www.meetup.com/berlinawsug/events/295565048/" rel="noopener noreferrer"><strong>Berlin AWS Group Meetup - September 2023: Luca Zonta // Sustainable Serverless Computing with Rust</strong></a></li> </ul> </li> <li>2023-09-12 | Zurich, CH| <a href="https://www.meetup.com/de-DE/rust-zurich/" rel="noopener noreferrer">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/de-DE/rust-zurich/events/295804450/" rel="noopener noreferrer"><strong>The Lightning Rust Quiz - September Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Cologne, DE | <a href="https://rust.cologne/2023/09/13/rare-rust.html" rel="noopener noreferrer">Rust User Group Cologne</a><ul> <li><a href="https://www.meetup.com/rustcologne/events/295869748/" rel="noopener noreferrer"><strong>Rare Rust</strong></a> | <a href="https://rust.cologne/2023/09/13/rare-rust.html" rel="noopener noreferrer"><strong>Group Detail Page</strong></a></li> </ul> </li> <li>2023-09-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/295109905/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-09-15 | Stuttgart, DE | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/295639296/" rel="noopener noreferrer"><strong>OnsiteMeeting</strong></a></li> </ul> </li> <li>2023-09-15 | Tiel, NL | <a href="https://www.meetup.com/rust-getting-started/" rel="noopener noreferrer">Rust, Getting Started</a><ul> <li><a href="https://www.meetup.com/rust-getting-started/events/295880062/" rel="noopener noreferrer"><strong>Rust Workshop - 2</strong></a></li> </ul> </li> <li>2023-09-16 | Brussels, BE | <a href="https://hsbxl.be/events/software-freedom-day/2023-09-16/" rel="noopener noreferrer">HSBXL</a><ul> <li><a href="https://www.meetup.com/brussels-hackerspace/events/295912633/" rel="noopener noreferrer"><strong>Software Freedom Day 2023</strong></a></li> </ul> </li> <li>2023-09-19 | Augsburg, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/" rel="noopener noreferrer">Rust - Modern Systems Programming in Leipzig</a><ul> <li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/295504245/" rel="noopener noreferrer"><strong>Logging and tracing in Rust</strong></a></li> </ul> </li> <li>2023-09-21 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/294031975/" rel="noopener noreferrer"><strong>Rust Aarhus - Rust and Talk at Concordium</strong></a></li> </ul> </li> <li>2023-09-21 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/" rel="noopener noreferrer">Rust Bern</a><ul> <li><a href="https://www.meetup.com/rust-bern/events/295503351/" rel="noopener noreferrer"><strong>Rust Bern Meetup #3 2023 🦀</strong></a></li> </ul> </li> <li>2023-09-26 | Berlin, DE | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295679767/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-09-28 | Berlin, DE | <a href="https://www.meetup.com/react-berlin-meetup/" rel="noopener noreferrer">React Berlin</a><ul> <li><a href="https://www.meetup.com/react-berlin-meetup/events/295382108/" rel="noopener noreferrer"><strong>React Berlin September Meetup: Creating Videos with React &amp; Remotion &amp; More: Integrating Rust with React Native – Gheorghe Pinzaru</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-09-06 | Bellevue, WA, US | <a href="https://www.linuxfoundation.org/" rel="noopener noreferrer">The Linux Foundation</a><ul> <li><a href="https://events.linuxfoundation.org/rust-global/" rel="noopener noreferrer"><strong>Rust Global</strong></a></li> </ul> </li> <li>2023-09-07 | Mountain View, CA, US | <a href="https://www.meetup.com/hackerdojo/" rel="noopener noreferrer">Hacker Dojo</a><ul> <li><a href="https://www.meetup.com/hackerdojo/events/295614871/" rel="noopener noreferrer"><strong>RUST MEETUP at HACKER DOJO</strong></a> | <a href="https://www.meetup.com/mv-rust-meetup/events/295746992/" rel="noopener noreferrer"><strong>Mountain View Rust Meetup Mirror</strong></a></li> </ul> </li> <li>2023-09-07 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/" rel="noopener noreferrer">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/295818856/" rel="noopener noreferrer"><strong>Weekly Pasadena Python study group</strong></a></li> </ul> </li> <li>2023-09-09 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295572737/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Albuquerque, NM, US + Virtual | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/" rel="noopener noreferrer">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/295639294" rel="noopener noreferrer"><strong>A Panel Discussion on Thriving in a Rust-Driven Workplace</strong></a></li> </ul> </li> <li>2023-09-12 | Minneapolis, MN, US | <a href="https://www.meetup.com/minneapolis-rust-meetup/" rel="noopener noreferrer">Minneapolis Rust Meetup</a><ul> <li><a href="https://www.meetup.com/minneapolis-rust-meetup/events/295744114/" rel="noopener noreferrer"><strong>Minneapolis Rust Meetup Happy Hour</strong></a></li> </ul> </li> <li>2023-09-14 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/295484105" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-09-16 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295579189/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-09-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/295545278" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-09-21 | Mountain View, CA, US| <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295747006/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-09-21 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Music City Rust Developers</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/295587220/" rel="noopener noreferrer"><strong>Rust on the web! Get started with Leptos</strong></a></li> </ul> </li> <li>2023-09-23 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/295869150/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-09-26 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/" rel="noopener noreferrer">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/295771515" rel="noopener noreferrer"><strong>Monthly Rust group</strong></a></li> </ul> </li> <li>2023-09-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295466314" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-09-30 | Mountain View, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast and Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/fktvgtyfcmbnc/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-09-13 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.linkedin.com/events/7097356771584880640/" rel="noopener noreferrer"><strong>Rust Meetup 2: Lunch &amp; Learn</strong></a> | <a href="https://www.tickettailor.com/events/perthrustusergroup/984771" rel="noopener noreferrer"><strong>Ticket Link</strong></a></li> </ul> </li> <li>2023-09-19 | Christchurch, NZ | <a href="https://www.meetup.com/christchurch-rustlang-meetup-group/" rel="noopener noreferrer">Christchurch Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/christchurch-rustlang-meetup-group/events/295602231/" rel="noopener noreferrer"><strong>Christchurch Rust meetup meeting</strong></a></li> </ul> </li> <li>2023-09-26 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/" rel="noopener noreferrer">Rust Canberra</a><ul> <li><a href="https://www.meetup.com/rust-canberra/events/295432237/" rel="noopener noreferrer"><strong>September Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>Rusts standard library, and a lot of the popular crates, are like a museum. While it does change, as new exhibitions are added, it is mostly finished. Each painting has a detailed explanation in 7 different languages underneath. Descriptions below each excitation are written beautifully, with detailed drawings, showing how everything works. It is so easy to navigate, one glance at the map is enough to find exactly what you are looking for. It is so convenient, you almost don't notice that you are learning something.</p> <p>Internals of <code>rustc</code> are like a build site of a sprawling factory. You can see the scaffolds everywhere, as more production lines come online, and everything gets faster, better, bigger. Workers move around, knowing the place like the back of their hands. They can glance at the signs on the walls, and instantly tell you: where you are, what this place does and what pitfalls you should avoid. And you are a new hire who has just came for his first day at the new job. You look at the sign, and after some thinking, you too are able to tell roughly in which building you are. The signs almost always tell you what you need, just in short, cryptic sentences. You always can tell what is going on, with some thinking, but it is not effortless. The signs on the walls are not <em>bad</em>, just not written for anyone to get right away.</p> </blockquote> <p>– <a href="https://fractalfir.github.io/generated_html/rustc_codegen_clr_v0_0_1.html" rel="noopener noreferrer">FractalFir on their blog</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1464" rel="noopener noreferrer">Alona Enraght-Moony</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="REDDIT_LINK_HERE" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 510 freedit 2023-08-30 2023-08-30 130 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/08/30/this-week-in-rust-510/">This Week in Rust 510</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/08/24/Rust-1.72.0.html" rel="noopener noreferrer">Announcing Rust 1.72.0</a></li> <li><a href="https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html" rel="noopener noreferrer">Change in Guidance on Committing Lockfiles</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/08/24/cargo-config-merging.html" rel="noopener noreferrer">Cargo changes how arrays in config are merged</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/08/25/leadership-initiatives.html" rel="noopener noreferrer">Seeking help for initial Leadership Council initiatives</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/08/29/leadership-council-membership-changes.html" rel="noopener noreferrer">Leadership Council Membership Changes</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://arsmilitaris.com/#this-week-in-ars-militaris-viii" rel="noopener noreferrer">This Week in Ars Militaris VIII</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/08/28/changelog-196.html" rel="noopener noreferrer">rust-analyzer changelog #196</a></li> <li><a href="https://www.memorysafety.org/blog/sudo-first-stable-release/" rel="noopener noreferrer">The First Stable Release of a Memory Safe sudo Implementation</a></li> <li><a href="https://blog.1password.com/passkey-crates/" rel="noopener noreferrer">We're open-sourcing the library that powers 1Password's ability to log in with a passkey</a></li> <li><a href="https://github.com/ratatui-org/ratatui/releases/tag/v0.23.0" rel="noopener noreferrer">ratatui 0.23.0 is released! (official successor of tui-rs)</a></li> <li><a href="https://zellij.dev/news/session-manager-protobuffs/" rel="noopener noreferrer">Zellij 0.38.0: session-manager, plugin infra, and no more offensive session names</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://c410-f3r.github.io/thoughts/the-fastest-websocket-implementation/" rel="noopener noreferrer">The fastest WebSocket implementation</a></li> <li><a href="https://blog.phylum.io/rust-malware-staged-on-crates-io/" rel="noopener noreferrer">Rust Malware Staged on Crates.io</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-spi-with-the-max7219-led-dot-matrix" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: SPI with the MAX7219 LED Dot Matrix</a></li> <li><a href="https://andreabergia.com/blog/2023/08/a-jvm-in-rust-part-5-executing-instructions/" rel="noopener noreferrer">A JVM in Rust part 5 - Executing instructions</a></li> <li><a href="https://fractalfir.github.io/generated_html/rustc_codegen_clr_v0_0_1.html" rel="noopener noreferrer">Compiling Rust for .NET, using only tea and stubbornness!</a></li> <li><a href="https://cs-syd.eu/posts/2023-08-25-ad-hoc-polymorphism-erodes-type-safety" rel="noopener noreferrer">Ad-hoc polymorphism erodes type-safety</a></li> <li><a href="https://nnethercote.github.io/2023/08/25/how-to-speed-up-the-rust-compiler-in-august-2023.html" rel="noopener noreferrer">How to speed up the Rust compiler in August 2023</a></li> <li><a href="https://xeiaso.net/blog/serde-precompiled-stupid" rel="noopener noreferrer">This isn't the way to speed up Rust compile times</a></li> <li><a href="https://briansmith.org/rust-cryptography-should-be-written-in-rust-01" rel="noopener noreferrer">Rust Cryptography Should be Written in Rust</a></li> <li><a href="https://tulipemoutarde.be/posts/2023-08-20-depencency-injection-rust-axum/" rel="noopener noreferrer">Dependency injection in Axum handlers. A quick tour</a></li> <li><a href="https://www.shuttle.rs/blog/2023/08/23/rust-web-framework-comparison" rel="noopener noreferrer">Best Rust Web Frameworks to Use in 2023</a></li> <li><a href="https://blog.orhun.dev/ratatui-0-23-0/" rel="noopener noreferrer">From tui-rs to Ratatui: 6 Months of Cooking Up Rust TUIs</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=jVoEA7qmN8c" rel="noopener noreferrer">Rust 1.72.0</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=EFdzH67G-lw" rel="noopener noreferrer">Rust 1.72 Release Train</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li>[series] <a href="https://heikoseeberger.de/2023-08-28-dist-tracing-3/" rel="noopener noreferrer">Distributed Tracing in Rust, Episode 3: tracing basics</a></li> <li><a href="https://www.kurtlawrence.info/blog/gufdjkjkq7wphfhkvrumcvmqdr4r69" rel="noopener noreferrer">Use Rust in shell scripts</a></li> <li><a href="https://medium.com/@estebanrules/a-simple-crud-api-in-rust-with-cloudflare-workers-cloudflare-kv-and-the-rust-router-cbc1b9015e7b" rel="noopener noreferrer">A Simple CRUD API in Rust with Cloudflare Workers, Cloudflare KV, and the Rust Router</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=KGP16TITJdU" rel="noopener noreferrer">base64 crate: code walkthrough</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://blog.rust.careers/post/andy-python-interview/" rel="noopener noreferrer">Interview with Rust and operating system Developer Andy Python</a></li> <li><a href="https://questdb.io/blog/leveraging-rust-in-our-high-performance-java-database/" rel="noopener noreferrer">Leveraging Rust in our high-performance Java database</a></li> <li><a href="https://rust.code-maven.com/error-message-to-fix-typo" rel="noopener noreferrer">Rust error message to fix a typo</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=k8kd22jNcps" rel="noopener noreferrer">The Builder Pattern and Typestate Programming - Stefan Baumgartner - Rust Linz January 2023</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=TrPyUVundbM" rel="noopener noreferrer">CI with Rust and Gitlab Selfhosting - Stefan Schindler - Rust Linz July 2023</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/dprint/dprint" rel="noopener noreferrer">dprint</a>, a fast code formatter that formats Markdown, TypeScript, JavaScript, JSON, TOML and many other types natively via Wasm plugins.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1232" rel="noopener noreferrer">Martin Geisler</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/1357" rel="noopener noreferrer">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1943" rel="noopener noreferrer">Hyperswitch - deserialization error exposes sensitive values in the logs</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/917" rel="noopener noreferrer">Hyperswitch - move redis key creation to a common module</a></li> <li><a href="https://github.com/google/mdbook-i18n-helpers/issues/30" rel="noopener noreferrer">mdbook-i18n-helpers - Write tool which can convert translated files back to PO</a></li> <li><a href="https://github.com/google/mdbook-i18n-helpers/issues/12" rel="noopener noreferrer">mdbook-i18n-helpers - Package a language selector</a></li> <li><a href="https://github.com/google/mdbook-i18n-helpers/issues/35" rel="noopener noreferrer">mdbook-i18n-helpers - Add links between translations</a></li> <li><a href="https://github.com/google/comprehensive-rust/issues/1075" rel="noopener noreferrer">Comprehensive Rust - Link to correct line when editing a translation</a></li> <li><a href="https://github.com/google/comprehensive-rust/issues/488" rel="noopener noreferrer">Comprehensive Rust - Track the number of times the redirect pages are visited</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/87" rel="noopener noreferrer">RustQuant - Jacobian and Hessian matrices support.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/74" rel="noopener noreferrer">RustQuant - improve Graphviz plotting of autodiff computational graphs.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/88" rel="noopener noreferrer">RustQuant - bond pricing implementation.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/21" rel="noopener noreferrer">RustQuant - implement cap/floor pricers.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/3" rel="noopener noreferrer">RustQuant - Implement Asian option pricers.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/4" rel="noopener noreferrer">RustQuant - Implement American option pricers.</a></li> <li><a href="https://github.com/MarcoIeni/release-plz/issues/676" rel="noopener noreferrer">release-plz - add ability to mark Gitea/GitHub release as draft</a></li> <li><a href="https://github.com/google/zerocopy/issues/295" rel="noopener noreferrer">zerocopy - CI step "Set toolchain version" is flaky due to network timeouts</a></li> <li><a href="https://github.com/google/zerocopy/issues/274" rel="noopener noreferrer">zerocopy - Implement traits for tuple types (and maybe other container types?)</a></li> <li><a href="https://github.com/google/zerocopy/issues/202" rel="noopener noreferrer">zerocopy - Prevent panics statically</a></li> <li><a href="https://github.com/google/zerocopy/issues/130" rel="noopener noreferrer">zerocopy - Add positive and negative trait impl tests for SIMD types</a></li> <li><a href="https://github.com/google/zerocopy/issues/7" rel="noopener noreferrer">zerocopy - Inline many trait methods (in zerocopy and in derive-generated code)</a></li> <li><a href="https://github.com/nextest-rs/datatest-stable/issues/8" rel="noopener noreferrer">datatest-stable - Fix quadratic performance with nextest</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5686" rel="noopener noreferrer">Ockam - Use a user-friendly name for the shared services to show it in the tray menu</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5685" rel="noopener noreferrer">Ockam - Rename the Port to Address and support such format</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5633" rel="noopener noreferrer">Ockam - Ockam CLI should gracefully handle invalid state when initializing</a></li> <li><a href="https://github.com/Stranger6667/css-inline/issues/214" rel="noopener noreferrer">css-inline - Update <code>cssparser</code> &amp; <code>selectors</code></a></li> <li><a href="https://github.com/Stranger6667/css-inline/issues/246" rel="noopener noreferrer">css-inline - Non-blocking stylesheet resolving</a></li> <li><a href="https://github.com/Stranger6667/css-inline/issues/13" rel="noopener noreferrer">css-inline - Optionally remove all <code>class</code> attributes</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>366 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-08-21..2023-08-28" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/115075" rel="noopener noreferrer">reassign sparc-unknown-none-elf to tier 3</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115254" rel="noopener noreferrer">wasi: round up the size for <code>aligned_alloc</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114790" rel="noopener noreferrer">allow <code>MaybeUninit</code> in input and output of inline assembly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114201" rel="noopener noreferrer">allow explicit <code>#[repr(Rust)]</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115151" rel="noopener noreferrer">fix CFI: f32 and f64 are encoded incorrectly for cross-language CFI</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113365" rel="noopener noreferrer">add <code>suggestion</code> for some <code>#[deprecated]</code> items</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114974" rel="noopener noreferrer">add an (perma-)unstable option to disable vtable vptr</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115190" rel="noopener noreferrer">add comment to the <code>push_trailing</code> function</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114397" rel="noopener noreferrer">add note when matching on tuples/ADTs containing non-exhaustive types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115100" rel="noopener noreferrer">add support for <code>ptr::write</code>s for the <code>invalid_reference_casting</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115081" rel="noopener noreferrer">allow overwriting <code>ExpnId</code> for concurrent decoding</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114774" rel="noopener noreferrer">avoid duplicate <code>large_assignments</code> lints</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115114" rel="noopener noreferrer">contents of reachable statics is reachable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115077" rel="noopener noreferrer">do not emit invalid suggestion in E0191 when spans overlap</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115139" rel="noopener noreferrer">do not forget to pass DWARF fragment information to LLVM</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115012" rel="noopener noreferrer">ensure that THIR unsafety check is done before stealing it</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114959" rel="noopener noreferrer">emit a proper diagnostic message for unstable lints passed from CLI</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115082" rel="noopener noreferrer">fix races conditions with <code>SyntaxContext</code> decoding</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115198" rel="noopener noreferrer">fix waiting on a query that panicked</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115102" rel="noopener noreferrer">improve note for the <code>invalid_reference_casting</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115158" rel="noopener noreferrer">include compiler flags when you <code>break rust;</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115296" rel="noopener noreferrer">load <code>include_bytes!</code> directly into an Lrc</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114860" rel="noopener noreferrer">make <code>Sharded</code> an <code>enum</code> and specialize it for the single thread case</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115210" rel="noopener noreferrer">make <code>rustc_on_unimplemented</code> std-agnostic for <code>alloc::rc</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115294" rel="noopener noreferrer">more precisely detect cycle errors from <code>type_of</code> on opaque</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115219" rel="noopener noreferrer">point at type parameter that introduced unmet bound instead of full HIR node</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115184" rel="noopener noreferrer">record allocation spans inside <code>force_allocation</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115147" rel="noopener noreferrer">suggest mutable borrow on read only for-loop that should be mutable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115322" rel="noopener noreferrer">tweak output of <code>to_pretty_impl_header</code> involving only anon lifetimes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114643" rel="noopener noreferrer">use the same DISubprogram for each instance of the same inlined function within a caller</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115221" rel="noopener noreferrer">walk through full path in <code>point_at_path_if_possible</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115011" rel="noopener noreferrer">warn on elided lifetimes in associated constants (<code>ELIDED_LIFETIMES_IN_ASSOCIATED_CONSTANT</code>)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114489" rel="noopener noreferrer">make RPITITs capture all in-scope lifetimes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115202" rel="noopener noreferrer">add stable for Constant in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115092" rel="noopener noreferrer">add <code>generics_of</code> to smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115084" rel="noopener noreferrer">add smir <code>predicates_of</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/115093" rel="noopener noreferrer">treat <code>StatementKind::Coverage</code> as completely opaque for SMIR purposes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115138" rel="noopener noreferrer">do not convert copies of packed projections to moves</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115005" rel="noopener noreferrer">don't do intra-pass validation on MIR shims</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115164" rel="noopener noreferrer">MIR validation: reject in-place argument/return for packed fields</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115140" rel="noopener noreferrer">disable MIR SROA optimization by default</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3036" rel="noopener noreferrer">miri: automatically start and stop josh in rustc-pull/push</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3037" rel="noopener noreferrer">miri: fix some bad regex capture group references in test normalization</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115236" rel="noopener noreferrer">stop emitting non-power-of-two vectors in (non-portable-SIMD) codegen</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113408" rel="noopener noreferrer">resolve: stop creating <code>NameBinding</code>s on every use, create them once per definition instead</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114696" rel="noopener noreferrer">fix a <code>pthread_t</code> handle leak</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115045" rel="noopener noreferrer">when terminating during unwinding, show the reason why</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115280" rel="noopener noreferrer">avoid triple-backtrace due to panic-during-cleanup</a></li> <li><a href="https://github.com/rust-lang/rust/pull/103836" rel="noopener noreferrer">add additional float constants</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114848" rel="noopener noreferrer">add ability to spawn Windows process with Proc Thread Attributes | Take 2</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114238" rel="noopener noreferrer">fix implementation of <code>Duration::checked_div</code></a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/449" rel="noopener noreferrer">hashbrown: allow serializing <code>HashMap</code>s that use a custom allocator</a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/464" rel="noopener noreferrer">hashbrown: change <code>&amp;</code> to <code>&amp;mut</code> where applicable</a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/458" rel="noopener noreferrer">hashbrown: simplify <code>Clone</code> by removing redundant guards</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1072" rel="noopener noreferrer">regex-automata: fix incorrect use of Aho-Corasick's "standard" semantics</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12560" rel="noopener noreferrer">cargo: <strong>Very</strong> preliminary MSRV resolver support</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12542" rel="noopener noreferrer">cargo: Use a more compact relative-time format</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12556" rel="noopener noreferrer">cargo: Improve TOML parse errors</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12535" rel="noopener noreferrer">cargo: add support for <code>target.'cfg(..)'.linker</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12515" rel="noopener noreferrer">cargo: config: merge lists in precedence order</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12551" rel="noopener noreferrer">cargo: create dedicated unstable flag for asymmetric-token</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12381" rel="noopener noreferrer">cargo: set MSRV for internal packages</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12574" rel="noopener noreferrer">cargo: improve deserialization errors of untagged enums</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12573" rel="noopener noreferrer">cargo: improve resolver version mismatch warning</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12568" rel="noopener noreferrer">cargo: stabilize <code>--keep-going</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12421" rel="noopener noreferrer">cargo: support dependencies from registries for artifact dependencies, take 2</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12548" rel="noopener noreferrer">cargo: use AND search when having multiple terms</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115135" rel="noopener noreferrer">rustdoc: add unstable <code>--no-html-source</code> flag</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115078" rel="noopener noreferrer">rustdoc: rename typedef to type alias</a></li> <li><a href="https://github.com/rust-lang/rust/pull/115070" rel="noopener noreferrer">rustdoc: use unicode-aware checks for redundant explicit link fastpath</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11362" rel="noopener noreferrer">clippy: new lint: <code>implied_bounds_in_impls</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11373" rel="noopener noreferrer">clippy: new lint: <code>reserve_after_initialization</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11395" rel="noopener noreferrer">clippy: <code>arithmetic_side_effects</code>: detect division by zero for <code>Wrapping</code> and <code>Saturating</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11401" rel="noopener noreferrer">clippy: <code>if_then_some_else_none</code>: look into local initializers for early returns</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11360" rel="noopener noreferrer">clippy: <code>iter_overeager_cloned</code>: detect <code>.cloned().all()</code> and <code>.cloned().any()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11387" rel="noopener noreferrer">clippy: <code>unnecessary_unwrap</code>: lint on <code>.as_ref().unwrap()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11338" rel="noopener noreferrer">clippy: allow trait alias DefIds in <code>implements_trait_with_env_from_iter</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11404" rel="noopener noreferrer">clippy: fix <code>"derivable_impls</code>: attributes are ignored"</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11379" rel="noopener noreferrer">clippy: fix <code>tuple_array_conversions</code> lint on nightly</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11385" rel="noopener noreferrer">clippy: skip <code>float_cmp</code> check if lhs is a custom type</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15517" rel="noopener noreferrer">rust-analyzer: diagnostics for 'while let' loop with label in condition</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15527" rel="noopener noreferrer">rust-analyzer: respect <code>#[allow(unused_braces)]</code></a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A fairly quiet week, with improvements exceeding a small scattering of regressions. Memory usage and artifact size held fairly steady across the week, with no regressions or improvements.</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=d4a881e1433cd10e424843353e1f939f5a798f4e&amp;end=cedbe5c715c1fa9359683c5f108bed2054ac258b&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">d4a881e..cedbe5c</a></p> <p>2 Regressions, 3 Improvements, 2 Mixed; 0 of them in rollups 108 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-29.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3455" rel="noopener noreferrer">Create a Testing sub-team</a></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114183" rel="noopener noreferrer">Stabilize <code>PATH</code> option for <code>--print KIND=PATH</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114845" rel="noopener noreferrer">Add alignment to the NPO guarantee</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3481" rel="noopener noreferrer">Special-cased performance improvement for <code>Iterator::sum</code> on <code>Range&lt;u*&gt;</code> and <code>RangeInclusive&lt;u*&gt;</code></a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3477" rel="noopener noreferrer">Cargo Check T-lang Policy</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-08-30 - 2023-09-27 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-09-05 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295207389/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Munich, DE) | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294049877" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Virtual (Albuquerque, NM, US) | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/gqdlgtyfcmbqb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/295011539" rel="noopener noreferrer"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-09-14 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732655" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-09-20 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/295057154/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295666673/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-21 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972877/" rel="noopener noreferrer"><strong>Real Time Multiplayer Game Server in Rust</strong></a></li> </ul> </li> <li>2023-09-21 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/295363887/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 33rd Edition</strong></a></li> </ul> </li> <li>2023-09-25 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294908596/" rel="noopener noreferrer"><strong>How we built the SurrealDB Python client in Rust.</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-09-06 | Tel Aviv, IL | <a href="https://www.meetup.com/rust-tlv/" rel="noopener noreferrer">Rust TLV</a><ul> <li><a href="https://www.meetup.com/rust-tlv/events/295441355/" rel="noopener noreferrer"><strong>RustTLV @ Final - September Edition</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-08-31 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/" rel="noopener noreferrer">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/294538503/" rel="noopener noreferrer"><strong>Augsburg Rust Meetup #2</strong></a></li> </ul> </li> <li>2023-09-05 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-14 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/295109905/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-09-19 | Augsburg, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/" rel="noopener noreferrer">Rust - Modern Systems Programming in Leipzig</a><ul> <li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/295504245/" rel="noopener noreferrer"><strong>Logging and tracing in Rust</strong></a></li> </ul> </li> <li>2023-09-20 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/294031975/" rel="noopener noreferrer"><strong>Rust Aarhus - Rust and Talk at Concordium</strong></a></li> </ul> </li> <li>2023-09-21 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/" rel="noopener noreferrer">Rust Bern</a><ul> <li><a href="https://www.meetup.com/rust-bern/events/295503351/" rel="noopener noreferrer"><strong>Third Rust Bern Meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-08-30 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294806394" rel="noopener noreferrer"><strong>Rust metup #39 sponsored by Fermyon</strong></a></li> </ul> </li> <li>2023-09-05 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/" rel="noopener noreferrer">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/295589114/" rel="noopener noreferrer"><strong>Rust Happy Hour</strong></a></li> </ul> </li> <li>2023-09-06 | Bellevue, WA, US | <a href="https://www.linuxfoundation.org/" rel="noopener noreferrer">The Linux Foundation</a><ul> <li><a href="https://events.linuxfoundation.org/rust-global/" rel="noopener noreferrer"><strong>Rust Global</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Albuquerque, NM, US + Virtual | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/" rel="noopener noreferrer">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/295639294" rel="noopener noreferrer"><strong>A Panel Discussion on Thriving in a Rust-Driven Workplace</strong></a></li> </ul> </li> <li>2023-09-12 | Minneapolis, MN, US | <a href="https://www.meetup.com/minneapolis-rust-meetup/" rel="noopener noreferrer">Minneapolis Rust Meetup</a><ul> <li><a href="https://www.meetup.com/minneapolis-rust-meetup/events/295744114/" rel="noopener noreferrer"><strong>Minneapolis Rust Meetup Happy Hour</strong></a></li> </ul> </li> <li>2023-09-14 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/295484105" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-09-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/295545278" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-09-21 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Music City Rust Developers</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/295587220/" rel="noopener noreferrer"><strong>Rust on the web! Get started with Leptos</strong></a></li> </ul> </li> <li>2023-09-26 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/" rel="noopener noreferrer">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/295771515" rel="noopener noreferrer"><strong>Monthly Rust group</strong></a></li> </ul> </li> <li>2023-09-27 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295466314" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-09-13 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.linkedin.com/events/7097356771584880640/" rel="noopener noreferrer"><strong>Rust Meetup 2: Lunch &amp; Learn</strong></a></li> </ul> </li> <li>2023-09-19 | Christchurch, NZ | <a href="https://www.meetup.com/christchurch-rustlang-meetup-group/" rel="noopener noreferrer">Christchurch Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/christchurch-rustlang-meetup-group/events/295602231/" rel="noopener noreferrer"><strong>Christchurch Rust meetup meeting</strong></a></li> </ul> </li> <li>2023-09-26 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/" rel="noopener noreferrer">Rust Canberra</a><ul> <li><a href="https://www.meetup.com/rust-canberra/events/295432237/" rel="noopener noreferrer"><strong>September Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>In [other languages], I could end up chasing silly bugs and waste time debugging and tracing to find that I made a typo or ran into a language quirk that gave me an unexpected nil pointer. That situation is almost non-existent in Rust, it's just me and the problem. Rust is honest and upfront about its quirks and will yell at you about it before you have a hard to find bug in production.</p> </blockquote> <p>– <a href="https://news.ycombinator.com/item?id=37107992" rel="noopener noreferrer">dannersy on Hacker News</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1463" rel="noopener noreferrer">Kyle Strand</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/165w3ea/this_week_in_rust_510/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> Electing New Project Directors freedit 2023-08-30 2023-08-30 129 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/30/electing-new-project-directors.html">Electing New Project Directors</a> </div> </article> <p>Today we are launching the process to elect new Project Directors to the Rust Foundation Board of Directors. As we begin the process, we wanted to spend some time explaining the goals and procedures we will follow. We will summarize everything here, but if you would like to you can read the <a href="https://github.com/rust-lang/leadership-council/blob/main/policies/project-director-election-process.md" rel="noopener noreferrer">official process documentation</a>.</p> <p>We ask all project members to begin working with their Leadership Council representative to nominate potential Project Directors. See the <a href="#candidate-gathering" rel="noopener noreferrer">Candidate Gathering</a> section for more details. Nominations are due by September 15, 2023.</p> <h2><a href="#what-are-project-directors" rel="noopener noreferrer"></a>What are Project Directors?</h2> <p>The Rust Foundation Board of Directors has five seats reserved for Project Directors. These Project Directors serve as representatives of the Rust project itself on the Board. Like all Directors, the Project Directors are elected by the entity they represent, which in the case of the Rust Project means they are elected by the Rust Leadership Council. Project Directors serve for a term of two years and will have staggered terms. This year we will appoint two new directors and next year we will appoint three new directors.</p> <p>The current project directors are Jane Losare-Lusby, Josh Stone, Mark Rousskov, Ryan Levick and Tyler Mandry. This year, Jane Losare-Lusby and Josh Stone will be rotating out of their roles as Project Directors, so the current elections are to fill their seats. We are grateful for the work the Jane and Josh have put in during their terms as Project Directors!</p> <p>We want to make sure the Project Directors can effectively represent the project as a whole, so we are soliciting input from the whole project. The elections process will go through two phases: Candidate Gathering and Election. Read on for more detail about how these work.</p> <h2><a href="#candidate-gathering" rel="noopener noreferrer"></a>Candidate Gathering</h2> <p>The first phase is beginning right now. In this phase, we are inviting the members of all of the top level Rust teams and their subteams to nominate people who will make good project directors. The goal is to bubble these up to the Council through each of the top-level teams. You should be hearing from your Council Representative soon with more details, but if not, feel free to reach out to them directly.</p> <p>Each team is encouraged to suggest candidates. Since we are electing two new directors, it would be ideal for teams to nominate at least two candidates. Nominees can be anyone in the project and do not have to be a member of the team who nominates them.</p> <p>The candidate gathering process will be open until September 15, at which point each team's Council Representative will share their team's nominations and reasoning with the whole Leadership Council. At this point, the Council will confirm with each of the nominees that they are willing to accept the nomination and fill the role of Project Director. Then the Council will publish the set of candidates.</p> <p>This then starts a ten day period where members of the Rust Project are invited to share feedback on the nominees with the Council. This feedback can include reasons why a nominee would make a good project director, or concerns the Council should be aware of.</p> <p>The Council will announce the set of nominees by September 19 and the ten day feedback period will last until September 29. Once this time has passed, we will move on to the election phase.</p> <h2><a href="#election" rel="noopener noreferrer"></a>Election</h2> <p>The Council will meet during the week of October 1 to complete the election process. In this meeting we will discuss each candidate and once we have done this the facilitator will propose a set of two of them to be the new Project Directors. The facilitator puts this to a vote, and if the Council unanimously agrees with the proposed pair of candidates then the process is completed. Otherwise, we will give another opportunity for council members to express their objections and we will continue with another proposal. This process repeats until we find two nominees who the Council can unanimously consent to. The Council will then confirm these nominees through an official vote.</p> <p>Once this is done, we will announce the new Project Directors. In addition, we will contact each of the nominees, including those who were not elected, to tell them a little bit more about what we saw as their strengths and opportunities for growth to help them serve better in similar roles in the future.</p> <h2><a href="#timeline" rel="noopener noreferrer"></a>Timeline</h2> <p>This process will continue through all of September and into October. Below are the key dates:</p> <ul> <li>Candidate nominations due: September 15</li> <li>Candidates published: September 19</li> <li>Feedback period: September 19 - 29</li> <li>Election meeting: Week of October 1</li> </ul> <p>After the election meeting happens, the Rust Leadership Council will announce the results and the new Project Directors will assume their responsibilities.</p> <h2><a href="#acknowledgements" rel="noopener noreferrer"></a>Acknowledgements</h2> <p>A number of people have been involved in designing and launching this election process and we wish to extend a heartfelt thanks to all of them! We'd especially like to thank the members of the Project Director Election Proposal Committee: Jane Losare-Lusby, Eric Holk, and Ryan Levick. Additionally, many members of the Rust Community have provided feedback and thoughtful discussions that led to significant improvements to the process. We are grateful for all of your contributions.</p> Change in Guidance on Committing Lockfiles freedit 2023-08-29 2023-08-29 128 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html">Change in Guidance on Committing Lockfiles</a> </div> </article> <p>For years, the Cargo team has encouraged Rust developers to <a href="https://doc.rust-lang.org/1.71.1/cargo/faq.html#why-do-binaries-have-cargolock-in-version-control-but-not-libraries" rel="noopener noreferrer">commit their <code>Cargo.lock</code> file for packages with binaries but not libraries</a>. We now recommend people <a href="https://doc.rust-lang.org/nightly/cargo/faq.html#why-have-cargolock-in-version-control" rel="noopener noreferrer">do what is best for their project</a>. To help people make a decision, we do include some considerations and suggest committing <code>Cargo.lock</code> as a starting point in their decision making. To align with that starting point, <code>cargo new</code> will no longer ignore <code>Cargo.lock</code> for libraries as of nightly-2023-08-24. Regardless of what decision projects make, we encourage regular <a href="https://doc.rust-lang.org/nightly/cargo/guide/continuous-integration.html#verifying-latest-dependencies" rel="noopener noreferrer">testing against their latest dependencies</a>.</p> <h2><a href="#background" rel="noopener noreferrer"></a>Background</h2> <p>The old guidelines ensured libraries tested their latest dependencies which helped us keep quality high within Rust's package ecosystem by ensuring issues, especially backwards compatibility issues, were quickly found and addressed. While this extra testing was not exhaustive, We believe it helped foster a culture of quality in this nascent ecosystem.</p> <p>This hasn't been without its downsides though. This has removed an important piece of history from code bases, making bisecting to find the root cause of a bug harder for maintainers. For contributors, especially newer ones, this is another potential source of confusion and frustration from an unreliable CI whenever a dependency is yanked or a new release contains a bug.</p> <h2><a href="#why-the-change" rel="noopener noreferrer"></a>Why the change</h2> <p>A lot as changed for Rust since the guideline was written. Rust has shifted from being a language for early adopters to being more mainstream, and we need to be mindful of the on-boarding experience of these new-to-Rust developers. Also with this wider adoption, it isn't always practical to assume everyone is using the latest Rust release and the community has been working through how to manage support for minimum-supported Rust versions (MSRV). Part of this is maintaining an instance of your dependency tree that can build with your MSRV. A lockfile is an appropriate way to pin versions for your project so you can validate your MSRV but we found people were instead putting upperbounds on their version requirements due to the strength of our prior guideline despite <a href="https://doc.rust-lang.org/nightly/cargo/reference/specifying-dependencies.html#multiple-requirements" rel="noopener noreferrer">likely being a worse solution</a>.</p> <p>The wider software development ecosystem has also changed a lot in the intervening time. CI has become easier to setup and maintain. We also have products like <a href="https://docs.github.com/en/code-security/dependabot/working-with-dependabot" rel="noopener noreferrer">Dependabot</a> and <a href="https://docs.renovatebot.com/" rel="noopener noreferrer">Renovate</a>. This has opened up options besides having version control ignore <code>Cargo.lock</code> to test newer dependencies. Developers could have a scheduled job that first runs <code>cargo update</code>. They could also have bots regularly update their <code>Cargo.lock</code> in PRs, ensuring they pass CI before being merged.</p> <p>Since there isn't a universal answer to these situations, we felt it was best to leave the choice to developers and give them information they need in making a decision. For feedback on this policy change, see <a href="https://github.com/rust-lang/cargo/issues/8728" rel="noopener noreferrer">rust-lang/cargo#8728</a>. You can also reach out the the Cargo team more generally on <a href="https://rust-lang.zulipchat.com/#narrow/stream/246057-t-cargo" rel="noopener noreferrer">Zulip</a>.</p> Announcing Rust 1.72.0 freedit 2023-08-24 2023-08-24 126 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/24/Rust-1.72.0.html">Announcing Rust 1.72.0</a> </div> </article> <p>The Rust team is happy to announce a new version of Rust, 1.72.0. Rust is a programming language empowering everyone to build reliable and efficient software.</p> <p>If you have a previous version of Rust installed via rustup, you can get 1.72.0 with:</p> <pre><code>rustup update stable </code></pre> <p>If you don't have it already, you can <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer">get <code>rustup</code></a> from the appropriate page on our website, and check out the <a href="https://github.com/rust-lang/rust/releases/tag/1.72.0" rel="noopener noreferrer">detailed release notes for 1.72.0</a> on GitHub.</p> <p>If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (<code>rustup default beta</code>) or the nightly channel (<code>rustup default nightly</code>). Please <a href="https://github.com/rust-lang/rust/issues/new/choose" rel="noopener noreferrer">report</a> any bugs you might come across!</p> <h2><a href="#whats-in-1720-stable" rel="noopener noreferrer"></a>What's in 1.72.0 stable</h2> <h3><a href="#rust-reports-potentially-useful-cfg-disabled-items-in-errors" rel="noopener noreferrer"></a>Rust reports potentially useful <code>cfg</code>-disabled items in errors</h3> <p>You can conditionally enable Rust code using <code>cfg</code>, such as to provide certain functions only with certain crate features, or only on particular platforms. Previously, items disabled in this way would be effectively invisible to the compiler. Now, though, the compiler will remember the name and <code>cfg</code> conditions of those items, so it can report (for example) if a function you tried to call is unavailable because you need to enable a crate feature.</p> <pre><code> Compiling my-project v0.1.0 (/tmp/my-project) error[E0432]: unresolved import `rustix::io_uring` --&gt; src/main.rs:1:5 | 1 | use rustix::io_uring; | ^^^^^^^^^^^^^^^^ no `io_uring` in the root | note: found an item that was configured out --&gt; /home/username/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rustix-0.38.8/src/lib.rs:213:9 | 213 | pub mod io_uring; | ^^^^^^^^ = note: the item is gated behind the `io_uring` feature For more information about this error, try `rustc --explain E0432`. error: could not compile `my-project` (bin "my-project") due to previous error </code></pre> <h3><a href="#const-evaluation-time-is-now-unlimited" rel="noopener noreferrer"></a>Const evaluation time is now unlimited</h3> <p>To prevent user-provided const evaluation from getting into a compile-time infinite loop or otherwise taking unbounded time at compile time, Rust previously limited the maximum number of <em>statements</em> run as part of any given constant evaluation. However, especially creative Rust code could hit these limits and produce a compiler error. Worse, whether code hit the limit could vary wildly based on libraries invoked by the user; if a library you invoked split a statement into two within one of its functions, your code could then fail to compile.</p> <p>Now, you can do an unlimited amount of const evaluation at compile time. To avoid having long compilations without feedback, the compiler will always emit a message after your compile-time code has been running for a while, and repeat that message after a period that doubles each time. By default, the compiler will also emit a deny-by-default lint (<code>const_eval_long_running</code>) after a large number of steps to catch infinite loops, but you can <code>allow(const_eval_long_running)</code> to permit especially long const evaluation.</p> <h3><a href="#uplifted-lints-from-clippy" rel="noopener noreferrer"></a>Uplifted lints from Clippy</h3> <p>Several lints from Clippy have been pulled into <code>rustc</code>:</p> <ul> <li> <p><a href="https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#undropped_manually_drops" rel="noopener noreferrer"><code>clippy::undropped_manually_drops</code></a> to <a href="https://doc.rust-lang.org/1.72.0/rustc/lints/listing/deny-by-default.html#undropped-manually-drops" rel="noopener noreferrer"><code>undropped_manually_drops</code></a> (deny)</p> <ul> <li><code>ManuallyDrop</code> does not drop its inner value, so calling <code>std::mem::drop</code> on it does nothing. Instead, the lint will suggest <code>ManuallyDrop::into_inner</code> first, or you may use the unsafe <code>ManuallyDrop::drop</code> to run the destructor in-place. This lint is denied by default.</li> </ul> </li> <li> <p><a href="https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#invalid_utf8_in_unchecked" rel="noopener noreferrer"><code>clippy::invalid_utf8_in_unchecked</code></a> to <a href="https://doc.rust-lang.org/1.72.0/rustc/lints/listing/deny-by-default.html#invalid-from-utf8-unchecked" rel="noopener noreferrer"><code>invalid_from_utf8_unchecked</code></a> (deny) and <a href="https://doc.rust-lang.org/1.72.0/rustc/lints/listing/warn-by-default.html#invalid-from-utf8" rel="noopener noreferrer"><code>invalid_from_utf8</code></a> (warn)</p> <ul> <li>The first checks for calls to <code>std::str::from_utf8_unchecked</code> and <code>std::str::from_utf8_unchecked_mut</code> with an invalid UTF-8 literal, which violates their safety pre-conditions, resulting in undefined behavior. This lint is denied by default.</li> <li>The second checks for calls to <code>std::str::from_utf8</code> and <code>std::str::from_utf8_mut</code> with an invalid UTF-8 literal, which will always return an error. This lint is a warning by default.</li> </ul> </li> <li> <p><a href="https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#cmp_nan" rel="noopener noreferrer"><code>clippy::cmp_nan</code></a> to <a href="https://doc.rust-lang.org/1.72.0/rustc/lints/listing/warn-by-default.html#invalid-nan-comparisons" rel="noopener noreferrer"><code>invalid_nan_comparisons</code></a> (warn)</p> <ul> <li>This checks for comparisons with <code>f32::NAN</code> or <code>f64::NAN</code> as one of the operands. NaN does not compare meaningfully to anything – not even itself – so those comparisons are always false. This lint is a warning by default, and will suggest calling the <code>is_nan()</code> method instead.</li> </ul> </li> <li> <p><a href="https://rust-lang.github.io/rust-clippy/rust-1.71.0/index.html#cast_ref_to_mut" rel="noopener noreferrer"><code>clippy::cast_ref_to_mut</code></a> to <a href="https://doc.rust-lang.org/1.72.0/rustc/lints/listing/allowed-by-default.html#invalid-reference-casting" rel="noopener noreferrer"><code>invalid_reference_casting</code></a> (allow)</p> <ul> <li>This checks for casts of <code>&amp;T</code> to <code>&amp;mut T</code> without using interior mutability, which is immediate undefined behavior, even if the reference is unused. This lint is currently allowed by default due to potential false positives, but it is planned to be denied by default in 1.73 after implementation improvements.</li> </ul> </li> </ul> <h3><a href="#stabilized-apis" rel="noopener noreferrer"></a>Stabilized APIs</h3> <ul> <li><a href="https://doc.rust-lang.org/stable/std/sync/mpsc/struct.Sender.html#impl-Sync-for-Sender%3CT%3E" rel="noopener noreferrer"><code>impl&lt;T: Send&gt; Sync for mpsc::Sender&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.str.html#impl-TryFrom%3C%26'a+OsStr%3E-for-%26'a+str" rel="noopener noreferrer"><code>impl TryFrom&lt;&amp;OsStr&gt; for &amp;str</code></a></li> <li><a href="https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.leak" rel="noopener noreferrer"><code>String::leak</code></a></li> </ul> <p>These APIs are now stable in const contexts:</p> <ul> <li><a href="https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.from_bytes_with_nul" rel="noopener noreferrer"><code>CStr::from_bytes_with_nul</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_bytes" rel="noopener noreferrer"><code>CStr::to_bytes</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_bytes_with_nul" rel="noopener noreferrer"><code>CStr::to_bytes_with_nul</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.to_str" rel="noopener noreferrer"><code>CStr::to_str</code></a></li> </ul> <h3><a href="#other-changes" rel="noopener noreferrer"></a>Other changes</h3> <p>Check out everything that changed in <a href="https://github.com/rust-lang/rust/releases/tag/1.72.0" rel="noopener noreferrer">Rust</a>, <a href="https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-172-2023-08-24" rel="noopener noreferrer">Cargo</a>, and <a href="https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-172" rel="noopener noreferrer">Clippy</a>.</p> <h3><a href="#future-windows-compatibility" rel="noopener noreferrer"></a>Future Windows compatibility</h3> <p>In a future release we're planning to increase the minimum supported Windows version to 10. The accepted proposal in compiler <a href="https://github.com/rust-lang/compiler-team/issues/651" rel="noopener noreferrer">MCP 651</a> is that Rust 1.75 will be the last to officially support Windows 7, 8, and 8.1. When Rust 1.76 is released in February 2024, only Windows 10 and later will be supported as tier-1 targets. This change will apply both as a host compiler and as a compilation target.</p> <h2><a href="#contributors-to-1720" rel="noopener noreferrer"></a>Contributors to 1.72.0</h2> <p>Many people came together to create Rust 1.72.0. We couldn't have done it without all of you. <a href="https://thanks.rust-lang.org/rust/1.72.0/" rel="noopener noreferrer">Thanks!</a></p> This Week in Rust 509 freedit 2023-08-23 2023-08-23 125 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/08/23/this-week-in-rust-509/">This Week in Rust 509</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://arsmilitaris.com/#this-week-in-ars-militaris-vii" rel="noopener noreferrer">This Week in Ars Militaris VII</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://github.com/mrsarm/rust-actix-contrib-logger" rel="noopener noreferrer">actix-contrib-logger v0.1.0: drop-in replacement for the Actix Web HTTP Logger middleware</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://youtu.be/djpujv8M7w8" rel="noopener noreferrer">Rust 1.71.1</a></li> <li><a href="https://kobzol.github.io/rust/rustc/2023/08/18/rustc-benchmark-suite.html" rel="noopener noreferrer">Exploring the Rust compiler benchmark suite</a></li> <li><a href="https://internals.rust-lang.org/t/pre-rfc-sandboxed-deterministic-reproducible-efficient-wasm-compilation-of-proc-macros/19359" rel="noopener noreferrer">Pre-RFC: Sandboxed, deterministic, reproducible, efficient Wasm compilation of proc macros</a></li> <li><a href="https://www.marcoieni.com/2023/08/rustship-a-new-rust-podcast/" rel="noopener noreferrer">RustShip: a new Rust podcast</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://www.youtube.com/watch?v=Y-LTWNciEks" rel="noopener noreferrer">Delightful command-line utilities with Rust</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-analog-temperature-sensing-using-the-adc" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: Analog Temperature Sensing using the ADC</a></li> <li><a href="https://blog.fponzi.me/2023-08-13-bare-metal-space-invaders.html" rel="noopener noreferrer">Bare Metal Space Invaders</a></li> <li>[series] <a href="https://heikoseeberger.de/2023-08-18-dist-tracing-2/" rel="noopener noreferrer">Distributed Tracing in Rust, Episode 2: tracing basics</a></li> <li><a href="https://www.ockam.io/blog/basic_web_app" rel="noopener noreferrer">Secure database access using Ockam</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://arxiv.org/abs/2308.05177" rel="noopener noreferrer">Fixing Rust Compilation Errors using LLMs</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://www.shuttle.rs/launchpad/issues/2023-11-08-issue-06-CRUD-Postgres" rel="noopener noreferrer">Shuttle Launchpad #6: A little CRUD</a></li> <li>[video]<a href="https://www.youtube.com/watch?v=wpx9qhKEuP8" rel="noopener noreferrer">I failed to build multiplayer pong in Rust</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p><em>No crate was selected for CotW.</em></p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/google/zerocopy/issues/225" rel="noopener noreferrer">ZeroCopy - CI step "Set toolchain version" can fail without stopping CI job&nbsp;1</a></li> <li><a href="https://github.com/google/zerocopy/issues/202" rel="noopener noreferrer">ZeroCopy - Prevent panics statically&nbsp;1</a></li> <li><a href="https://github.com/ron-rs/ron/pull/438" rel="noopener noreferrer">RON - Rusty byte strings in RON, deprecate base64 (byte) strings</a></li> <li><a href="https://github.com/meilisearch/heed/issues/196" rel="noopener noreferrer">heed - create guides on ways to use heed</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5686" rel="noopener noreferrer">Ockam - Use a user-friendly name for the shared services to show it in the tray menu</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5685" rel="noopener noreferrer">Ockam - In the&nbsp;<code>Share a service</code>&nbsp;window, the&nbsp;<code>Port</code>&nbsp;should be renamed to&nbsp;<code>Address</code>&nbsp;and support such format</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5684" rel="noopener noreferrer">Ockam - In the&nbsp;<code>Share a service</code>&nbsp;window, the&nbsp;<code>Name</code>&nbsp;attribute should not have the&nbsp;<code>/service/</code>&nbsp;prefix</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1998" rel="noopener noreferrer">Hyperswitch - remove unused function for merchant connector account</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A week with very few real regressions and some good improvements through work done by @cjgillot who found a few spots where the compiler was doing unnecessary work.</p> <p>Triage done by <strong>@rylev</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=e8459109bbb440764c1c877032189a27b9e76c4e&amp;end=d4a881e1433cd10e424843353e1f939f5a798f4e&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">e845910..d4a881</a></p> <p><strong>Summary</strong>:</p> <table> <thead> <tr> <th align="center">(instructions:u)</th> <th align="center">mean</th> <th align="center">range</th> <th align="center">count</th> </tr> </thead> <tbody> <tr> <td align="center">Regressions ❌ <br> (primary)</td> <td align="center">1.4%</td> <td align="center">[0.5%, 2.6%]</td> <td align="center">13</td> </tr> <tr> <td align="center">Regressions ❌ <br> (secondary)</td> <td align="center">0.6%</td> <td align="center">[0.3%, 0.8%]</td> <td align="center">8</td> </tr> <tr> <td align="center">Improvements ✅ <br> (primary)</td> <td align="center">-0.7%</td> <td align="center">[-1.4%, -0.3%]</td> <td align="center">59</td> </tr> <tr> <td align="center">Improvements ✅ <br> (secondary)</td> <td align="center">-0.8%</td> <td align="center">[-1.3%, -0.3%]</td> <td align="center">38</td> </tr> <tr> <td align="center">All ❌✅ (primary)</td> <td align="center">-0.3%</td> <td align="center">[-1.4%, 2.6%]</td> <td align="center">72</td> </tr> </tbody> </table> <p>3 Regressions, 2 Improvements, 2 Mixed; 2 of them in rollups 28 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-22.md" rel="noopener noreferrer">Full report here</a> </p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/111090" rel="noopener noreferrer">Tracking Issue for const <code>[u8]::is_ascii</code> (<code>const_slice_is_ascii</code>)</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114041" rel="noopener noreferrer">Implement <code>From&lt;[T; N]&gt;</code> for <code>Rc&lt;[T]&gt;</code> and <code>Arc&lt;[T]&gt;</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/87920" rel="noopener noreferrer">Tracking Issue for <code>Saturating</code> type</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111278" rel="noopener noreferrer">Implement <code>From&lt;{&amp;,&amp;mut} [T; N]</code>&gt; for <code>Vec&lt;T&gt;</code> where <code>T: Clone</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/111544" rel="noopener noreferrer">Tracking Issue for os_str_bytes</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/91946" rel="noopener noreferrer">Tracking Issue for <code>io::Error::other</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114065" rel="noopener noreferrer"><code>impl TryFrom&lt;char&gt; for u16</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114855" rel="noopener noreferrer">rustdoc: show inner enum and struct in type definition for concrete type</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113126" rel="noopener noreferrer">Replace old private-in-public diagnostic with type privacy lints</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/106418" rel="noopener noreferrer">Implement <code>PartialOrd</code> and <code>Ord</code> for <code>Discriminant</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/110288" rel="noopener noreferrer">stop adding dropck outlives requirements for <code>[T; 0]</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114795" rel="noopener noreferrer">make Cell::swap panic if the Cells partially overlap</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113859" rel="noopener noreferrer">Add note that Vec::as_mut_ptr() does not materialize a reference to the internal buffer</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/98461" rel="noopener noreferrer">Document lack of panic safety guarantees of <code>Clone::clone_from</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114379" rel="noopener noreferrer">Command: also print removed env vars</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113748" rel="noopener noreferrer">impl Step for IP addresses</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3476" rel="noopener noreferrer">RFC: <code>expose-fn-type</code></a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-08-23 - 2023-09-20 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-08-23 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/294718621/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 32nd Edition</strong></a></li> </ul> </li> <li>2023-08-24 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295250677/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-08-24 | Virtual (Ciudad de México, MX) | <a href="https://www.meetup.com/rust-mx/" rel="noopener noreferrer">Rust MX</a><ul> <li><a href="https://www.meetup.com/rust-mx/events/295545343" rel="noopener noreferrer"><strong>Macros Procedurales y Metalenguajes en Rust</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295207389/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Munich, DE) | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294049877" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-09-07 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfcmbkb/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Virtual (Albuquerque, NM, US) | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/gqdlgtyfcmbqb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/" rel="noopener noreferrer">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/295011539" rel="noopener noreferrer"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-09-14 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732655" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-09-06 | Tel Aviv, IL | <a href="https://www.meetup.com/rust-tlv/" rel="noopener noreferrer">Rust TLV</a><ul> <li><a href="https://www.meetup.com/rust-tlv/events/295441355/" rel="noopener noreferrer"><strong>RustTLV @ Final - September Edition</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-08-23 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/" rel="noopener noreferrer">Rust London User Group</a><ul> <li><a href="https://www.meetup.com/rust-london-user-group/events/295338396/" rel="noopener noreferrer"><strong>LDN Talks Aug 2023: Rust London x RNL (The next Frontier in App Development)</strong></a></li> </ul> </li> <li>2023-08-24 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/293950871/" rel="noopener noreferrer"><strong>Rust Aarhus Hack and Learn at Trifork</strong></a></li> </ul> </li> <li>2023-08-31 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/" rel="noopener noreferrer">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/294538503/" rel="noopener noreferrer"><strong>Augsburg Rust Meetup #2</strong></a></li> </ul> </li> <li>2023-09-05 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-21 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/" rel="noopener noreferrer">Rust Bern</a><ul> <li><a href="https://www.meetup.com/rust-bern/events/295503351/" rel="noopener noreferrer"><strong>Third Rust Bern Meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-08-23 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295008514" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-08-24 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295107743/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-30 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294806394" rel="noopener noreferrer"><strong>Rust metup #39 sponsored by Fermyon</strong></a></li> </ul> </li> <li>2023-09-06 | Bellevue, WA, US | <a href="https://www.linuxfoundation.org/" rel="noopener noreferrer">The Linux Foundation</a><ul> <li><a href="https://events.linuxfoundation.org/rust-global/" rel="noopener noreferrer"><strong>Rust Global</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Albuquerque, NM, US + Virtual | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-19 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/295545278" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-08-24 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/" rel="noopener noreferrer">Rust Brisbane</a><ul> <li><a href="https://www.meetup.com/rust-brisbane/events/295415680/" rel="noopener noreferrer"><strong>August Meetup</strong></a></li> </ul> </li> <li>2023-09-13 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.linkedin.com/events/7097356771584880640/" rel="noopener noreferrer"><strong>Rust Meetup 2: Lunch &amp; Learn</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/15zpq03/this_week_in_rust_509/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 508 freedit 2023-08-16 2023-08-16 123 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/08/16/this-week-in-rust-508/">This Week in Rust 508</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#foundation" rel="noopener noreferrer">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/announcing-the-rust-foundation-s-2023-fellows/" rel="noopener noreferrer">Announcing the Rust Foundation’s 2023 Fellows</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://arsmilitaris.com/#this-week-in-ars-militaris-vi" rel="noopener noreferrer">This Week in Ars Militaris VI</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/08/14/changelog-194.html" rel="noopener noreferrer">rust-analyzer changelog #194</a></li> <li><a href="https://github.com/cargo-bins/cargo-binstall/releases/tag/v1.2.0" rel="noopener noreferrer">cargo-binstall v1.2.0</a></li> <li><a href="https://www.sea-ql.org/blog/2023-08-12-announcing-seaorm-0.12/" rel="noopener noreferrer">Announcing SeaORM 0.12</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://claytonwramsey.github.io/2023/08/14/dumpster.html" rel="noopener noreferrer">I built a garbage collector for a language that doesn’t need one</a></li> <li><a href="https://mainmatter.com/blog/2023/08/14/the-case-for-rust-on-the-web/" rel="noopener noreferrer">The Case for Rust on the Web</a></li> <li><a href="https://ibraheem.ca/posts/too-many-web-servers/" rel="noopener noreferrer">Learning Async Rust With Entirely Too Many Web Servers</a></li> <li><a href="https://sanjuvi.github.io/Blog/posts/Rust-Type-System-Part-2/" rel="noopener noreferrer">fn main( ) - Rust Type System: P2</a></li> <li><a href="https://ferrous-systems.com/blog/bindgen/" rel="noopener noreferrer">Our latest adventures with bindgen</a></li> <li><a href="https://hacks.mozilla.org/2023/08/autogenerating-rust-js-bindings-with-uniffi/" rel="noopener noreferrer">Autogenerating Rust-JS bindings with UniFFI</a></li> <li><a href="https://corrode.dev/blog/illegal-state/" rel="noopener noreferrer">Corrode Rust Consulting</a></li> <li><a href="https://loige.co/why-you-should-consider-rust-for-your-lambdas" rel="noopener noreferrer">Why you should consider Rust for your Lambdas</a></li> <li><a href="https://timclicks.dev/explaining-rusts-deref-trait/" rel="noopener noreferrer">Explaining Rust’s Deref trait</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li>[DE] <a href="https://www.heise.de/news/Programmiersprache-Rust-gewinnt-im-Arbeitsumfeld-an-Bedeutung-9239296.html" rel="noopener noreferrer">Programmiersprache Rust gewinnt im Arbeitsumfeld an Bedeutung</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/luca-palmieri-web-ecosystem/" rel="noopener noreferrer">Adopting Rust: present and future of the Rust web ecosystem, with Luca Palmieri</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=hrsoyBqE--A" rel="noopener noreferrer">Physics in Bevy: How to get Rapier in your games</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=RydzFK11-bE" rel="noopener noreferrer">Open the Rust compiler's puzzle book - weird-exprs.rs</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=vNz-iKRhneA" rel="noopener noreferrer">Causal inference in Rust - deep_causality | Crate of the Week 507</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=BbQzRdxekao" rel="noopener noreferrer">Dioxus 0.4: Server Functions</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=WB7qojkkVVU" rel="noopener noreferrer">history.txt vs sqlite with Atuin</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=v4EF3d2_QTg" rel="noopener noreferrer">The Database of Four Dimensional Reality - SpacetimeDB</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=OoluUyC3KEM" rel="noopener noreferrer">noisy material shaders in bevy</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=vL2nB1VwX1M" rel="noopener noreferrer">I spent six months rewriting everything in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=iyzW8w-2s00" rel="noopener noreferrer">Game Dev Log 4 - Schedules</a> (<a href="https://youtube.com/playlist?list=PL4iN-WluNkURv_EbC3b1vFM3hH-pGEc2U" rel="noopener noreferrer">Entire Series</a>)</li> <li>[audio] <a href="https://podcasts.google.com/feed/aHR0cHM6Ly9mZWVkcy5zb3VuZGNsb3VkLmNvbS91c2Vycy9zb3VuZGNsb3VkOnVzZXJzOjk5NDM2MzU0OS9zb3VuZHMucnNz/episode/dGFnOnNvdW5kY2xvdWQsMjAxMDp0cmFja3MvMTU5MDkyMDQ4Mw" rel="noopener noreferrer">Episode 092 - Moving to Rust in the Age of AI with Noah Gift</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://crates.io/crates/agree" rel="noopener noreferrer">agree</a>, a command-line tool implementing Shamir's Secret Sharing.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1225" rel="noopener noreferrer">Alexander Weber</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/1357" rel="noopener noreferrer">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1943" rel="noopener noreferrer">Hyperswitch - deserialization error exposes sensitive values in the logs</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/917" rel="noopener noreferrer">Hyperswitch - move redis key creation to a common module</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5631" rel="noopener noreferrer">Ockam - Check key/secret size before casting as a fixed-length array</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5633" rel="noopener noreferrer">Ockam - Ockam CLI should gracefully handle invalid state when initializing</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5600" rel="noopener noreferrer">Ockam - Use TCP Outlets' "worker address" as identifiers in the Ockam App's tray menu items</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>344 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-08-07..2023-08-14" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/113658" rel="noopener noreferrer">add csky-unknown-linux-gnuabiv2 target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113480" rel="noopener noreferrer">add aarch64-unknown-teeos target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111891" rel="noopener noreferrer"><code>riscv-interrupt-{m,s}</code> calling conventions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114495" rel="noopener noreferrer">set <code>max_atomic_width</code> for AVR to 16</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114496" rel="noopener noreferrer">set <code>max_atomic_width</code> for sparc-unknown-linux-gnu to 32</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113593" rel="noopener noreferrer">CFI: fix error compiling core with LLVM CFI enabled</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114359" rel="noopener noreferrer">std: Replace condv while loop with <code>cvar.wait_while</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114678" rel="noopener noreferrer"><code>Expr::can_have_side_effects()</code> is incorrect for struct/enum/array/tuple literals</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114339" rel="noopener noreferrer"><code>rustc_data_structures</code>: <code>base_n</code> perf: remove unnecessary utf8 check</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114614" rel="noopener noreferrer"><code>offset_of</code>: guard against invalid use (with unsized fields)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114439" rel="noopener noreferrer">add hotness data to LLVM remarks</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114507" rel="noopener noreferrer">add suggestion to quote inlined format argument as string literal</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114069" rel="noopener noreferrer">allow using external builds of the compiler-rt profile lib</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114628" rel="noopener noreferrer">allowing re-implementation of <code>mir_drops_elaborated</code> query</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114757" rel="noopener noreferrer">also consider <code>mem::transmute</code> with the <code>invalid_reference_casting</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114376" rel="noopener noreferrer">avoid exporting <code>__rust_alloc_error_handler_should_panic</code> more than once</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114278" rel="noopener noreferrer">better error handling for <code>rust.codegen-backends</code> on deserialization</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114196" rel="noopener noreferrer">bubble up nested goals from equation in <code>predicates_for_object_candidate</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112842" rel="noopener noreferrer">check for non-defining uses of RPIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114587" rel="noopener noreferrer">convert Const to Allocation in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113464" rel="noopener noreferrer">core/any: remove Provider trait, rename Demand to Request</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114545" rel="noopener noreferrer">correctly lower <code>impl const</code> to bind to host effect param</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114703" rel="noopener noreferrer">cover ParamConst in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114005" rel="noopener noreferrer">coverage: don't convert filename/symbol strings to <code>CString</code> for FFI</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114354" rel="noopener noreferrer">coverage: store BCB counter info externally, not directly in the BCB graph</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114469" rel="noopener noreferrer">detect method not found on arbitrary self type with different mutability</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114474" rel="noopener noreferrer">detect missing <code>;</code> that parses as function call</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114670" rel="noopener noreferrer">don't use <code>type_of</code> to determine if item has intrinsic shim</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114692" rel="noopener noreferrer">downgrade <code>internal_features</code> to warn</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114752" rel="noopener noreferrer">fixed <code>*const [type error] does not implement the Copy trait</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114550" rel="noopener noreferrer">generate better function argument names in <code>global_allocator</code> expansion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114615" rel="noopener noreferrer">interpret: remove incomplete protection against invalid where clauses</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114542" rel="noopener noreferrer">interpret: use ConstPropNonsense for more const-prop induced issues</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114556" rel="noopener noreferrer">issue numbers are enforced on active features; remove FIXME</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114510" rel="noopener noreferrer">llvm-wrapper: adapt for LLVM API changes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114745" rel="noopener noreferrer">make Const more useful in smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113902" rel="noopener noreferrer">make <code>unconditional_recursion</code> warning detect recursive drops</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114694" rel="noopener noreferrer">make the provisional cache slightly less broken</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114602" rel="noopener noreferrer">map RPIT duplicated lifetimes back to fn captured lifetimes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114548" rel="noopener noreferrer">migrate a trait selection error to use diagnostic translation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114457" rel="noopener noreferrer">normalize in <code>trait_ref_is_knowable</code> in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109356" rel="noopener noreferrer">only check outlives goals on impl compared to trait</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114648" rel="noopener noreferrer">only resolve target type in <code>try_coerce</code> in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113939" rel="noopener noreferrer">open pidfd in child process and send to the parent via <code>SOCK_SEQPACKET+CMSG</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114667" rel="noopener noreferrer">record binder for bare trait object in LifetimeCollectVisitor</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114781" rel="noopener noreferrer">remove constness from <code>ImplSource::Param</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114684" rel="noopener noreferrer">remove redundant calls to <code>resolve_vars_with_obligations</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114596" rel="noopener noreferrer">rename method in <code>opt-dist</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114710" rel="noopener noreferrer">respect <code>#[expect]</code> the same way <code>#[allow]</code> is with the <code>dead_code</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114470" rel="noopener noreferrer">restrict linker version script of proc-macro crates to just its two symbols</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114787" rel="noopener noreferrer">select obligations before processing wf obligation in <code>compare_method_predicate_entailment</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114520" rel="noopener noreferrer">simplify handling of valtrees for unsized types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114566" rel="noopener noreferrer">store the laziness of type aliases in their <code>DefKind</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114594" rel="noopener noreferrer">structurally normalize weak and inherent in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114549" rel="noopener noreferrer">style fix and refactor on resolve diagnostics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/88936" rel="noopener noreferrer">suggest using <code>Arc</code> on <code>!Send</code>/<code>!Sync</code> types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114742" rel="noopener noreferrer">TAITs do not constrain generic params</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114629" rel="noopener noreferrer">tests: uncomment now valid GAT code behind FIXME</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114662" rel="noopener noreferrer">unlock trailing where-clauses for lazy type aliases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114344" rel="noopener noreferrer">use the correct <code>llvm-profdata</code> binary in <code>opt-dist</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114413" rel="noopener noreferrer">warn when <code>#[macro_export]</code> is applied on decl macros</a></li> <li><a href="https://github.com/rust-lang/chalk/pull/800" rel="noopener noreferrer">push DiscriminantKind implementation fact unconditionally</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114485" rel="noopener noreferrer">add trait decls to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114599" rel="noopener noreferrer">add impl trait declarations to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114562" rel="noopener noreferrer">stabilize <code>abi_thiscall</code></a></li> <li><a href="https://github.com/rust-lang/miri/pull/3025" rel="noopener noreferrer">miri: add checked float-to-int helper function</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3023" rel="noopener noreferrer">miri: add gamma function shims</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3024" rel="noopener noreferrer">miri: llvm.prefetch is not a math function</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3022" rel="noopener noreferrer">miri: replace AsAny hack by trait upcasting :)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114720" rel="noopener noreferrer">tell LLVM that the negation in <code>&lt;*const T&gt;::sub</code> cannot overflow</a></li> <li><a href="https://github.com/rust-lang/rust/pull/98935" rel="noopener noreferrer">implement <code>Option::take_if</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114257" rel="noopener noreferrer">avoid using <code>ptr::Unique</code> in <code>LinkedList</code> code</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114641" rel="noopener noreferrer">rename copying <code>ascii::Char</code> methods from <code>as_</code> to <code>to_</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114132" rel="noopener noreferrer">better <code>Debug</code> for <code>Vars</code> and <code>VarsOs</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/106425" rel="noopener noreferrer">make ExitStatus implement Default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/94455" rel="noopener noreferrer">partially stabilize <code>int_roundings</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/94667" rel="noopener noreferrer">add <code>Iterator::map_windows</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114382" rel="noopener noreferrer">add a new <code>compare_bytes</code> intrinsic instead of calling <code>memcmp</code> directly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/99747" rel="noopener noreferrer">add gamma function to <code>f32</code> and <code>f64</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12469" rel="noopener noreferrer">cargo-credential: reset stdin &amp; stdout to the Console</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/11905" rel="noopener noreferrer">cargo: Make <code>--help</code> easier to browse</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12488" rel="noopener noreferrer">cargo: enable ansi color only in terminal</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12332" rel="noopener noreferrer">cargo: bail out an error when using cargo: in custom build script</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12454" rel="noopener noreferrer">cargo: fix cargo remove incorrectly removing used patches</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12468" rel="noopener noreferrer">cargo: fix panic when enabling http.debug for certain strings</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12447" rel="noopener noreferrer">cargo: fix: preserve jobserver file descriptors on rustc invocation to get <code>TargetInfo</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12463" rel="noopener noreferrer">cargo: prompt the use of <code>--nocapture</code> flag if <code>cargo test</code> process is terminated via a signal</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5677" rel="noopener noreferrer">rustfmt: don't flatten blocks that have labels</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5872" rel="noopener noreferrer">rustfmt: enable rustfmt to compile when using the <code>generic-simd</code> feature</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5883" rel="noopener noreferrer">rustfmt: improve formatting of empty <code>macro_rules!</code> definitions</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5846" rel="noopener noreferrer">rustfmt: improve the <code>--file-lines</code> help</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5845" rel="noopener noreferrer">rustfmt: refactor ABI formatting</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11289" rel="noopener noreferrer">clippy: <code>iter_overeager_cloned</code>: detect <code>.cloned().filter()</code> and <code>.cloned().find()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11318" rel="noopener noreferrer">clippy: <code>filter_map_bool_then</code>: Don't ICE on late bound regions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11329" rel="noopener noreferrer">clippy: <code>manual_retain</code>: add lint case for <code>binary_heap</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11305" rel="noopener noreferrer">clippy: <code>redundant_guards</code>: don't lint on float literals</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11320" rel="noopener noreferrer">clippy: <code>redundant_locals</code>: fix FPs on mutated shadows</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15262" rel="noopener noreferrer">rust-analyzer: add check.ignore to list cargo check diagnostics to ignore <code>(dead_code, unused_imports,</code> ...)</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15419" rel="noopener noreferrer">rust-analyzer: add mir lower support for tuple destructing assignment</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15416" rel="noopener noreferrer">rust-analyzer: display fully qualified associated types correctly</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15250" rel="noopener noreferrer">rust-analyzer: don't use control flow when extracted fn contains tail expr of original fn</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15428" rel="noopener noreferrer">rust-analyzer: fix pinned version of lsp-types</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15445" rel="noopener noreferrer">rust-analyzer: fix <code>only_types</code> config filtering out traits from world symbols</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15415" rel="noopener noreferrer">rust-analyzer: fix float parser hack creating empty NameRef tokens</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15438" rel="noopener noreferrer">rust-analyzer: fix parser being stuck in eager macro inputs</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15350" rel="noopener noreferrer">rust-analyzer: handle <code>#[cfg]</code>s on generic parameters</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15423" rel="noopener noreferrer">rust-analyzer: internal : Deunwrap <code>convert_named_struct_to_tuple_struct</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15405" rel="noopener noreferrer">rust-analyzer: support doc links that resolve to fields</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A light week. Main thing to report is we got some improvements from telling LLVM that the negation in <code>&lt;*const T&gt;::sub</code> cannot overflow.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=443c3161dd04f4c1b656a626f9079921bee9c326&amp;end=e8459109bbb440764c1c877032189a27b9e76c4e&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">443c3161..e8459109</a></p> <p>0 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 49 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-14.md" rel="noopener noreferrer">Full report here</a> </p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3455" rel="noopener noreferrer">Create a Testing sub-team</a></li> <li><a href="https://github.com/rust-lang/rfcs/pull/3399" rel="noopener noreferrer">Allow cfg-attributes in where clauses</a></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111071" rel="noopener noreferrer">Cleaner assert_eq! &amp; assert_ne! panic messages</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112879" rel="noopener noreferrer">Report monomorphization time errors in dead code, too</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114201" rel="noopener noreferrer">Allow explicit <code>#[repr(Rust)]</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113383" rel="noopener noreferrer">style-guide: Add section on bugs, and resolving bugs</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111752" rel="noopener noreferrer">Lower <code>Or</code> pattern without allocating place</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3475" rel="noopener noreferrer">Unified String Literals</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3471" rel="noopener noreferrer">RFC: <code>scheduled_removal</code> Parameter for <code>deprecated</code> Attribute</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3470" rel="noopener noreferrer">crABI v1</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-08-16 - 2023-09-13 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-08-16 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/kmhpftyfclbvb/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-08-17 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295051663/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-22 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294587280/" rel="noopener noreferrer"><strong>Rust, Serverless and AWS</strong></a></li> </ul> </li> <li>2023-08-23 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/294718621/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 32nd Edition</strong></a></li> </ul> </li> <li>2023-08-24 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/295250677/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295207389/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Munich, DE) | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294049877" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-09-07 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfcmbkb/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Virtual (Albuquerque, NM, US) | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> <li>2023-09-12 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/gqdlgtyfcmbqb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-09-13 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-09-14 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732655" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-09-06 | Tel Aviv, IL | <a href="https://www.meetup.com/rust-tlv/" rel="noopener noreferrer">Rust TLV</a><ul> <li><a href="https://www.meetup.com/rust-tlv/events/295441355/" rel="noopener noreferrer"><strong>RustTLV @ Final - September Edition</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-08-16 | Augsburg, DE | <a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/" rel="noopener noreferrer">Rust - Modern Systems Programming in Leipzig</a><ul> <li><a href="https://www.meetup.com/rust-modern-systems-programming-in-leipzig/events/295191245/" rel="noopener noreferrer"><strong>Native Graph Algorithms in Rust</strong></a></li> </ul> </li> <li>2023-08-17 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/294201562/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-08-19 | Augsburg, DE | <a href="https://www.meetup.com/rust-rhein-main/" rel="noopener noreferrer">Rust Rhein-Main</a><ul> <li><a href="https://www.meetup.com/rust-rhein-main/events/295298582/" rel="noopener noreferrer"><strong>Rust Frontend Workshop (Yew + WebAssembly + Axum)</strong></a></li> </ul> </li> <li>2023-08-22 | Helsinki, FI | <a href="https://www.meetup.com/helsinki-rust-meetup-group" rel="noopener noreferrer">Finland Rust Meetup</a><ul> <li><a href="https://www.meetup.com/helsinki-rust-meetup-group/events/294616573/" rel="noopener noreferrer"><strong>Helsink Rustaceans First Gathering</strong></a></li> </ul> </li> <li>2023-08-23 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/" rel="noopener noreferrer">Rust London User Group</a><ul> <li><a href="https://www.meetup.com/rust-london-user-group/events/295338396/" rel="noopener noreferrer"><strong>LDN Talks Aug 2023: Rust London x RNL (The next Frontier in App Development)</strong></a></li> </ul> </li> <li>2023-08-24 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/293950871/" rel="noopener noreferrer"><strong>Rust Aarhus Hack and Learn at Trifork</strong></a></li> </ul> </li> <li>2023-08-31 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/" rel="noopener noreferrer">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/294538503/" rel="noopener noreferrer"><strong>Augsburg Rust Meetup #2</strong></a></li> </ul> </li> <li>2023-09-05 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-08-16 | Cambridge, MA, US | <a href="https://www.meetup.com/bostonrust/" rel="noopener noreferrer">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/bostonrust/events/294910746/" rel="noopener noreferrer"><strong>Alewife Rust Lunch</strong></a></li> </ul> </li> <li>2023-08-17 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/294805470/" rel="noopener noreferrer"><strong>Rust goes where it pleases. Rust on the web and embedded</strong></a></li> </ul> </li> <li>2023-08-23 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295008514" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-08-24 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295107743/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-30 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294806394" rel="noopener noreferrer"><strong>Rust metup #39 sponsored by Fermyon</strong></a></li> </ul> </li> <li>2023-09-06 | Bellevue, WA, US | <a href="https://www.linuxfoundation.org/" rel="noopener noreferrer">The Linux Foundation</a><ul> <li><a href="https://events.linuxfoundation.org/rust-global/" rel="noopener noreferrer"><strong>Rust Global</strong></a></li> </ul> </li> <li>2023-09-12 - 2023-09-15 | Albuquerque, NM, US + Virtual | <a href="https://rustconf.com/" rel="noopener noreferrer">RustConf</a><ul> <li><a href="https://rustconf.com/" rel="noopener noreferrer"><strong>RustConf 2023</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-08-24 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/" rel="noopener noreferrer">Rust Brisbane</a><ul> <li><a href="https://www.meetup.com/rust-brisbane/events/295415680/" rel="noopener noreferrer"><strong>August Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="INSERT_LINK_HERE" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>It has been</p> <p><strong>0</strong></p> <p>days since someone tried and failed to use unsafe to circumvent the lifetime system.</p> </blockquote> <p>– <a href="https://users.rust-lang.org/t/announcing-shared-cell-an-additional-cell-api-with-zero-cost-concurrent-data-sharing-in-single-threaded-asynchronous-code/98342/15" rel="noopener noreferrer">H2CO3 on rust-users</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1459" rel="noopener noreferrer">mdHMUpeyf8yluPfXI</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/15tajsl/this_week_in_rust_508/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 507 freedit 2023-08-09 2023-08-09 122 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/08/09/this-week-in-rust-507/">This Week in Rust 507</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html" rel="noopener noreferrer">2022 Annual Rust Survey Results</a></li> <li><a href="https://blog.rust-lang.org/2023/08/03/cve-2023-38497.html" rel="noopener noreferrer">Security advisory for Cargo (CVE-2023-38497)</a></li> <li><a href="https://blog.rust-lang.org/2023/08/03/Rust-1.71.1.html" rel="noopener noreferrer">Announcing Rust 1.71.1</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/08/02/rotating-compiler-leads.html" rel="noopener noreferrer">Rotating Rust compiler team leadership</a></li> </ul> <h3><a href="#foundation" rel="noopener noreferrer">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/announcing-speakers-schedule-for-inaugural-rust-global-event/" rel="noopener noreferrer">Announcing Speakers &amp; Schedule for Inaugural Rust Global Event</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://rust-osdev.com/this-month/2023-07/" rel="noopener noreferrer">This Month in Rust OSDev: July 2023</a></li> <li><a href="https://rustnigeria.curated.co/issues/20" rel="noopener noreferrer">Rust Nigeria Issue 20</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://model-checking.github.io/kani-verifier-blog/2023/08/03/turbocharging-rust-code-verification.html" rel="noopener noreferrer">Turbocharging Rust Code Verification</a></li> <li><a href="https://rust-analyzer.github.io/thisweek/2023/08/07/changelog-193.html" rel="noopener noreferrer">Changelog #193</a></li> <li><a href="https://arsmilitaris.com/#this-week-in-ars-militaris-5" rel="noopener noreferrer">This Week in Ars Militaris #5</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://estebank.github.io/rustc-metrics.html" rel="noopener noreferrer">No telemetry in the Rust compiler: metrics without betraying user privacy</a></li> <li><a href="https://jmmv.dev/2023/08/rust-static-dispatch-failed-experiment.html" rel="noopener noreferrer">A failed experiment with Rust static dispatch</a></li> <li><a href="https://blog.yoshuawuyts.com/nesting-allocators/" rel="noopener noreferrer">nesting allocators</a></li> <li><a href="https://shift.click/blog/allocator-trait-talk/" rel="noopener noreferrer">Allocator trait 1: Let’s talk about the Allocator trait</a></li> <li><a href="https://kobzol.github.io/rust/rustc/2023/07/30/optimizing-rust-ci-2023.html" rel="noopener noreferrer">How to improve Rust compiler’s CI in 2023</a></li> <li><a href="https://bd103.github.io/blog/2023-08-06-ptr-metadata" rel="noopener noreferrer">Rust Pointer Metadata</a></li> <li><a href="https://medium.com/@miltag/parse-prometheus-exposition-format-in-rust-using-peg-3921e9fc7d65" rel="noopener noreferrer">Parse Prometheus Exposition format in Rust using Pest</a></li> <li><a href="https://logankeenan.com/posts/client-side-server-with-rust-a-new-approach-to-ui-development/" rel="noopener noreferrer">Client-Side Server with Rust: A New Approach to UI Development</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=TBjmRmjr4JA" rel="noopener noreferrer">Andreas Monitzer - Bevy-ECS explained - Rust Vienna June 2023</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://www.greyblake.com/blog/handling-rust-enum-variants-with-kinded-crate/" rel="noopener noreferrer">Handling Rust enum variants with kinded crate</a></li> <li><a href="https://blog.mgattozzi.dev/freight-part-1/" rel="noopener noreferrer">Let's Build a Cargo Compatible Build Tool - Part 1</a></li> <li><a href="https://determinate.systems/posts/instrumenting-axum" rel="noopener noreferrer">Instrumenting Axum projects</a></li> <li><a href="https://anto.pt/articles/rust-server-components" rel="noopener noreferrer">Rust Server Components</a></li> <li><a href="https://swatinem.de/blog/optimizing-enums/" rel="noopener noreferrer">Optimizing Rust Enum <code>Debug</code>-ing with Perfect Hashing</a></li> <li><a href="https://sneakycrow.dev/blog/2023-07-30-bevy-game-in-svelte-kit" rel="noopener noreferrer">Running a Bevy game in SvelteKit</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-timers" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: Timers</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://www.shuttle.rs/launchpad/issues/2023-28-07-issue-05-Traits-Image-Processing" rel="noopener noreferrer">Shuttle Launchpad #5: Our first foray into traits!</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=lYjMp9obcZ0" rel="noopener noreferrer">Rust API design: the curious case of Result</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=XrR4VCKB0cQ" rel="noopener noreferrer">A Tour of Iced 0.10</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=HbXrStY68_0" rel="noopener noreferrer">5 programs you can't compile with Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=pgFCjtwPBYI" rel="noopener noreferrer">Rich Terminal Interfaces with Ratatui</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=nn7hAM0GDp0" rel="noopener noreferrer">Build a Cross Platform Mobile SDK in Rust</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/deepcausality-rs/deep_causality" rel="noopener noreferrer">deep_causality</a>, a hyper-geometric computational causality library.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1221" rel="noopener noreferrer">Marvin Hansen</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/google/zerocopy/issues/230" rel="noopener noreferrer">zerocopy - Install OpenSSF Scorecard and consider adopting its recommendations</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5491" rel="noopener noreferrer">Ockam - Add icons to the menu items in Tauri system tray app&nbsp;1</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5565" rel="noopener noreferrer">Ockam - Improve docs of&nbsp;<code>ockam completion</code>&nbsp;clap command to specify how to use it</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5564" rel="noopener noreferrer">Ockam - Remove unused&nbsp;<code>Error</code>&nbsp;enum members and avoid appearing of such members in the future&nbsp;1</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1793" rel="noopener noreferrer">Hyperswitch - Add Create Merchant and Create Merchant Key Store in a DB transaction</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1039" rel="noopener noreferrer">Hyperswitch - Use proxy exclusion instead of a separate proxied client</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/217" rel="noopener noreferrer">Hyperswitch - Schedule webhook for retry</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>417 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-07-31..2023-08-07" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112922" rel="noopener noreferrer">WASI threads, implementation of wasm32-wasi-preview1-threads target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114495" rel="noopener noreferrer">set <code>max_atomic_width</code> for AVR to 16</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114496" rel="noopener noreferrer">set <code>max_atomic_width</code> for sparc-unknown-linux-gnu to 32</a></li> <li><a href="https://github.com/rust-lang/rust/pull/98333" rel="noopener noreferrer">re-enable atomic loads and stores for all RISC-V targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114477" rel="noopener noreferrer">account for <code>Rc</code> and <code>Arc</code> when suggesting to clone</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114178" rel="noopener noreferrer">account for macros when suggesting a new <code>let</code> binding</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114486" rel="noopener noreferrer">avoid invalid NaN lint machine-applicable suggestion in const context</a></li> <li><a href="https://github.com/rust-lang/rust/pull/107254" rel="noopener noreferrer">avoid wrong code suggesting for attribute macro</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112849" rel="noopener noreferrer">change default panic handler message format</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114237" rel="noopener noreferrer">parser: more friendly hints for handling <code>async move</code> in the 2015 edition</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114360" rel="noopener noreferrer">coverage: consolidate FFI types into one module</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113428" rel="noopener noreferrer">coverage: replace <code>ExpressionOperandId</code> with <code>enum Operand</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114200" rel="noopener noreferrer">detect trait upcasting through <code>struct</code> tail unsizing in new solver select</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113575" rel="noopener noreferrer">don't ICE on higher ranked hidden types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114450" rel="noopener noreferrer">fix ICE failed to get layout for ReferencesError</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114322" rel="noopener noreferrer">fix invalid slice coercion suggestion reported in turbofish</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112043" rel="noopener noreferrer">fix suggestion spans for expr from macro expansions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114403" rel="noopener noreferrer">fix the span in the suggestion of remove question mark</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113945" rel="noopener noreferrer">fix wrong span for trait selection failure error reporting</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113657" rel="noopener noreferrer">expand, rename and improve <code>incorrect_fn_null_checks</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112431" rel="noopener noreferrer">improve <code>invalid_reference_casting</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114288" rel="noopener noreferrer">improve diagnostic for wrong borrow on binary operations</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114434" rel="noopener noreferrer">improve spans for indexing expressions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113199" rel="noopener noreferrer">infer type in irrefutable slice patterns with fixed length as array</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114296" rel="noopener noreferrer">interpret: fix alignment handling for Repeat expressions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109318" rel="noopener noreferrer">make <code>Debug</code> representations of <code>[Lazy, Once]*[Cell, Lock]</code> consistent with <code>Mutex</code> and <code>RwLock</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113902" rel="noopener noreferrer">make <code>unconditional_recursion</code> warning detect recursive drops</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114248" rel="noopener noreferrer">make lint missing-copy-implementations honor negative <code>Copy</code> impls</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114414" rel="noopener noreferrer">make test harness lint about unnnameable tests</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111753" rel="noopener noreferrer">only consider places with the same local in <code>each_borrow_involving_path</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/110833" rel="noopener noreferrer">only unpack tupled args in inliner if we expect args to be unpacked</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114372" rel="noopener noreferrer">const validation: point at where we found a pointer but expected an integer</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111200" rel="noopener noreferrer">optimize <code>Iterator</code> implementation for <code>&amp;mut impl Iterator + Sized</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114022" rel="noopener noreferrer">perform OpaqueCast field projection on HIR, too</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114202" rel="noopener noreferrer">remove <code>constness</code> from <code>TraitPredicate</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114355" rel="noopener noreferrer">resolve before canonicalization in new solver, ICE if unresolved</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109348" rel="noopener noreferrer">resolve visibility paths as modules not as types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114472" rel="noopener noreferrer">reword <code>confusable_idents</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114036" rel="noopener noreferrer">rework upcasting confirmation to support upcasting to fewer projections in target bounds</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113999" rel="noopener noreferrer">specify macro is invalid in certain contexts</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114502" rel="noopener noreferrer">steal MIR for CTFE when possible</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114305" rel="noopener noreferrer">strip unexpected debuginfo from <code>libLLVM.so</code> and <code>librustc_driver.so</code> when not requesting any debuginfo</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114300" rel="noopener noreferrer">suggests turbofish in patterns</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114466" rel="noopener noreferrer">add allocation to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114165" rel="noopener noreferrer">add missing rvalues to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114485" rel="noopener noreferrer">add trait decls to SMIR</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3006" rel="noopener noreferrer">miri-script and cargo-miri cleanups</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3005" rel="noopener noreferrer">miri-script: simplify flag computation a bit</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114333" rel="noopener noreferrer">miri: fix error on dangling pointer inbounds offset</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3004" rel="noopener noreferrer">miri: add some SB and TB tests</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3009" rel="noopener noreferrer">miri: avoid infinite recursion for auto-fmt and auto-clippy</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3013" rel="noopener noreferrer">miri: tree borrows: consider some retags as writes for the purpose of data races</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114459" rel="noopener noreferrer">do not run ConstProp on <code>mir_for_ctfe</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114382" rel="noopener noreferrer">add a new <code>compare_bytes</code> intrinsic instead of calling <code>memcmp</code> directly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114353" rel="noopener noreferrer">some parser and AST cleanups</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113734" rel="noopener noreferrer">convert builtin "global" late lints to run per module</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114283" rel="noopener noreferrer">use parking lot's rwlock even without parallel-rustc</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114516" rel="noopener noreferrer"><code>parent_module_from_def_id</code> does not need to be a query</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114306" rel="noopener noreferrer"><code>rustc_data_structures</code>: Simplify <code>base_n::push_str</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114395" rel="noopener noreferrer"><code>rustc_span</code>: Hoist lookup sorted by words out of the loop</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114350" rel="noopener noreferrer"><code>cg_llvm</code>: stop identifying ADTs in LLVM IR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113339" rel="noopener noreferrer">filter out short-lived LLVM diagnostics before they reach the rustc handler</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114562" rel="noopener noreferrer">stabilize <code>abi_thiscall</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111081" rel="noopener noreferrer">impl <code>SliceIndex&lt;str&gt;</code> for <code>(Bound&lt;usize&gt;, Bound&lt;usize&gt;)</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/100455" rel="noopener noreferrer">implement RefUnwindSafe for Backtrace</a></li> <li><a href="https://github.com/rust-lang/rust/pull/98935" rel="noopener noreferrer">implement <code>Option::take_if</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114373" rel="noopener noreferrer"><code>unix/kernel_copy.rs: copy_file_range_candidate</code> allows empty output files</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1063" rel="noopener noreferrer">regex-automata: fix incorrect offsets reported by reverse inner optimization</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1062" rel="noopener noreferrer">regex: fix memory usage regression for RegexSet with capture groups</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12332" rel="noopener noreferrer">cargo: bail out an error when using cargo: in custom build script</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12420" rel="noopener noreferrer">cargo: display crate version on timings graph</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12440" rel="noopener noreferrer">cargo: don't attempt to read a token from stdin if a cmdline token is provided</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12443" rel="noopener noreferrer">cargo: fix CVE-2023-38497 for master</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12439" rel="noopener noreferrer">cargo: fix printing multiple warning messages for unused fields in registries table</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12458" rel="noopener noreferrer">cargo: refactor: migrate to <code>tracing</code></a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5842" rel="noopener noreferrer">rustfmt: fix: add parenthesis around <code>..</code> closure if it's a method call receiver</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11288" rel="noopener noreferrer">clippy: <code>ptr_as_ptr</code>: Take snippet instead of pretty printing type</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11191" rel="noopener noreferrer">clippy: <code>redundant_type_annotations</code>: only pass certain def kinds to <code>type_of</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11269" rel="noopener noreferrer">clippy: <code>unnecessary_mut_passed</code>: don't lint in macro expansions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11252" rel="noopener noreferrer">clippy: <code>unwrap_used</code>: Do not lint unwrapping on <code>!</code> or never-like enums</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11284" rel="noopener noreferrer">clippy: alphabetically order arms in <code>methods/mod.rs</code> match</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11255" rel="noopener noreferrer">clippy: fix <code>suspicious_xor_used_as_pow.rs</code> performance</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11242" rel="noopener noreferrer">clippy: new lint <code>ignored_unit_patterns</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10843" rel="noopener noreferrer">clippy: new lints: <code>impossible_comparisons</code> and <code>redundant_comparisons</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11286" rel="noopener noreferrer">clippy: suppress <code>question_mark</code> warning if <code>question_mark_used</code> is not allowed</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15376" rel="noopener noreferrer">rust-analyzer: allow match to matches assist to trigger on non-literal bool arms</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15050" rel="noopener noreferrer">rust-analyzer: skip <code>doc(hidden)</code> default members</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15406" rel="noopener noreferrer">rust-analyzer: don't provide <code>generate_default_from_new</code> when impl self ty is missing</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15348" rel="noopener noreferrer">rust-analyzer: exclude non-identifier aliases from completion filtering text</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14723" rel="noopener noreferrer">rust-analyzer: added remove unused imports assist</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15380" rel="noopener noreferrer">rust-analyzer: fix unsized <code>struct</code> problems in mir eval</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15345" rel="noopener noreferrer">rust-analyzer: don't provide <code>add_missing_match_arms</code> assist when upmapping match arm list failed</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15397" rel="noopener noreferrer">rust-analyzer: remove unwraps from "Generate delegate trait"</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15367" rel="noopener noreferrer">rust-analyzer: strip unused token ids from eager macro input token maps</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15378" rel="noopener noreferrer">rust-analyzer: name change Import to Use in hir-def, add unused placeholder variants for UseId</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15391" rel="noopener noreferrer">rust-analyzer: set the default status bar action to openLogs</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15392" rel="noopener noreferrer">rust-analyzer: use the warning color when rust-analyzer is stopped</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>Overall a very positive last week, primarily due to an <a href="https://github.com/rust-lang/rust/pull/114048" rel="noopener noreferrer">upgrade to LLVM 17</a> and some changes to <a href="https://github.com/rust-lang/rust/pull/113734" rel="noopener noreferrer">lint execution</a>. Memory usage is down <a href="https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&amp;end=443c3161dd04f4c1b656a626f9079921bee9c326&amp;absolute=false&amp;stat=max-rss&amp;kind=percentfromfirst" rel="noopener noreferrer">4-7%</a> over the last week and wall times are down <a href="https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&amp;end=443c3161dd04f4c1b656a626f9079921bee9c326&amp;absolute=false&amp;stat=wall-time&amp;kind=percentfromfirst" rel="noopener noreferrer">3-5%</a>.</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=828bdc2c26f5c95773c4ecf72870919f16417b66&amp;end=443c3161dd04f4c1b656a626f9079921bee9c326&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">828bdc2c..443c3161</a></p> <p>2 Regressions, 7 Improvements, 2 Mixed; 2 of them in rollups 64 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-01.md" rel="noopener noreferrer">Full report 7/22-8/1</a>, <a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-08-08.md" rel="noopener noreferrer">Full report 8/1-8/8</a>.</p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112229" rel="noopener noreferrer">Specialize count for range iterators</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/110800" rel="noopener noreferrer">Accept additional user-defined classes in fenced code blocks</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114023" rel="noopener noreferrer">Warn on inductive cycle in coherence leading to impls being considered not overlapping</a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/issues/93415" rel="noopener noreferrer">Named format arguments can be used as positional</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/102575" rel="noopener noreferrer">Tracking Issue for <code>const_collections_with_hasher</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113510" rel="noopener noreferrer">Document soundness of Integer -&gt; Pointer -&gt; Integer conversions in <code>const</code> contexts.</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/114201" rel="noopener noreferrer">Allow explicit <code>#[repr(Rust)]</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/92122" rel="noopener noreferrer">Tracking issue for thread local Cell methods</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/98704" rel="noopener noreferrer">Implement From\&lt;OwnedFd/Handle&gt; for ChildStdin/out/err object</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3469" rel="noopener noreferrer">CPU feature detection in core</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-08-09 - 2023-09-06 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-08-09 | Virtual (New York, NY, US) | <a href="https://www.meetup.com/rust-nyc/" rel="noopener noreferrer">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/295078036" rel="noopener noreferrer"><strong>Helping Rust Developers See Data Dependencies in the IDE</strong></a></li> </ul> </li> <li>2023-08-10 | Virtual (Berlin, DE) | <a href="https://berline.rs/" rel="noopener noreferrer">Berlin.rs</a><ul> <li><a href="https://berline.rs/2023/08/10/rust-and-tell-august-edition.html" rel="noopener noreferrer"><strong>Rust and Tell - August Edition</strong></a></li> </ul> </li> <li>2023-08-10 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfclbnb/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-08-10 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732653" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbtb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/" rel="noopener noreferrer">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/293553331/" rel="noopener noreferrer"><strong>Mid-month Rustful</strong></a></li> </ul> </li> <li>2023-08-16 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/kmhpftyfclbvb/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-08-17 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/294718621/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 32nd Edition</strong></a></li> </ul> </li> <li>2023-08-17 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/295051663/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-22 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294587280/" rel="noopener noreferrer"><strong>Rust, Serverless and AWS</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/295207389/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-09-05 | Virtual (Munich, DE) | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> <li>2023-09-06 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294049877" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-08-09 | Kuala Lumpur, MY | <a href="https://rust-malaysia.github.io/meetup/" rel="noopener noreferrer">Rust Malaysia</a><ul> <li><a href="https://forms.gle/tL68U1PZF5bAV1LY7" rel="noopener noreferrer"><strong>Rust Malaysia Meetup August 2023</strong></a></li> </ul> </li> <li>2023-08-10 | Tokyo, JP | <a href="https://www.meetup.com/tokyo-rust-meetup/" rel="noopener noreferrer">Tokyo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/tokyo-rust-meetup/events/295275684" rel="noopener noreferrer"><strong>Bring Your Laptop: The Great Oxidation Event</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-08-17 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/294201562/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-08-19 | Augsburg, DE | <a href="https://www.meetup.com/rust-rhein-main/" rel="noopener noreferrer">Rust Rhein-Main</a><ul> <li><a href="https://www.meetup.com/rust-rhein-main/events/295298582/" rel="noopener noreferrer"><strong>Rust Frontend Workshop (Yew + WebAssembly + Axum)</strong></a></li> </ul> </li> <li>2023-08-22 | Helsinki, FI | <a href="https://www.meetup.com/helsinki-rust-meetup-group" rel="noopener noreferrer">Finland Rust Meetup</a><ul> <li><a href="https://www.meetup.com/helsinki-rust-meetup-group/events/294616573/" rel="noopener noreferrer"><strong>Helsink Rustaceans First Gathering</strong></a></li> </ul> </li> <li>2023-08-23 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/" rel="noopener noreferrer">Rust London User Group</a><ul> <li><a href="https://www.meetup.com/rust-london-user-group/events/295338396/" rel="noopener noreferrer"><strong>LDN Talks Aug 2023: Rust London x RNL (The next Frontier in App Development)</strong></a></li> </ul> </li> <li>2023-08-24 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/293950871/" rel="noopener noreferrer"><strong>Rust Aarhus Hack and Learn at Trifork</strong></a></li> </ul> </li> <li>2023-08-31 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/" rel="noopener noreferrer">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/294538503/" rel="noopener noreferrer"><strong>Augsburg Rust Meetup #2</strong></a></li> </ul> </li> <li>2023-09-05 | Munich, DE + Virtual | <a href="https://www.meetup.com/rust-munich/" rel="noopener noreferrer">Rust Munich</a><ul> <li><a href="https://www.meetup.com/rust-munich/events/294186101/" rel="noopener noreferrer"><strong>Rust Munich 2023 / 4 - hybrid</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-08-10 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911475/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-10 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972766/" rel="noopener noreferrer"><strong>Building a simplified JVM in Rust</strong></a></li> </ul> </li> <li>2023-08-15 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfclbtb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-08-15 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294804636/" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-08-16 | Cambridge, MA, US | <a href="https://www.meetup.com/bostonrust/" rel="noopener noreferrer">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/bostonrust/events/294910746/" rel="noopener noreferrer"><strong>Alewife Rust Lunch</strong></a></li> </ul> </li> <li>2023-08-16 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294806394" rel="noopener noreferrer"><strong>Rust metup #39 sponsored by Fermyon</strong></a></li> </ul> </li> <li>2023-08-17 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/294805470/" rel="noopener noreferrer"><strong>Rust goes where it pleases. Rust on the web and embedded</strong></a></li> </ul> </li> <li>2023-08-23 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295008514" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-08-24 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/295107743/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-09-06 | Bellevue, WA, US | <a href="https://www.linuxfoundation.org/" rel="noopener noreferrer">The Linux Foundation</a><ul> <li><a href="https://events.linuxfoundation.org/rust-global/" rel="noopener noreferrer"><strong>Rust Global</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-08-09 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.tickettailor.com/events/perthrustusergroup/970279" rel="noopener noreferrer"><strong>August Meetup</strong></a></li> </ul> </li> <li>2023-08-15 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/295143203/" rel="noopener noreferrer"><strong>(Hybrid - in person &amp; online) August 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>Claiming Rust won't help you because you're doing so many unsafe things is like claiming protective gear won't help you because you're handling so many dangerous substances.</p> </blockquote> <p>– <a href="https://twitter.com/llogiq/status/1686730795564535809" rel="noopener noreferrer">llogiq on twitter</a></p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1455" rel="noopener noreferrer">llogiq</a> feels very smug about his self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/15my88p/this_week_in_rust_507/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> 2022 Annual Rust Survey Results freedit 2023-08-07 2023-08-07 119 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/07/Rust-Survey-2023-Results.html">2022 Annual Rust Survey Results</a> </div> </article> <p>Hello, Rustaceans!</p> <p>For the 6th year in a row, the Rust Project <a href="https://blog.rust-lang.org/2022/12/05/survey-launch.html" rel="noopener noreferrer">conducted a survey on the Rust programming language</a>, with participation from project maintainers, contributors, and those generally interested in the future of Rust. This edition of the annual State of Rust Survey opened for submissions on December 5 and ran until December 22, 2022.</p> <p>First, we'd like to thank you for your patience on these long delayed results. We hope to identify a more expedient and sustainable process going forward so that the results come out more quickly and have even more actionable insights for the community.</p> <p>The goal of this survey is always to give our wider community a chance to express their opinions about the language we all love and help shape its future. We’re grateful to those of you who took the time to share your voice on the state of Rust last year.</p> <p>Before diving into a few highlights, we would like to thank everyone who was involved in creating the State of Rust survey with special acknowledgment to the translators whose work allowed us to offer the survey in English, Simplified Chinese, Traditional Chinese, French, German, Japanese, Korean, Portuguese, Russian, Spanish, and Ukrainian.</p> <h2><a href="#participation" rel="noopener noreferrer"></a>Participation</h2> <p>In 2022, we had 9,433 total survey completions and an increased survey completion rate of 82% vs. 76% in 2021. While the goal is always total survey completion for all participants, the survey requires time, energy, and focus – we consider this figure quite high and were pleased by the increase.</p> <p>We also saw a significant increase in the number of people viewing but not participating in the survey (from 16,457 views in 2021 to 25,581 – a view increase of over 55%). While this is likely due to a number of different factors, we feel this information speaks to the rising interest in Rust and the growing general audience following its evolution.</p> <p>In 2022, the survey had 11,482 responses, which is a slight decrease of 6.4% from 2021, however, the number of respondents that answered all survey questions has increased year over year. We were interested to see this slight decrease in responses, as this year’s survey was much shorter than in previous years – clearly, survey length is not the only factor driving participation.</p> <h2><a href="#community" rel="noopener noreferrer"></a>Community</h2> <p>We were pleased to offer the survey in 11 languages – more than ever before, with the addition of a Ukrainian translation in 2022. 77% of respondents took this year’s survey in English, 5% in Chinese (simplified), 4% in German and French, 2% in Japanese, Spanish, and Russian, and 1% in Chinese (traditional), Korean, Portuguese, and Ukrainian. This is our lowest percentage of respondents taking the survey in English to date, which is an exciting indication of the growing global nature of our community!</p> <p>The vast majority of our respondents reported being most comfortable communicating on technical topics in English (93%), followed by Chinese (7%).</p> <p>Rust user respondents were asked which country they live in. The top 13 countries represented were as follows: United States (25%), Germany (12%), China (7%), United Kingdom (6%), France (5%), Canada (4%), Russia (4%), Japan (3%), Netherlands (3%), Sweden (2%), Australia (2%), Poland (2%), India (2%). Nearly 72.5% of respondents elected to answer this question.</p> <p>While we see global access to Rust education as a critical goal for our community, we are proud to say that Rust was used all over the world in 2022!</p> <h2><a href="#rust-usage" rel="noopener noreferrer"></a>Rust Usage</h2> <p>More people are using Rust than ever before! Over 90% of survey respondents identified as Rust users, and of those using Rust, 47% do so on a daily basis – an increase of 4% from the previous year.</p> <p>30% of Rust user respondents can write simple programs in Rust, 27% can write production-ready code, and 42% consider themselves productive using Rust.</p> <p>Of the former Rust users who completed the survey, 30% cited difficulty as the primary reason for giving up while nearly 47% cited factors outside of their control.</p> <p><img src="../../../images/2023-08-rust-survey-2022/no-longer-using.png" alt="Graph: Why did you stop using Rust?"></p> <p>Similarly, 26% of those who did not identify as Rust users cited the perception of difficulty as the primary reason for not having used it, (with 62% reporting that they simply haven’t had the chance to prioritize learning Rust yet). <img src="../../../images/2023-08-rust-survey-2022/dont-use.png" alt="Graph: Why don't you use Rust?"></p> <h2><a href="#rust-usage-at-work" rel="noopener noreferrer"></a>Rust Usage at Work</h2> <p>The growing maturation of Rust can be seen through the increased number of different organizations utilizing the language in 2022. In fact, 29.7% of respondents stated that they use Rust for the majority of their coding work at their workplace, which is a 51.8% increase compared to the previous year.</p> <p><img src="../../../images/2023-08-rust-survey-2022/rust-work.png" alt="Graph: Are you using Rust at work?"></p> <p>There are numerous reasons why we are seeing increased use of Rust in professional environments. Top reasons cited for the use of Rust include the perceived ability to write "bug-free software" (86%), Rust's performance characteristics (84%), and Rust's security and safety guarantees (69%). We were also pleased to find that 76% of respondents continue to use Rust simply because they found it fun and enjoyable. (Respondents could select more than one option here, so the numbers don't add up to 100%.)</p> <p><img src="../../../images/2023-08-rust-survey-2022/why-at-work.png" alt="Graph: Why do you use Rust at work?"></p> <p>Of those respondents that used Rust at work, 72% reported that it helped their team achieve its goals (a 4% increase from the previous year) and 75% have plans to continue using it on their teams in the future.</p> <p>But like any language being applied in the workplace, Rust’s learning curve is an important consideration; 39% of respondents using Rust in a professional capacity reported the process as “challenging” and 9% of respondents said that adopting Rust at work has “slowed down their team”. However, 60% of productive users felt Rust was worth the cost of adoption overall. <img src="../../../images/2023-08-rust-survey-2022/experiences.png" alt="Graph: Reasons for using Rust at work"></p> <p>It is exciting to see the continued growth of professional Rust usage and the confidence so many users feel in its performance, control, security and safety, enjoyability, and more!</p> <h2><a href="#supporting-the-future-of-rust" rel="noopener noreferrer"></a>Supporting the Future of Rust</h2> <p>A key goal of the State of Rust survey is to shed light on challenges, concerns, and priorities Rustaceans are currently sitting with.</p> <p>Of those respondents who shared their main worries for the future of Rust, 26% have concerns that the developers and maintainers behind Rust are not properly supported – a decrease of more than 30% from the previous year’s findings. One area of focus in the future may be to see how the Project in conjunction with the Rust Foundation can continue to push that number towards 0%.</p> <p>While 38% have concerns about Rust “becoming too complex”, only a small number of respondents were concerned about documentation, corporate oversight, or speed of evolution. 34% of respondents are not worried about the future of Rust at all.</p> <p>This year’s survey reflects a 21% decrease in fears about Rust’s usage in the industry since the last survey. Faith in Rust’s staying power and general utility is clearly growing as more people find Rust and become lasting members of the community. As always, we are grateful for your honest feedback and dedication to improving this language for everyone.</p> <p><img src="../../../images/2023-08-rust-survey-2022/future.png" alt="Graph: Worries about the future of Rust"></p> <h2><a href="#another-round-of-thanks" rel="noopener noreferrer"></a>Another Round of Thanks</h2> <p>To quote an anonymous survey respondent, “Thanks for all your hard work making Rust awesome!” – Rust wouldn’t exist or continue to evolve for the better without the many Project members and the wider Rust community. Thank you to those who took the time to share their thoughts on the State of Rust in 2022!</p> Announcing Rust 1.71.1 freedit 2023-08-03 2023-08-03 117 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/03/Rust-1.71.1.html">Announcing Rust 1.71.1</a> </div> </article> <p>The Rust team has published a new point release of Rust, 1.71.1. Rust is a programming language that is empowering everyone to build reliable and efficient software.</p> <p>If you have a previous version of Rust installed via rustup, getting Rust 1.71.1 is as easy as:</p> <pre><code>rustup update stable </code></pre> <p>If you don't have it already, you can <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer">get <code>rustup</code></a> from the appropriate page on our website.</p> <h2><a href="#whats-in-1711-stable" rel="noopener noreferrer"></a>What's in 1.71.1 stable</h2> <p>Rust 1.71.1 fixes Cargo not respecting the umask when extracting dependencies, which could allow a local attacker to edit the cache of extracted source code belonging to another local user, potentially executing code as another user. This security vulnerability is tracked as <a href="https://www.cve.org/CVERecord?id=CVE-2023-38497" rel="noopener noreferrer">CVE-2023-38497</a>, and you can read more about it <a href="https://blog.rust-lang.org/2023/08/03/cve-2023-38497.html" rel="noopener noreferrer">on the advisory we published earlier today</a>. We recommend all users to update their toolchain as soon as possible.</p> <p>Rust 1.71.1 also addresses several regressions introduced in Rust 1.71.0, including bash completion being broken for users of Rustup, and the <code>suspicious_double_ref_op</code> being emitted when calling <code>borrow()</code> even though it shouldn't.</p> <p>You can find more detailed information on the specific regressions, and other minor fixes, in the <a href="https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1711-2023-08-03" rel="noopener noreferrer">release notes</a>.</p> <h3><a href="#contributors-to-1711" rel="noopener noreferrer"></a>Contributors to 1.71.1</h3> <p>Many people came together to create Rust 1.71.1. We couldn't have done it without all of you. <a href="https://thanks.rust-lang.org/rust/1.71.1/" rel="noopener noreferrer">Thanks!</a></p> Security advisory for Cargo (CVE-2023-38497) freedit 2023-08-03 2023-08-03 116 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/08/03/cve-2023-38497.html">Security advisory for Cargo (CVE-2023-38497)</a> </div> </article> <blockquote> <p>This is a cross-post of <a href="https://groups.google.com/g/rustlang-security-announcements/c/PEZQleQ6IUY" rel="noopener noreferrer">the official security advisory</a>. The official advisory contains a signed version with our PGP key, as well.</p> </blockquote> <p>The Rust Security Response WG was notified that Cargo did not respect the umask when extracting crate archives on UNIX-like systems. If the user downloaded a crate containing files writeable by any local user, another local user could exploit this to change the source code compiled and executed by the current user.</p> <p>This vulnerability has been assigned CVE-2023-38497.</p> <h2><a href="#overview" rel="noopener noreferrer"></a>Overview</h2> <p>In UNIX-like systems, each file has three sets of permissions: for the user owning the file, for the group owning the file, and for all other local users. The "<a href="https://en.wikipedia.org/wiki/Umask" rel="noopener noreferrer">umask</a>" is configured on most systems to limit those permissions during file creation, removing dangerous ones. For example, the default umask on macOS and most Linux distributions only allow the user owning a file to write to it, preventing the group owning it or other local users from doing the same.</p> <p>When a dependency is downloaded by Cargo, its source code has to be extracted on disk to allow the Rust compiler to read as part of the build. To improve performance, this extraction only happens the first time a dependency is used, caching the pre-extracted files for future invocations.</p> <p>Unfortunately, it was discovered that Cargo did not respect the umask during extraction, and propagated the permissions stored in the crate archive as-is. If an archive contained files writeable by any user on the system (and the system configuration didn't prevent writes through other security measures), another local user on the system could replace or tweak the source code of a dependency, potentially achieving code execution the next time the project is compiled.</p> <h2><a href="#affected-versions" rel="noopener noreferrer"></a>Affected Versions</h2> <p>All Rust versions before 1.71.1 on UNIX-like systems (like macOS and Linux) are affected. Note that additional system-dependent security measures configured on the local system might prevent the vulnerability from being exploited.</p> <p>Users on Windows and other non-UNIX-like systems are not affected.</p> <h2><a href="#mitigations" rel="noopener noreferrer"></a>Mitigations</h2> <p>We recommend all users to update to Rust 1.71.1, which will be released later today, as it fixes the vulnerability by respecting the umask when extracting crate archives. If you build your own toolchain, patches for 1.71.0 source tarballs are <a href="https://github.com/rust-lang/wg-security-response/tree/main/patches/CVE-2023-38497" rel="noopener noreferrer">available here</a>.</p> <p>To prevent existing cached extractions from being exploitable, the Cargo binary included in Rust 1.71.1 or later will purge the caches it tries to access if they were generated by older Cargo versions.</p> <p>If you cannot update to Rust 1.71.1, we recommend configuring your system to prevent other local users from accessing the Cargo directory, usually located in <code>~/.cargo</code>:</p> <pre><code>chmod go= ~/.cargo </code></pre> <h2><a href="#acknowledgments" rel="noopener noreferrer"></a>Acknowledgments</h2> <p>We want to thank Addison Crump for responsibly disclosing this to us according to the <a href="https://www.rust-lang.org/policies/security" rel="noopener noreferrer">Rust security policy</a>.</p> <p>We also want to thank the members of the Rust project who helped us disclose the vulnerability: Weihang Lo for developing the fix; Eric Huss for reviewing the fix; Pietro Albini for writing this advisory; Pietro Albini, Manish Goregaokar and Josh Stone for coordinating this disclosure; Josh Triplett, Arlo Siemen, Scott Schafer, and Jacob Finkelman for advising during the disclosure.</p> This Week in Rust 506 freedit 2023-08-02 2023-08-02 115 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/08/02/this-week-in-rust-506/">This Week in Rust 506</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#foundation" rel="noopener noreferrer">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/new-rust-foundation-report-details-security-initiative-progress/" rel="noopener noreferrer">New Rust Foundation Report Details Security Initiative Progress</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://gamedev.rs/news/047/" rel="noopener noreferrer">This Month in Rust GameDev #47</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/07/31/changelog-192.html" rel="noopener noreferrer">rust-analyzer changelog #192</a></li> <li><a href="https://github.com/iced-rs/iced/releases/tag/0.10.0" rel="noopener noreferrer">iced Release 0.10.0</a></li> <li><a href="https://bjorn3.github.io/2023/07/29/progress-report-july-2023.html" rel="noopener noreferrer">Progress report on rustc_codegen_cranelift (July 2023)</a></li> <li><a href="https://www.reddit.com/r/rust/comments/15bc1f7/garde_012_release/" rel="noopener noreferrer">Garde 0.12 release</a></li> <li><a href="https://github.com/ringsaturn/tzf-rs" rel="noopener noreferrer">tzf-rs: Get timezone via longitude&amp;latitude in Rust in a fast way</a></li> <li><a href="https://blog.meilisearch.com/v1-3-release/" rel="noopener noreferrer">Meilisearch 1.3 - new features, including vector search, ranking score details, search for facet values, and searchable fields at query time</a></li> <li><a href="https://arsmilitaris.com/" rel="noopener noreferrer">This Week in Ars Militaris #4</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://www.youtube.com/watch?v=bXy45jGCiQI" rel="noopener noreferrer">Moving Ownership and Functions! - Rust for the ABSOLUTE Beginner Tutorial</a></li> <li><a href="https://noz.ai/hash-pipeline/" rel="noopener noreferrer">High-throughput stream processing in Rust</a></li> <li><a href="https://ibraheem.ca/posts/a-lock-free-vector/" rel="noopener noreferrer">A Lock-Free Vector</a></li> <li><a href="https://andreabergia.com/blog/2023/07/a-jvm-in-rust-part-3-parsing-class-files/" rel="noopener noreferrer">A JVM in Rust part 3 - Parsing class files</a></li> <li><a href="https://kobzol.github.io/rust/cargo/2023/07/28/rust-cargo-pgo.html" rel="noopener noreferrer">Optimizing Rust programs with PGO and BOLT using cargo-pgo</a></li> <li><a href="https://medium.com/@polyglot_factotum/distributing-lamports-bakery-with-automerge-and-a-touch-of-tla-679b2705b7cc" rel="noopener noreferrer">Distributing Lamport’s bakery with Automerge, and a touch of TLA+</a></li> <li><a href="https://www.tweag.io/blog/2023-07-27-building-rust-workspace-with-bazel/" rel="noopener noreferrer">Building a Rust workspace with Bazel</a></li> <li><a href="https://crustc.com/building-multiple-binaries-in-rust/" rel="noopener noreferrer">Building Multiple Binaries in Rust</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-i2c-communication?ref=twitter-share" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: I2C Communication</a></li> <li><a href="https://www.fastly.com/blog/how-to-write-rust-unit-tests-for-your-compute-edge-application" rel="noopener noreferrer">How to write Rust unit tests for your Compute@Edge application</a></li> <li><a href="https://briankung.dev/2023/07/16/rust-notes/" rel="noopener noreferrer">A random assortment of Rust notes</a></li> <li><a href="https://dusk.network/news/piecrust-and-our-transition-to-rust/" rel="noopener noreferrer">Rusk - The transition of our Node software from Golang to Rust</a></li> <li>[video] <a href="https://youtu.be/v6TFArsTJ4E" rel="noopener noreferrer">What to Expect from RustConf 2023</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://hegdenu.net/posts/understanding-async-await-3/" rel="noopener noreferrer">How I finally understood async/await in Rust (part 3: why shouldn’t I hold a mutex guard across an await point?)</a></li> <li><a href="https://heikoseeberger.de/2023-07-29-dist-tracing-1/" rel="noopener noreferrer">Distributed Tracing in Rust, Episode 1: logging basics</a></li> <li><a href="https://www.ockam.io/blog/routing" rel="noopener noreferrer">Ockam Routing: Building End-to-End Channels</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://github.com/GyulyVGC/sniffnet/discussions/329" rel="noopener noreferrer">Sniffnet is one year old today: lessons learned and next steps</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=Fk4tfdHc8AM" rel="noopener noreferrer">Physics in Bevy: What is Bevy Rapier</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=s5S2Ed5T-dc" rel="noopener noreferrer">A Simpler Way to See Results</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=Wnb_n5YktO8" rel="noopener noreferrer">Decrusting the axum crate</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://docs.rs/allocator-api2" rel="noopener noreferrer">allocator-api2</a>, a forward-compatibility shim to use the nightly allocator API on stable Rust.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1215" rel="noopener noreferrer">Zicklag</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/994" rel="noopener noreferrer">Hyperswitch - add <code>upsert</code> endpoint to <code>cards_info</code> table</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/917" rel="noopener noreferrer">Hyperswitch - move redis key creation to a common module</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1746" rel="noopener noreferrer">Hyperswitch - Add support for more incoming webhooks for stripe</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>404 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-07-24..2023-07-31" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/113411" rel="noopener noreferrer">add <code>x86_64-unikraft-linux-musl</code> target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113708" rel="noopener noreferrer">CFI: fix ICE: <code>encode_const</code>: unexpected type usize</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114152" rel="noopener noreferrer">data_structures: Simplify <code>binary_search_slice</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114014" rel="noopener noreferrer"><code>builtin_macros</code>: expect raw strings too</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113879" rel="noopener noreferrer"><code>codegen_ssa</code> cleanups</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114081" rel="noopener noreferrer"><code>desugar_doc_comments</code> cleanups</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113920" rel="noopener noreferrer">resolve: report unresolved imports firstly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113980" rel="noopener noreferrer">resolve: skip panic when resolution is dummy</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114060" rel="noopener noreferrer">abi: unsized field in union - assert to delay bug</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113930" rel="noopener noreferrer">add Param and Bound ty to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114156" rel="noopener noreferrer">add <code>simd_bswap, simd_bitreverse, simd_ctlz,</code> and <code>simd_cttz</code> intrinsics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114138" rel="noopener noreferrer">adjust spans correctly for fn → method suggestion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114141" rel="noopener noreferrer">change LLVM BOLT flags for nice space savings</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112995" rel="noopener noreferrer">check for <code>&lt;&amp;NotClone as Clone&gt;::clone()</code> calls and suggest to add Clone trait appropriately</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114228" rel="noopener noreferrer">check lazy type aliases for well-formedness</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113996" rel="noopener noreferrer">define <code>CMAKE_SYSTEM_NAME</code> on a cross build targeting DragonFly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111780" rel="noopener noreferrer">diagnostic namespace</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113312" rel="noopener noreferrer">discard default auto trait impls if explicit ones exist</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113773" rel="noopener noreferrer">don't attempt to compute layout of type referencing error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113741" rel="noopener noreferrer">don't install default projection bound for return-position <code>impl Trait</code> in trait methods with no body</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113578" rel="noopener noreferrer">don't say that a type is uncallable if its fn signature has errors in it</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114080" rel="noopener noreferrer">don't treat negative trait predicates as always knowable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114102" rel="noopener noreferrer">dont pass <code>-Zwrite-long-types-to-disk=no</code> for <code>ui-fulldeps --stage=1</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113661" rel="noopener noreferrer">double check that hidden types match the expected hidden type</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114203" rel="noopener noreferrer">effects: don't print <code>host</code> param in diagnostics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114266" rel="noopener noreferrer">fix <code>simd_bswap</code> for i8/u8</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113958" rel="noopener noreferrer">fix intra-doc links on nested <code>use</code> and <code>extern crate</code> items</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114256" rel="noopener noreferrer">fix invalid suggestion for mismatched types in closure arguments</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114012" rel="noopener noreferrer">fix missing attribute merge on glob foreign re-exports</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114028" rel="noopener noreferrer">gracefully handle ternary operator</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114020" rel="noopener noreferrer">hide <code>ToString</code> implementations that specialize the default one</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113281" rel="noopener noreferrer">implement diagnostic translation for rustc-errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113522" rel="noopener noreferrer">implement generic const items</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114111" rel="noopener noreferrer">improve test case for experimental API <code>remove_matches</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114147" rel="noopener noreferrer">insert RPITITs that were shadowed by missing ADTs that resolve to type error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114071" rel="noopener noreferrer">interpret: make read/write methods generic</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114011" rel="noopener noreferrer">interpret: unify projections for MPlaceTy, PlaceTy, OpTy</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114115" rel="noopener noreferrer">less <code>TokenTree</code> cloning</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113457" rel="noopener noreferrer">lint/ctypes: fix <code>()</code> return type checks</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113704" rel="noopener noreferrer">make RPITITs inherit the <code>assumed_wf_types</code> of their parent method</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114018" rel="noopener noreferrer">make <code>--error-format human-annotate-rs</code> handle multiple files</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114139" rel="noopener noreferrer">make <code>--print</code> with path unstable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111916" rel="noopener noreferrer">make <code>noop_method_call</code> warn by default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/102757" rel="noopener noreferrer">make std tests pass on newer Android</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114267" rel="noopener noreferrer">map RPITIT's opaque type bounds back from projections to opaques</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114222" rel="noopener noreferrer">mark <code>lazy_type_alias</code> as incomplete</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113893" rel="noopener noreferrer">new unstable option: -Zwrite-long-types-to-disk</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113393" rel="noopener noreferrer">normalize the RHS of an <code>Unsize</code> goal in the new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114225" rel="noopener noreferrer">only golden arches</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114119" rel="noopener noreferrer">optimize <code>TokenKind::clone</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112843" rel="noopener noreferrer">print omitted frames count for short backtrace mode</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114099" rel="noopener noreferrer">privacy: no nominal visibility for assoc fns</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113476" rel="noopener noreferrer">reimplement C-str literals</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114134" rel="noopener noreferrer">remove <code>constness</code> from <code>ParamEnv</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114098" rel="noopener noreferrer">replace atty crate with std's IsTerminal</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114117" rel="noopener noreferrer">restore region uniquification in the new solver 🎉</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114146" rel="noopener noreferrer">skip reporting item name when checking RPITIT GAT's associated type bounds hold</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114054" rel="noopener noreferrer">split some functions with many arguments into builder pattern functions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114052" rel="noopener noreferrer">suggest {<code>Option</code>,<code>Result</code>}<code>::as_ref()</code> instead of <code>cloned()</code> in some cases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114123" rel="noopener noreferrer">turns out opaque types can have hidden types registered during mir validation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114246" rel="noopener noreferrer">weaken <code>unnameable_types</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114128" rel="noopener noreferrer">when flushing delayed span bugs, write to the ICE dump file even if it doesn't exist</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2993" rel="noopener noreferrer">miri: TB: redefine trigger condition for protectors</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3001" rel="noopener noreferrer">miri: add some interesting tests for alignment corner cases</a></li> <li><a href="https://github.com/rust-lang/miri/pull/3002" rel="noopener noreferrer">miri: fix oversight from new miri-script</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2997" rel="noopener noreferrer">miri: refactor tests/utils a bit, and move some FS functions there</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2909" rel="noopener noreferrer">miri: rewrite miri script in rust</a></li> <li><a href="https://github.com/rust-lang/rust/pull/95965" rel="noopener noreferrer">stabilize <code>const-weak-new</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/102198" rel="noopener noreferrer">const-stablilize <code>NonNull::as_ref</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/114034" rel="noopener noreferrer">optimize <code>AtomicBool</code> for target that don't support byte-sized atomics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112655" rel="noopener noreferrer">mark <code>map_or</code> as <code>#[must_use]</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/98154" rel="noopener noreferrer">merge functionality of <code>io::Sink</code> into <code>io::Empty</code></a></li> <li><a href="https://github.com/rust-lang/futures-rs/pull/2750" rel="noopener noreferrer">futures: add <code>len</code> method for <code>UnboundedSender</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12411" rel="noopener noreferrer">cargo: normalize relative git submodule urls with <code>ssh://</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12424" rel="noopener noreferrer">cargo: use thiserror for credential provider errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114059" rel="noopener noreferrer">rustdoc: fix cross-crate <code>impl Sized</code> &amp; <code>impl ?Sized</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113374" rel="noopener noreferrer">rustdoc: If re-export is private, get the next item until a public one is found or expose the private item directly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114204" rel="noopener noreferrer">rustdoc: Remove unneeded <code>clone()</code> calls for <code>derive_id</code></a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5552" rel="noopener noreferrer">rustfmt: handle <code>dyn*</code> syntax when rewriting <code>ast::TyKind::TraitObject</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11233" rel="noopener noreferrer">clippy: <code>arc_with_non_send_sync</code>: no longer lints macro-generated code</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11263" rel="noopener noreferrer">clippy: <code>arithmetic_side_effects</code>: ignore paths referring to literals</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11207" rel="noopener noreferrer">clippy: <code>needless_pass_by_ref_mut</code>: do not lint if passed as a fn-like argument</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/8685" rel="noopener noreferrer">clippy: various <code>redundant_closure</code> fixes</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11198" rel="noopener noreferrer">clippy: <code>slow_vector_initialization</code>: catch <code>Vec::new()</code> followed by <code>.resize(len, 0)</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11261" rel="noopener noreferrer">clippy: <code>unnecessary_find_map</code>: look for <code>then_some</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11226" rel="noopener noreferrer">clippy: <code>needless_pass_by_ref_mut</code>: emit note if function is behind a <code>#[cfg]</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11115" rel="noopener noreferrer">clippy: new lint <code>filter_map_bool_then</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11210" rel="noopener noreferrer">clippy: new lint <code>readonly_write_lock</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10759" rel="noopener noreferrer">clippy: now <code>option_env_unwrap</code> warns even if a variable isn't set at compiletime</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15353" rel="noopener noreferrer">rust-analyzer: add manual implementation of clone for tuples in mir interpreter</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15357" rel="noopener noreferrer">rust-analyzer: fix: do not create fn macro calls with non-fn expanders</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15361" rel="noopener noreferrer">rust-analyzer: fix: expand eager macros to delimited comma separated expression list</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15356" rel="noopener noreferrer">rust-analyzer: fix: fix bad unwrap in <code>eager_macro_recur</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15366" rel="noopener noreferrer">rust-analyzer: fix: remove another faulty unwrap (expect)</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15360" rel="noopener noreferrer">rust-analyzer: fixup path fragments upon MBE transcription</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15271" rel="noopener noreferrer">rust-analyzer: properly infer types with type casts</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15308" rel="noopener noreferrer">rust-analyzer: runnable env per platform</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15349" rel="noopener noreferrer">rust-analyzer: show anonymous fn def type as a fn pointer in source code</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15363" rel="noopener noreferrer">rust-analyzer: support <code>Self</code> without field in mir lowering</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15359" rel="noopener noreferrer">rust-analyzer: write proc-macro server spawn errors to the status text</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/88561" rel="noopener noreferrer">Allow redirecting subprocess stdout to our stderr etc.</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112842" rel="noopener noreferrer">check for non-defining uses of RPIT</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113902" rel="noopener noreferrer">Make <code>unconditional_recursion</code> warning detect recursive drops</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/88581" rel="noopener noreferrer">Tracking Issue for <code>int_roundings</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113586" rel="noopener noreferrer">Mention style for new syntax in tracking issue template</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113053" rel="noopener noreferrer">add notes about non-compliant FP behavior on 32bit x86 targets</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3467" rel="noopener noreferrer">UnsafeAliased: allow aliasing of mutable references</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3466" rel="noopener noreferrer">Move out of deref for <code>ManuallyDrop</code></a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3464" rel="noopener noreferrer">Crate quarantine</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-08-02 - 2023-08-30 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-08-02 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294768155" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-08-08 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfclblb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-08-10 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732653" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbtb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/" rel="noopener noreferrer">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/293553331/" rel="noopener noreferrer"><strong>Mid-month Rustful</strong></a></li> </ul> </li> <li>2023-08-16 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/kmhpftyfclbvb/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-08-17 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/294718621/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 32nd Edition</strong></a></li> </ul> </li> <li>2023-08-17 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/294343590" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-08-22 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294587280/" rel="noopener noreferrer"><strong>Rust, Serverless and AWS</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-07-27 | Seoul, KR | <a href="https://www.meetup.com/rust-seoul-meetup/" rel="noopener noreferrer">Rust Programming Meetup Seoul</a><ul> <li><a href="https://www.meetup.com/rust-seoul-meetup/events/294832771/" rel="noopener noreferrer"><strong>Seoul Rust Meetup</strong></a></li> </ul> </li> <li>2023-07-27 | Seoul, KR | <a href="https://www.meetup.com/t-rust-meetup/" rel="noopener noreferrer">T-RUST meetup</a><ul> <li><a href="https://www.meetup.com/t-rust-meetup/events/295001681/" rel="noopener noreferrer"><strong>🦀 7/27(목) T-RUST Meetup 🦀 (+ 현직자 네트워킹 세션)</strong></a></li> </ul> </li> <li>2023-08-09 | Kuala Lumpur, MY | <a href="https://rust-malaysia.github.io/meetup/" rel="noopener noreferrer">Rust Malaysia</a><ul> <li><a href="https://forms.gle/tL68U1PZF5bAV1LY7" rel="noopener noreferrer"><strong>Rust Malaysia Meetup August 2023</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-07-27 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294780997" rel="noopener noreferrer"><strong>Rust metup #38 at Deloitte!</strong></a></li> </ul> </li> <li>2023-07-27 | Vienna, AT | <a href="https://www.meetup.com/rust-vienna" rel="noopener noreferrer">Rust Vienna</a><ul> <li><a href="https://www.meetup.com/rust-vienna/events/294974346/" rel="noopener noreferrer"><strong>Rust Dojo</strong></a></li> </ul> </li> <li>2023-08-17 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/294201562/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-08-22 | Helsinki, FI | <a href="https://www.meetup.com/helsinki-rust-meetup-group" rel="noopener noreferrer">Finland Rust Meetup</a><ul> <li><a href="https://www.meetup.com/helsinki-rust-meetup-group/events/294616573/" rel="noopener noreferrer"><strong>Helsink Rustaceans First Gathering</strong></a></li> </ul> </li> <li>2023-08-24 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/293950871/" rel="noopener noreferrer"><strong>Rust Aarhus Hack and Learn at Trifork</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-08-07 | Minneapolis, MN, US | <a href="https://www.meetup.com/minneapolis-rust-meetup/" rel="noopener noreferrer">Minneapolis Rust Meetup</a><ul> <li><a href="https://www.meetup.com/minneapolis-rust-meetup/events/293561660/" rel="noopener noreferrer"><strong>Minneapolis Rust Meetup Happy Hour</strong></a></li> </ul> </li> <li>2023-08-10 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911475/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-10 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972766/" rel="noopener noreferrer"><strong>Building a simplified JVM in Rust</strong></a></li> </ul> </li> <li>2023-08-15 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfclbtb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-08-15 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294804636/" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-08-17 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/294805470/" rel="noopener noreferrer"><strong>Rust goes where it pleases. Rust on the web and embedded</strong></a></li> </ul> </li> <li>2023-08-23 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295008514" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-08-08 | Aukland, NZ | <a href="https://www.meetup.com/rust-akl/" rel="noopener noreferrer">Rust AKL</a><ul> <li><a href="https://www.meetup.com/rust-akl/events/294858251/" rel="noopener noreferrer"><strong>A Peek into GPU Computing + Safer Code with Code Generation</strong></a></li> </ul> </li> <li>2023-08-09 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.tickettailor.com/events/perthrustusergroup/970279" rel="noopener noreferrer"><strong>August Meetup</strong></a></li> </ul> </li> <li>2023-08-15 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/295143203/" rel="noopener noreferrer"><strong>(Hybrid - in person &amp; online) August 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>Writing return \&lt;something&gt;; at the end of a function in Rust is a bit like answering the question "Do you like potatoes?" with "Yes, I like potatoes" instead of simple "Yes".</p> </blockquote> <p>– <a href="https://users.rust-lang.org/t/enable-linting-for-implicit-returns/97170/15" rel="noopener noreferrer">Artem Borisovskiy on rust-users</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1453" rel="noopener noreferrer">Todd Fleming</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/15gpfpv/this_week_in_rust_506/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 505 freedit 2023-07-26 2023-07-26 113 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/07/26/this-week-in-rust-505/">This Week in Rust 505</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/inside-rust/2023/07/21/crates-io-postmortem.html" rel="noopener noreferrer">crates.io Postmortem: Broken Crate Downloads</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/07/25/leadership-council-update.html" rel="noopener noreferrer">July 2023 Leadership Council Update</a></li> </ul> <h3><a href="#foundation" rel="noopener noreferrer">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/three-months-at-the-rust-foundation/" rel="noopener noreferrer">My first three months at the Rust Foundation</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://intellij-rust.github.io/2023/07/24/changelog-199.html" rel="noopener noreferrer">IntelliJ Rust Changelog #199</a></li> <li><a href="https://fyrox.rs/blog/post/fyrox-game-engine-0-31/" rel="noopener noreferrer">Fyrox Game Engine 0.31</a></li> <li><a href="https://docs.shuttle.rs/tutorials/rest-http-service-with-axum" rel="noopener noreferrer">Writing a Rest HTTP Service with Axum</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://blog.yoshuawuyts.com/totality/" rel="noopener noreferrer">Totality</a></li> <li><a href="https://sabrinajewson.org/blog/null-lifetime" rel="noopener noreferrer">Why the “Null” Lifetime Does Not Exist</a></li> <li><a href="https://rust-digger.code-maven.com/news/first-report" rel="noopener noreferrer">First report: More than 80% of the crates link to their public VCS</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=nBL_8KsTA5g" rel="noopener noreferrer">Aram Drevekenin – Zellij - A terminal workspace with batteries included</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://geeklaunch.io/blog/make-invalid-states-unrepresentable/" rel="noopener noreferrer">Make invalid states unrepresentable</a></li> <li><a href="https://blog.danieljanus.pl/2023/07/20/iterating-trees/" rel="noopener noreferrer">A visual tree iterator in Rust</a></li> <li><a href="https://duesee.dev/p/a-gentle-introduction-to-imap/" rel="noopener noreferrer">A gentle introduction to IMAP</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-uart-communication" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: UART Communication</a></li> <li><a href="https://www.shuttle.rs/launchpad/issues/2023-03-07-issue-03-Ownership-Error-Handling" rel="noopener noreferrer">Shuttle Launchpad #3: Sudoku, Ownership and Error Handling</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=ZdStbqp0400&amp;list=PL4bcKu1Oi0f5eYmYJAOTYLGN7Lgr_B7mZ" rel="noopener noreferrer">Pragmatic Intro to Rust Web Development: Overview</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://www.ecrts.org/wp-content/uploads/2023/07/ospert23-proceedings.pdf#page=12" rel="noopener noreferrer">ResourceGauge: Enabling Resource-Aware Software Components (with Rust)</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://nnethercote.github.io/2023/07/25/how-to-speed-up-the-rust-compiler-data-analysis-assistance-requested.html" rel="noopener noreferrer">How to speed up the Rust compiler: data analysis assistance requested!</a></li> <li><a href="https://szabgab.com/programming-language-popularity-rust" rel="noopener noreferrer">Programming language popularity: Rust</a></li> <li><a href="https://github.com/gaxler/llama2.rs/" rel="noopener noreferrer">Llama2.rs - Inference Llama 2 in one file of pure Rust</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/plabayo/tower-async" rel="noopener noreferrer">tower-async</a>, a currently nightly-only async library to build network servers, based on <a href="https://docs.rs/tower" rel="noopener noreferrer">tower</a>.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1218" rel="noopener noreferrer">Glen De Cauwsemaecker</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/build-trust/ockam/issues/5364" rel="noopener noreferrer">Ockam - Investigate if the macOS toggle is possible in system tray app build with Tauri</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5215" rel="noopener noreferrer">Ockam - Avoid setting an embedded node as default for <code>ockam project enroll</code></a></li> <li><a href="https://github.com/build-trust/ockam/issues/5226" rel="noopener noreferrer">Ockam - <code>ockam project ticket</code> should return a proper error message</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/921" rel="noopener noreferrer">Hyperswitch - Migrate to enum_dispatch to reduce runtime overhead</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1793" rel="noopener noreferrer">Hyperswitch - Add Create Merchant and Create Merchant Key Store in a DB transaction</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1039" rel="noopener noreferrer">Hyperswitch - Use proxy exclusion instead of a separate proxied client</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1580" rel="noopener noreferrer">Hyperswitch - Add scoped error enum for customer error</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>406 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-07-17..2023-07-24" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112374" rel="noopener noreferrer">add mips64r6 and mips32r6 as <code>target_arch</code> values</a></li> <li><a href="https://github.com/rust-lang/rust/pull/114004" rel="noopener noreferrer">add <code>riscv64gc-unknown-hermit</code> target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113061" rel="noopener noreferrer">add <code>x86_64-unknown-linux-ohos</code> target</a></li> <li><a href="https://github.com/rust-lang/compiler-builtins/pull/541" rel="noopener noreferrer">enable chkstk/alloca intrinsics on <code>x86_64-unknown-uefi</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/97550" rel="noopener noreferrer">Support <code>.comment</code> section like GCC/Clang (<code>!llvm.ident</code>)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113943" rel="noopener noreferrer">add Alias to smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113746" rel="noopener noreferrer">add BITS, <code>from_bits, to_bits</code> to IP addresses</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113910" rel="noopener noreferrer">add FnPtr ty to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113827" rel="noopener noreferrer">add Foreign, Never, FnDef, Closure and Generator tys to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113687" rel="noopener noreferrer">add <code>#[inline]</code> to core debug assertion helpers</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113969" rel="noopener noreferrer">add dynamic for smir</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113716" rel="noopener noreferrer">add the <code>no-builtins</code> attribute to functions when <code>no_builtins</code> is applied at the crate level</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113659" rel="noopener noreferrer">add ty convs for smir refs and ptrs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113690" rel="noopener noreferrer">allow opaques to be defined by trait queries, again</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113858" rel="noopener noreferrer">always const-prop scalars and scalar pairs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113861" rel="noopener noreferrer">avoid tls access while iterating through mpsc thread entries</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112591" rel="noopener noreferrer">better diagnostics for dlltool errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113987" rel="noopener noreferrer">comment stuff in the new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113884" rel="noopener noreferrer">don't translate compiler-internal bug messages</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113850" rel="noopener noreferrer">encode shorthands for spans in metadata</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113913" rel="noopener noreferrer">error/E0691: include alignment in error message</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111836" rel="noopener noreferrer">fix <code>#[inline(always)]</code> on closures with target feature 1.1</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113803" rel="noopener noreferrer">fix <code>inline_const</code> with interpolated block</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113785" rel="noopener noreferrer">fix invalid display of inlined re-export when both local and foreign items are inlined</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113811" rel="noopener noreferrer">fix removal span calculation of <code>unused_qualifications</code> suggestion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113823" rel="noopener noreferrer">fix results search alias display</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113948" rel="noopener noreferrer">fix rustc-args passing issue in bootstrap</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113344" rel="noopener noreferrer">get <code>!nonnull</code> metadata on slice iterators, without <code>assume</code>s</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113901" rel="noopener noreferrer">get rid of subst-relate incompleteness in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113774" rel="noopener noreferrer">improve error message when closing bracket interpreted as formatting fill character</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113777" rel="noopener noreferrer">inline overlap based CGU merging</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113921" rel="noopener noreferrer">lint/ctypes: only try normalize</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113887" rel="noopener noreferrer">new solver: add a separate cache for coherence</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113835" rel="noopener noreferrer">new solver: don't consider blanket impls multiple times</a></li> <li><a href="https://github.com/rust-lang/rust/pull/108714" rel="noopener noreferrer">on nightly, dump ICE backtraces to disk</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113529" rel="noopener noreferrer">permit pre-evaluated constants in <code>simd_shuffle</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113166" rel="noopener noreferrer">prototype: add unstable <code>-Z reference-niches</code> option</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113546" rel="noopener noreferrer">querify unused trait check</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113856" rel="noopener noreferrer">refactor vtable encoding and optimize it for the case of multiple marker traits</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113950" rel="noopener noreferrer">remove <code>Scope::Elision</code> from bound-vars resolution</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113801" rel="noopener noreferrer">rename <code>arg_iter</code> to <code>iter_instantiated</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113636" rel="noopener noreferrer">restrict recursive opaque type check</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113723" rel="noopener noreferrer">resurrect: <code>rustc_llvm</code>: Add a -Z <code>print-codegen-stats</code> option to expose LLVM statistics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113877" rel="noopener noreferrer">reuse <code>codegen_ssa</code> monomorphization errors in <code>codegen_gcc</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113853" rel="noopener noreferrer">reuse the MIR validator for MIR inlining</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113946" rel="noopener noreferrer">revert "Prototype: Add unstable <code>-Z reference-niches</code> option"</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113677" rel="noopener noreferrer">safe Transmute: Fix ICE (due to UnevaluatedConst)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113802" rel="noopener noreferrer">substitute types before checking inlining compatibility</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113780" rel="noopener noreferrer">support <code>--print KIND=PATH</code> command line syntax</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112953" rel="noopener noreferrer">support interpolated block for <code>try</code> and <code>async</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113758" rel="noopener noreferrer">turn copy into moves during DSE</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112508" rel="noopener noreferrer">tweak spans for self arg, fix borrow suggestion for signature mismatch</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113707" rel="noopener noreferrer">use SHA256 source file checksums by default when targeting MSVC</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113961" rel="noopener noreferrer">use <code>features()</code> over <code>features_untracked()</code> where possible</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113985" rel="noopener noreferrer">use erased self type when autoderefing for trait error suggestion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113871" rel="noopener noreferrer">use the correct span for displaying the line following a derive sugge…</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2985" rel="noopener noreferrer">miri: make full field retagging the default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113972" rel="noopener noreferrer">remove redundant clones</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113898" rel="noopener noreferrer">fix <code>size_hint</code> for <code>EncodeUtf16</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113442" rel="noopener noreferrer">allow limited access to <code>OsString</code> bytes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113810" rel="noopener noreferrer">make <code>{Rc,Arc}::allocator</code> associated functions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113033" rel="noopener noreferrer">stabilize chown functions (<code>unix_chown</code>)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113106" rel="noopener noreferrer">remove an allocation in <code>Path::with_extension</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/105571" rel="noopener noreferrer">remove the unstable <code>core::sync::atomic::ATOMIC_*_INIT</code> constants</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113224" rel="noopener noreferrer">remove lifetime bound for A for <code>impl Extend&lt;&amp;'a T&gt; for Vec&lt;T, A&gt;</code></a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/446" rel="noopener noreferrer">hashbrown: publicly re-export <code>Equivalent</code> from the crate root</a></li> <li><a href="https://github.com/rust-lang/futures-rs/pull/2757" rel="noopener noreferrer">futures: add <code>TryStreamExt::try_ready_chunks</code> as failable version of <code>StreamExt::ready_chunks</code></a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/308" rel="noopener noreferrer">codegen_gcc: add instructions on how to generate GIMPLE format</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/307" rel="noopener noreferrer">codegen_gcc: add support for <code>"ffi_const"</code> function attribute</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12359" rel="noopener noreferrer">cargo: git: respect scp-like URL for nested submodules</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12334" rel="noopener noreferrer">cargo: credential provider implementation</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12373" rel="noopener noreferrer">cargo: fix "cargo doc --open" crash on WSL2</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12280" rel="noopener noreferrer">cargo: fix: encode URL params correctly for SourceId in Cargo.lock</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12369" rel="noopener noreferrer">cargo: fix: only skip mtime check on <code>~/.cargo/{git,registry}</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113574" rel="noopener noreferrer">rustdoc: strip impl if not re-exported and is <code>doc(hidden)</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/110765" rel="noopener noreferrer">rustdoc: fix position of <code>default</code> in method rendering</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113956" rel="noopener noreferrer">rustdoc: handle cross-crate RPITITs correctly</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11161" rel="noopener noreferrer">clippy: <code>significant_drop_tightening</code> don't lint literal-returning functions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11196" rel="noopener noreferrer">clippy: <code>significant_drop_tightening</code> fix tuple drop recognition</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11205" rel="noopener noreferrer">clippy: <code>inherent_to_string</code>: Don't lint <code>unsafe</code> or <code>extern</code> fns</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10949" rel="noopener noreferrer">clippy: <code>manual_filter_map</code>: lint on <code>matches</code> and pattern matching</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11215" rel="noopener noreferrer">clippy: <code>ptr_arg</code> should ignore extern functions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11175" rel="noopener noreferrer">clippy: <code>redundant_pattern_matching</code>: include guard in suggestion</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11106" rel="noopener noreferrer">clippy: <code>unnecessary_literal_unwrap</code>: fix ICE on <code>None.unwrap_or_default()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11200" rel="noopener noreferrer">clippy: <code>unused_async</code>: don't lint if paths reference async fn without immediate call</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10120" rel="noopener noreferrer">clippy: <code>unwrap_or_else_default</code> → <code>unwrap_or_default</code> and improve resulting lint</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11188" rel="noopener noreferrer">clippy: allow <code>Self::cmp(self, other)</code> as a correct impl</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10971" rel="noopener noreferrer">clippy: check for fully qualified paths in <code>unnecessary_cast</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11214" rel="noopener noreferrer">clippy: check that the types are equal in <code>SpanlessEq::eq_expr</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11135" rel="noopener noreferrer">clippy: fix <code>unwrap_or_else_default</code> false positive</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11184" rel="noopener noreferrer">clippy: fix async functions handling for <code>needless_pass_by_ref_mut</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11195" rel="noopener noreferrer">clippy: fix: false positive for <code>option_env!</code> in <code>ifs_same_cond</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11029" rel="noopener noreferrer">clippy: make <code>comparison_to_empty</code> work on <code>if let</code>/<code>let</code> chains</a></li> <li>clippy: new lints: <a href="https://github.com/rust-lang/rust-clippy/pull/11003" rel="noopener noreferrer"><code>absolute_paths</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11107" rel="noopener noreferrer"><code>error_impl_error</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11140" rel="noopener noreferrer"><code>four_forward_slashes</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11046" rel="noopener noreferrer"><code>iter_skip_zero</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11031" rel="noopener noreferrer"><code>needless_return_with_try</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10955" rel="noopener noreferrer"><code>redundant_guards</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11052" rel="noopener noreferrer"><code>string_lit_chars_any</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10885" rel="noopener noreferrer"> <code>redundant_locals</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11166" rel="noopener noreferrer">clippy: refactor some of <code>dereference.rs</code> to util functions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11183" rel="noopener noreferrer">clippy: remove <code>#![allow(unused)]</code> and <code>--crate-name</code> from <code>cargo dev new_lint</code> generated tests</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11171" rel="noopener noreferrer">clippy: rewrite <code>tuple_array_conversions</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15290" rel="noopener noreferrer">rust-analyzer: editor/code: Use notification command links for debugger installation</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15303" rel="noopener noreferrer">rust-analyzer: fix highlighting of byte escape sequences</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15312" rel="noopener noreferrer">rust-analyzer: fix: don't follow raw pointer derefs when considering method receiver candidates</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15317" rel="noopener noreferrer">rust-analyzer: fix: lookup super traits in <code>is_dyn_method</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15325" rel="noopener noreferrer">rust-analyzer: fix: normalize expected ty in call arguments</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15320" rel="noopener noreferrer">rust-analyzer: fix: report <code>incorrect-ident-case</code> for inner items</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15277" rel="noopener noreferrer">rust-analyzer: limit <code>change_visibility</code> assist to applicable items</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5833" rel="noopener noreferrer">rustfmt: prevent ICE when formatting an empty-ish macro arm</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5848" rel="noopener noreferrer">rustfmt: support non-lifetime binders</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A relatively light week with respect to performance changes. The one major regressing PR was reverted (for other reasons), and we saw some very nice gains on compile-times from (1.) changes to our codegen-unit merging logic and from (2.) changes to the stdlib slice iterators encoding its non-null guarantees directly, allowing the removal of a call to the <code>assume</code> intrinsic.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=6b9236ed5a58879969ddcf4c35a6a24f6260e979&amp;end=0308df23e621e783e31a27ca5beaa01b9df60d4a&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">6b9236ed..0308df23</a></p> <p>1 Regressions, 1 Improvements, 4 Mixed; 1 of them in rollups 35 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-07-26.md" rel="noopener noreferrer">Full Report Here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111916" rel="noopener noreferrer">make <code>noop_method_call</code> warn by default</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113199" rel="noopener noreferrer">Infer type in irrefutable slice patterns with fixed length as array</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3463" rel="noopener noreferrer">Add "crates.io Policy Update" RFC</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3461" rel="noopener noreferrer">RFC: Generic member access for dyn Error trait objects</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3459" rel="noopener noreferrer">Error Display (std::error::Error::fmt_error)</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-07-26 - 2023-08-23 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-07-26 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-07-27 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfckbkc/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-07-28 | Virtual (Tunis, TN) | <a href="https://www.meetup.com/rust-tunisia/" rel="noopener noreferrer">Rust Meetup Tunisia</a><ul> <li><a href="https://www.meetup.com/rust-tunisia/events/294664236/" rel="noopener noreferrer"><strong>Rust Meetup Tunisia - Volume I, Number IV</strong></a></li> </ul> </li> <li>2023-07-31 | Virtual (Linz, AT) | <a href="https://www.meetup.com/rust-linz/" rel="noopener noreferrer">Rust Linz</a><ul> <li><a href="https://www.meetup.com/rust-linz/events/294718541/" rel="noopener noreferrer"><strong>Rust Meetup Linz - 31st Edition</strong></a></li> </ul> </li> <li>2023-08-01 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbcb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-01 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfclbcb/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-08-02 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/294768155" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-08-02 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/294788420" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-08-08 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfclblb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-08-10 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732653" rel="noopener noreferrer"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbtb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/" rel="noopener noreferrer">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/293553331/" rel="noopener noreferrer"><strong>Mid-month Rustful</strong></a></li> </ul> </li> <li>2023-08-16 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/kmhpftyfclbvb/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-08-22 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294587280/" rel="noopener noreferrer"><strong>Rust, Serverless and AWS</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-07-27 | Seoul, KR | <a href="https://www.meetup.com/rust-seoul-meetup/" rel="noopener noreferrer">Rust Programming Meetup Seoul</a><ul> <li><a href="https://www.meetup.com/rust-seoul-meetup/events/294832771/" rel="noopener noreferrer"><strong>Seoul Rust Meetup</strong></a></li> </ul> </li> <li>2023-07-27 | Seoul, KR | <a href="https://www.meetup.com/t-rust-meetup/" rel="noopener noreferrer">T-RUST meetup</a><ul> <li><a href="https://www.meetup.com/t-rust-meetup/events/295001681/" rel="noopener noreferrer"><strong>🦀 7/27(목) T-RUST Meetup 🦀 (+ 현직자 네트워킹 세션)</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-07-27 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294780997" rel="noopener noreferrer"><strong>Rust metup #38 at Deloitte!</strong></a></li> </ul> </li> <li>2023-07-27 | Vienna, AT | <a href="https://www.meetup.com/rust-vienna" rel="noopener noreferrer">Rust Vienna</a><ul> <li><a href="https://www.meetup.com/rust-vienna/events/294974346/" rel="noopener noreferrer"><strong>Rust Dojo</strong></a></li> </ul> </li> <li>2023-08-17 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/294201562/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-08-22 | Helsinki, FI | <a href="https://www.meetup.com/helsinki-rust-meetup-group" rel="noopener noreferrer">Finland Rust Meetup</a><ul> <li><a href="https://www.meetup.com/helsinki-rust-meetup-group/events/294616573/" rel="noopener noreferrer"><strong>Helsink Rustaceans First Gathering</strong></a></li> </ul> </li> <li>2023-08-24 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/" rel="noopener noreferrer">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/293950871/" rel="noopener noreferrer"><strong>Rust Aarhus Hack and Learn at Trifork</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-07-27 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911462/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-01 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/" rel="noopener noreferrer">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/294951373/" rel="noopener noreferrer"><strong>Rust Happy Hour</strong></a></li> </ul> </li> <li>2023-08-07 | Minneapolis, MN, US | <a href="https://www.meetup.com/minneapolis-rust-meetup/" rel="noopener noreferrer">Minneapolis Rust Meetup</a><ul> <li><a href="https://www.meetup.com/minneapolis-rust-meetup/events/293561660/" rel="noopener noreferrer"><strong>Minneapolis Rust Meetup Happy Hour</strong></a></li> </ul> </li> <li>2023-08-10 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911475/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-10 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294972766/" rel="noopener noreferrer"><strong>Building a simplified JVM in Rust</strong></a></li> </ul> </li> <li>2023-08-15 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfclbtb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-08-15 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294804636/" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> <li>2023-08-17 | Nashville, TN, US | <a href="https://www.meetup.com/music-city-rust-developers/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/music-city-rust-developers/events/294805470/" rel="noopener noreferrer"><strong>Rust goes where it pleases. Rust on the web and embedded</strong></a></li> </ul> </li> <li>2023-08-23 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/295008514" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-07-27 | Brisbane, QLD, AU | <a href="https://www.meetup.com/rust-brisbane/" rel="noopener noreferrer">Rust Brisbane</a><ul> <li><a href="https://www.meetup.com/rust-brisbane/events/294857868/" rel="noopener noreferrer"><strong>July Meetup</strong></a></li> </ul> </li> <li>2023-08-08 | Aukland, NZ | <a href="https://www.meetup.com/rust-akl/" rel="noopener noreferrer">Rust AKL</a><ul> <li><a href="https://www.meetup.com/rust-akl/events/294858251/" rel="noopener noreferrer"><strong>A Peek into GPU Computing + Safer Code with Code Generation</strong></a></li> </ul> </li> <li>2023-08-09 | Perth, WA, AU | <a href="https://www.linkedin.com/groups/7439562/" rel="noopener noreferrer">Rust Perth</a><ul> <li><a href="https://www.tickettailor.com/events/perthrustusergroup/970279" rel="noopener noreferrer"><strong>August Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>A rustacean is a programmer that dislikes being told "yes" in situations where they'll regret it later.</p> </blockquote> <p>– <a href="https://hachyderm.io/@predrag/110720182333519119" rel="noopener noreferrer">Predrag Gruevski on mastodon</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1452" rel="noopener noreferrer">Kevin Mehall</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/15annnw/this_week_in_rust_505/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 504 freedit 2023-07-19 2023-07-19 112 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/07/19/this-week-in-rust-504/">This Week in Rust 504</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/07/13/Rust-1.71.0.html" rel="noopener noreferrer">Announcing Rust 1.71.0</a></li> <li><a href="https://blog.rust-lang.org/inside-rust/2023/07/17/trait-system-refactor-initiative.html" rel="noopener noreferrer">Rustc Trait System Refactor Initiative Update</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/07/17/changelog-190.html" rel="noopener noreferrer">rust-analyzer changelog #190</a></li> <li><a href="https://blog.orhun.dev/ratatui-0-22-0/" rel="noopener noreferrer">Generating terminal user interfaces with Ratatui + ChatGPT</a></li> <li><a href="https://www.reddit.com/r/KaniRustVerifier/comments/14xytrg/kani_0320_has_been_released/" rel="noopener noreferrer">Kani 0.32.0 has been released!</a></li> <li><a href="https://www.reddit.com/r/rust_gamedev/comments/14zr5i5/bevy_xpbd_020_spatial_queries_bevy_011_support/" rel="noopener noreferrer">Bevy XPBD 0.2.0: Spatial queries, Bevy 0.11 support, and a lot more</a></li> <li><a href="https://www.reddit.com/r/rust/comments/151usd5/bwrap_a_fast_lightweight_embedded/" rel="noopener noreferrer">bwrap : A fast, lightweight, embedded environment-friendly Rust library for wrapping text</a></li> <li><a href="https://www.youtube.com/watch?v=KXfiWbCHlBw" rel="noopener noreferrer">We Just Released our Rust Teleconferencing System for Free</a> | <a href="https://github.com/security-union/videocall-rs" rel="noopener noreferrer">Repo</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://cliffle.com/blog/lilos-cancel-safety/" rel="noopener noreferrer">Mutex without lock, Queue without push: cancel safety in lilos</a></li> <li><a href="https://tweedegolf.nl/en/blog/96/why-rust-is-a-great-fit-for-embedded-software-2023-update" rel="noopener noreferrer">Why Rust is a great fit for embedded software - 2023 update</a></li> <li><a href="https://ipthomas.com/blog/2023/07/n-times-faster-than-c-where-n-128/" rel="noopener noreferrer">{n} times faster than C, where n = 128</a></li> <li><a href="https://andreabergia.com/blog/2023/07/i-have-written-a-jvm-in-rust/" rel="noopener noreferrer">I have written a JVM in Rust</a></li> <li><a href="https://jbecker.dev/research/on-writing-performant-rust" rel="noopener noreferrer">On Maximizing Your Rust Code's Performance</a></li> <li><a href="https://blog.goose.love/posts/rustdoc/" rel="noopener noreferrer">How <code>rustdoc</code> achieves a genius design</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-standard-library-embedded-rust-gpio-control" rel="noopener noreferrer">ESP32 Standard Library Embedded Rust: GPIO Control</a></li> <li><a href="https://mo8it.com/blog/rust-vs-julia/" rel="noopener noreferrer">Rust vs Julia in scientific computing</a></li> <li><a href="https://stace.dev/writing-a-dns-resolver/" rel="noopener noreferrer">Writing a toy DNS resolver in Rust</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li>[series] <a href="https://medium.com/@omprakashsridharan/rust-multi-module-microservices-part-1-introduction-fb0121f1d541" rel="noopener noreferrer">Rust multi crate monorepo microservices series with Kafka, Apache Avro, OpenTelemetry tracing</a></li> <li><a href="https://pythonspeed.com/articles/easiest-rust-python/" rel="noopener noreferrer">The easiest way to speed up Python with Rust</a></li> <li><a href="https://thetechtrailblazer.blog/2023/07/18/writing-an-ai-chatbot-in-rust-and-solid-js/" rel="noopener noreferrer">Writing an AI Chatbot in Rust and Solid.js</a></li> <li><a href="https://antoniosbarotsis.github.io/posts/simple_rust_macros/" rel="noopener noreferrer">Simple Rust Function Macros</a></li> <li><a href="https://github.com/infinyon/sql-connector" rel="noopener noreferrer">Updated fluvio SQL sink connector (repo)</a> | <a href="https://infinyon.com/blog/2023/07/sql-upsert/" rel="noopener noreferrer">Walkthrough of deduplication on write using upsert function</a></li> <li>[video] <a href="https://youtu.be/8DG1V9nNYeg" rel="noopener noreferrer">Rust Releases! Rust 1.71.0</a></li> <li><a href="https://github.com/tui-rs-revival/ratatui/releases/tag/v0.22.0" rel="noopener noreferrer">ratatui 0.22.0 is released! (community fork of tui-rs)</a></li> <li><a href="https://interrupt.memfault.com/blog/embedded-async-rust" rel="noopener noreferrer">Asynchronous Rust on Cortex-M Microcontrollers</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://www.doc.ic.ac.uk/~afd/homepages/papers/pdfs/2023/ISSTA-tool.pdf" rel="noopener noreferrer">RustSmith: Random Differential Compiler Testing for Rust</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li>[video] <a href="https://www.youtube.com/watch?v=SqT5YglW3qU" rel="noopener noreferrer">How Functions Function</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=dad1NQdjd0I" rel="noopener noreferrer">Rust's iterators are more interesting than they look</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/albert-larsan/" rel="noopener noreferrer">Bootstrapping Rust with Albert Larsan</a></li> </ul> <p>[release] <a href="https://ferrous-systems.com/blog/a-decade-of-rust/" rel="noopener noreferrer">A Decade of Rust, and Announcing Ferrocene</a></p> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://docs.rs/ratatui" rel="noopener noreferrer">ratatui</a>, a crate to build rich terminal user interfaces and dashboards.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1217" rel="noopener noreferrer">orhun</a> for the (partial self-)suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/1754" rel="noopener noreferrer">Hyperswitch - Replacing the occurrences of gen_range with a safe alternative</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1750" rel="noopener noreferrer">Hyperswitch - Include Currency Conversion utility functions to Currency Trait implementation</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1705" rel="noopener noreferrer">Hyperswitch - Change Currency Enum to text string</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5365" rel="noopener noreferrer">Ockam - Tauri based Ockam App: Stop app from appearing in the macOS dock&nbsp;1</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5338" rel="noopener noreferrer">Ockam - Tauri based Ockam App: Verify if a user is properly enrolled when starting the app&nbsp;1</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5384" rel="noopener noreferrer">Ockam - Clap based Ockam Command: Irregular spacing in output when calling&nbsp;<code>ockam node list</code>&nbsp;1</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>391 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-07-10..2023-07-17" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/113528" rel="noopener noreferrer">dynamically size sigaltstk in rustc</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112239" rel="noopener noreferrer">add <code>#[rustc_confusables]</code> attribute to allow targeted "no method" error suggestions on standard library types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112729" rel="noopener noreferrer">add machine-applicable suggestion for <code>unused_qualifications</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113336" rel="noopener noreferrer">add support for inherent projections in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113471" rel="noopener noreferrer">allow escaping bound vars during <code>normalize_erasing_regions</code> in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113536" rel="noopener noreferrer">avoid building proof trees in select</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113545" rel="noopener noreferrer">check entry type as part of item type checking</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113742" rel="noopener noreferrer">don't call <code>predicate_must_hold</code>-esque functions during fulfillment in intercrate</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113214" rel="noopener noreferrer">don't fail early if <code>try_run</code> returns an error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113310" rel="noopener noreferrer">don't suggest <code>impl Trait</code> in path position</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113328" rel="noopener noreferrer">enable <code>potential_query_instability</code> lint in <code>rustc_hir_typeck</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113175" rel="noopener noreferrer">enable coinduction support for Safe Transmute</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113770" rel="noopener noreferrer">generate safe stable code for derives on empty enums</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113663" rel="noopener noreferrer">implement "items do not inherit unsafety" note for THIR unsafeck</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113353" rel="noopener noreferrer">implement selection for <code>Unsize</code> for better coercion behavior</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113560" rel="noopener noreferrer">lint against misplaced where-clauses on associated types in traits</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113755" rel="noopener noreferrer">normalize lazy type aliases when probing for ADTs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113470" rel="noopener noreferrer">structurally resolve in pattern matching when peeling refs in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113682" rel="noopener noreferrer">trait system refactor ping: also apply to nested modules of <code>solve</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111717" rel="noopener noreferrer">uplift <code>clippy::fn_null_check</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113567" rel="noopener noreferrer">while let suggestion will work for closure body</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112717" rel="noopener noreferrer">implement a few more rvalue translation to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113629" rel="noopener noreferrer">add Adt to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113639" rel="noopener noreferrer">add more ty conversions to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109025" rel="noopener noreferrer">enable MIR reference propagation by default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113720" rel="noopener noreferrer">miri: fail when calling a function that requires an unavailable target feature</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113569" rel="noopener noreferrer">miri: protect <code>Move()</code> function arguments during the call</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2980" rel="noopener noreferrer">miri: work around <code>custom_mir</code> span</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112157" rel="noopener noreferrer"><code>rustc_target</code>: Add alignment to indirectly-passed by-value types, correcting the alignment of byval on x86 in the process</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113609" rel="noopener noreferrer">add a cache for <code>maybe_lint_level_root_bounded</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113316" rel="noopener noreferrer">rewrite <code>UnDerefer</code>, again</a></li> <li><a href="https://github.com/rust-lang/rust/pull/89132" rel="noopener noreferrer">add support for allocators in <code>Rc</code> &amp; <code>Arc</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/103754" rel="noopener noreferrer"><code>std::io</code>: add back <code>BorrowedBuf::filled_mut</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113113" rel="noopener noreferrer">eliminate ZST allocations in <code>Box</code> and <code>Vec</code></a></li> <li><a href="https://github.com/rust-lang/regex/pull/1033" rel="noopener noreferrer">regex: improve literal extraction from certain repetitions</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/305" rel="noopener noreferrer">codegen_gcc: add support for <code>pure</code> function attribute</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/301" rel="noopener noreferrer">codegen_gcc: add support for <code>returns_twice</code> function attribute</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12349" rel="noopener noreferrer">cargo: Always generate valid package names</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12350" rel="noopener noreferrer">cargo: Error on intentionally unsupported commands</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113623" rel="noopener noreferrer">rustdoc: add jump to doc to sourceview</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11147" rel="noopener noreferrer">clippy: <code>arithmetic_side_effect</code>: allow different types on the right hand side for <code>Wrapping&lt;T&gt;</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11123" rel="noopener noreferrer">clippy: <code>panic_in_result_fn</code> remove <code>todo!</code>, unimplemented!<code>, unreachable!</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11083" rel="noopener noreferrer">clippy: <code>semicolon_if_nothing_returned</code>: add an autofix</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11146" rel="noopener noreferrer">clippy: <code>tuple_array_conversions</code>: move from <code>complexity</code> to <code>nursery</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11098" rel="noopener noreferrer">clippy: <code>unnecessary_literal_unwrap</code>: also lint <code>unwrap_(err_)unchecked</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11173" rel="noopener noreferrer">clippy: don't lint <code>needless_return</code> in fns across a macro boundary</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11116" rel="noopener noreferrer">clippy: new lint: <code>format_collect</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15268" rel="noopener noreferrer">rust-analyzer: add <code>write_bytes</code> and ctlz intrinsics</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15284" rel="noopener noreferrer">rust-analyzer: enable cfg miri in analysis</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15248" rel="noopener noreferrer">rust-analyzer: fix eager token mapping panics</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15295" rel="noopener noreferrer">rust-analyzer: fix rust-analzyer ssr help message</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15282" rel="noopener noreferrer">rust-analyzer: give real <code>discriminant_type</code> to chalk</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15288" rel="noopener noreferrer">rust-analyzer: handle TyAlias in <code>projected_ty</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15270" rel="noopener noreferrer">rust-analyzer: make fields of <code>mir::Terminator</code> public</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15297" rel="noopener noreferrer">rust-analyzer: normalize type alias in <code>projected_ty</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15291" rel="noopener noreferrer">rust-analyzer: revert "Handle TyAlias in <code>projected_ty"</code></a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A lot of spurious results in the regressions this week. However, we did see some real gains with PR #113609, with nearly 40 real-world benchmarks improving their check-build performance by &gt;=1%.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=1d4f5affbdee00c816f961c227c6b28a3e725ce6&amp;end=6b9236ed5a58879969ddcf4c35a6a24f6260e979&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">1d4f5aff..6b9236ed</a></p> <p>5 Regressions, 5 Improvements, 5 Mixed; 2 of them in rollups 57 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-07-18.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113199" rel="noopener noreferrer">Infer type in irrefutable slice patterns with fixed length as array</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113312" rel="noopener noreferrer">discard default auto trait impls if explicit ones exist (rebase of #85048)</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112953" rel="noopener noreferrer">Support interpolated block for <code>try</code> and <code>async</code></a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/111738" rel="noopener noreferrer">Uplift <code>clippy::option_env_unwrap</code> lint</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/97571" rel="noopener noreferrer">Add documentation on v0 symbol mangling.</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/cargo/issues/8728" rel="noopener noreferrer">Check Cargo.lock in to version control for libraries</a> </li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3458" rel="noopener noreferrer">Unsafe fields</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-07-19 - 2023-08-16 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-07-19 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763486" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-07-20 | Virtual (Tehran, IR) | <a href="https://rust-meetup.ir/" rel="noopener noreferrer">Iran Rust Meetup</a><ul> <li><a href="https://rust-meetup.ir/2023/07/20/12th-meetup.html" rel="noopener noreferrer"><strong>Iran Rust Meetup #12 - Ownership and Memory management</strong></a></li> </ul> </li> <li>2023-07-24 | Virtual (Toronto, CA) | <a href="https://www.meetup.com/programming-languages-toronto-meetup/" rel="noopener noreferrer">Programming Languages Virtual Meetup</a><ul> <li><a href="https://www.meetup.com/programming-languages-toronto-meetup/events/294616842" rel="noopener noreferrer"><strong>Crafting Interpreters Chapter 18: Types of Values</strong></a></li> </ul> </li> <li>2023-07-25 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfckbhc/" rel="noopener noreferrer"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-07-25 | Virtual (Dublin, IE) | <a href="https://www.meetup.com/Rust-Dublin/" rel="noopener noreferrer">Rust Dublin</a><ul> <li><a href="https://www.meetup.com/Rust-Dublin/events/294557256/" rel="noopener noreferrer"><strong>Ruff. An extremely fast Python linter, written in Rust</strong></a></li> </ul> </li> <li>2023-07-26 | Virtual (Cardiff, UK)| <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294748626" rel="noopener noreferrer"><strong>The unreasonable power of combinator APIs</strong></a></li> </ul> </li> <li>2023-07-27 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfckbkc/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-07-28 | Virtual (Tunis, TN) | <a href="https://www.meetup.com/rust-tunisia/" rel="noopener noreferrer">Rust Meetup Tunisia</a><ul> <li><a href="https://www.meetup.com/rust-tunisia/events/294664236/" rel="noopener noreferrer"><strong>Rust Meetup Tunisia - Volume I, Number IV</strong></a></li> </ul> </li> <li>2023-08-01 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbcb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-01 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfclbcb//" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-08-08 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfclblb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-08-15 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfclbtb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-08-16 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/kmhpftyfclbvb/" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-07-27 | Seoul, KR | <a href="https://www.meetup.com/rust-seoul-meetup/" rel="noopener noreferrer">Rust Programming Meetup Seoul</a><ul> <li><a href="https://www.meetup.com/rust-seoul-meetup/events/294832771/" rel="noopener noreferrer"><strong>Seoul Rust Meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-07-21 | Nuremberg, DE | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293823522/" rel="noopener noreferrer"><strong>Rust Nuremberg Get Together #2</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-07-27 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911462/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-10 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294911475/" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-08-15 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294804636/" rel="noopener noreferrer"><strong>Seattle Rust User Group - August Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/14zmcpw/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>(...) complexity in programming is just like energy in physics: it cannot be created, nor destroyed, but only transformed. So, if a programming language is simple and can only express very simple concepts, the complexity is going to move from the language constructs to your source code and vice versa. One needs to find a balance here, it's a personal choice based on mindset and experience.</p> </blockquote> <p>– <a href="https://www.reddit.com/r/rust/comments/14wubzc/fighting_rust_anxiety_insights_from_a_go_developer/jrkpte4" rel="noopener noreferrer">u/inamestuff on r/rust</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1447" rel="noopener noreferrer">Arthur Rodrigues</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="REDDIT_LINK_HERE" rel="noopener noreferrer">Discuss on r/rust</a></small></p> Announcing Rust 1.71.0 freedit 2023-07-13 2023-07-13 108 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/07/13/Rust-1.71.0.html">Announcing Rust 1.71.0</a> </div> </article> <p>The Rust team is happy to announce a new version of Rust, 1.71.0. Rust is a programming language empowering everyone to build reliable and efficient software.</p> <p>If you have a previous version of Rust installed via rustup, you can get 1.71.0 with:</p> <pre><code>rustup update stable </code></pre> <p>If you don't have it already, you can <a href="https://www.rust-lang.org/install.html" rel="noopener noreferrer">get <code>rustup</code></a> from the appropriate page on our website, and check out the <a href="https://github.com/rust-lang/rust/releases/tag/1.71.0" rel="noopener noreferrer">detailed release notes for 1.71.0</a> on GitHub.</p> <p>If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (<code>rustup default beta</code>) or the nightly channel (<code>rustup default nightly</code>). Please <a href="https://github.com/rust-lang/rust/issues/new/choose" rel="noopener noreferrer">report</a> any bugs you might come across!</p> <h2><a href="#whats-in-1710-stable" rel="noopener noreferrer"></a>What's in 1.71.0 stable</h2> <h3><a href="#c-unwind-abi" rel="noopener noreferrer"></a>C-unwind ABI</h3> <p>1.71.0 stabilizes <code>C-unwind</code> (and other <code>-unwind</code> suffixed ABI variants<sup><a href="#fn1" rel="noopener noreferrer">1</a></sup>).</p> <p>The behavior for unforced unwinding (the typical case) is specified in <a href="https://github.com/rust-lang/rfcs/blob/master/text/2945-c-unwind-abi.md#abi-boundaries-and-unforced-unwinding" rel="noopener noreferrer">this table from the RFC which proposed this feature</a>. To summarize:</p> <p>Each ABI is mostly equivalent to the same ABI without <code>-unwind</code>, except that with <code>-unwind</code> the behavior is defined to be safe when an unwinding operation (<code>panic</code> or C++ style exception) crosses the ABI boundary. For <code>panic=unwind</code>, this is a valid way to let exceptions from one language unwind the stack in another language without terminating the process (as long as the exception is caught in the same language from which it originated); for <code>panic=abort</code>, this will typically abort the process immediately.</p> <p>For this initial stabilization, <em>no change</em> is made to the existing ABIs (e.g. <code>"C"</code>), and unwinding across them remains undefined behavior. A future Rust release will amend these ABIs to match the behavior specified in the RFC as the final part in stabilizing this feature (usually aborting at the boundary). Users are encouraged to start using the new unwind ABI variants in their code to remain future proof if they need to unwind across the ABI boundary.</p> <h3><a href="#debugger-visualization-attributes" rel="noopener noreferrer"></a>Debugger visualization attributes</h3> <p>1.71.0 stabilizes support for a new attribute, <code>#[debug_visualizer(natvis_file = "...")]</code> and <code>#[debug_visualizer(gdb_script_file = "...")]</code>, which allows embedding Natviz descriptions and GDB scripts into Rust libraries to improve debugger output when inspecting data structures created by those libraries. Rust itself has packaged similar scripts for some time for the standard library, but this feature makes it possible for library authors to provide a similar experience to end users.</p> <p>See the <a href="https://doc.rust-lang.org/nightly/reference/attributes/debugger.html#the-debugger_visualizer-attribute" rel="noopener noreferrer">reference</a> for details on usage.</p> <h3><a href="#raw-dylib-linking" rel="noopener noreferrer"></a>raw-dylib linking</h3> <p>On Windows platforms, Rust now supports using functions from dynamic libraries without requiring those libraries to be available at build time, using the new <code>kind="raw-dylib”</code> option for <code>#[link]</code>.</p> <p>This avoids requiring users to install those libraries (particularly difficult for cross-compilation), and avoids having to ship stub versions of libraries in crates to link against. This simplifies crates providing bindings to Windows libraries.</p> <p>Rust also supports binding to symbols provided by DLLs by ordinal rather than named symbol, using the new <code>#[link_ordinal]</code> attribute.</p> <h3><a href="#upgrade-to-musl-12" rel="noopener noreferrer"></a>Upgrade to musl 1.2</h3> <p>As <a href="https://blog.rust-lang.org/2023/05/09/Updating-musl-targets.html" rel="noopener noreferrer">previously announced</a>, Rust 1.71 updates the musl version to 1.2.3. Most users should not be affected by this change.</p> <h3><a href="#const-initialized-thread-locals" rel="noopener noreferrer"></a>Const-initialized thread locals</h3> <p>Rust 1.59.0 stabilized <code>const</code> initialized thread local support in the standard library, which allows for more optimal code generation. However, until now this feature was missed in release notes and <a href="https://doc.rust-lang.org/stable/std/macro.thread_local.html" rel="noopener noreferrer">documentation</a>. Note that this stabilization does not make <code>const { ... }</code> a valid expression or syntax in other contexts; that is a separate and currently unstable <a href="https://github.com/rust-lang/rust/issues/76001" rel="noopener noreferrer">feature</a>.</p> <pre><code>use std::cell::Cell; thread_local! { pub static FOO: Cell&lt;u32&gt; = const { Cell::new(1) }; } </code></pre> <h3><a href="#stabilized-apis" rel="noopener noreferrer"></a>Stabilized APIs</h3> <ul> <li><a href="https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#method.is_empty" rel="noopener noreferrer"><code>CStr::is_empty</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/hash/trait.BuildHasher.html#method.hash_one" rel="noopener noreferrer"><code>BuildHasher::hash_one</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_positive" rel="noopener noreferrer"><code>NonZeroI*::is_positive</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.is_negative" rel="noopener noreferrer"><code>NonZeroI*::is_negative</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.checked_neg" rel="noopener noreferrer"><code>NonZeroI*::checked_neg</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.overflowing_neg" rel="noopener noreferrer"><code>NonZeroI*::overflowing_neg</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.saturating_neg" rel="noopener noreferrer"><code>NonZeroI*::saturating_neg</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#method.wrapping_neg" rel="noopener noreferrer"><code>NonZeroI*::wrapping_neg</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-NonZeroI32" rel="noopener noreferrer"><code>Neg for NonZeroI*</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI32.html#impl-Neg-for-%26NonZeroI32" rel="noopener noreferrer"><code>Neg for &amp;NonZeroI*</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C%5BT;+1%5D%3E-for-(T,)" rel="noopener noreferrer"><code>From&lt;[T; N]&gt; for (T...)</code></a> (array to N-tuple for N in 1..=12)</li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.array.html#impl-From%3C(T,)%3E-for-%5BT;+1%5D" rel="noopener noreferrer"><code>From&lt;(T...)&gt; for [T; N]</code></a> (N-tuple to array for N in 1..=12)</li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Box%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsHandle for Box&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Rc%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsHandle for Rc&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsHandle.html#impl-AsHandle-for-Arc%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsHandle for Arc&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Box%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsSocket for Box&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Rc%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsSocket for Rc&lt;T&gt;</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/os/windows/io/trait.AsSocket.html#impl-AsSocket-for-Arc%3CT%3E" rel="noopener noreferrer"><code>windows::io::AsSocket for Arc&lt;T&gt;</code></a></li> </ul> <p>These APIs are now stable in const contexts:</p> <ul> <li><a href="https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read" rel="noopener noreferrer"><code>&lt;*const T&gt;::read</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned" rel="noopener noreferrer"><code>&lt;*const T&gt;::read_unaligned</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read-1" rel="noopener noreferrer"><code>&lt;*mut T&gt;::read</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.read_unaligned-1" rel="noopener noreferrer"><code>&lt;*mut T&gt;::read_unaligned</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/ptr/fn.read.html" rel="noopener noreferrer"><code>ptr::read</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/ptr/fn.read_unaligned.html" rel="noopener noreferrer"><code>ptr::read_unaligned</code></a></li> <li><a href="https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_at" rel="noopener noreferrer"><code>&lt;[T]&gt;::split_at</code></a></li> </ul> <h3><a href="#other-changes" rel="noopener noreferrer"></a>Other changes</h3> <p>Check out everything that changed in <a href="https://github.com/rust-lang/rust/releases/tag/1.71.0" rel="noopener noreferrer">Rust</a>, <a href="https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-171-2023-07-13" rel="noopener noreferrer">Cargo</a>, and <a href="https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-171" rel="noopener noreferrer">Clippy</a>.</p> <h2><a href="#contributors-to-1710" rel="noopener noreferrer"></a>Contributors to 1.71.0</h2> <p>Many people came together to create Rust 1.71.0. We couldn't have done it without all of you. <a href="https://thanks.rust-lang.org/rust/1.71.0/" rel="noopener noreferrer">Thanks!</a></p> <ol> <li> <p>List of stabilized ABIs can be found in the stabilization report: https://github.com/rust-lang/rust/issues/74990#issuecomment-1363473645 <a href="#fnref1" rel="noopener noreferrer">↩</a></p> </li> </ol> This Week in Rust 503 freedit 2023-07-12 2023-07-12 107 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/07/12/this-week-in-rust-503/">This Week in Rust 503</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/07/05/regex-1.9.html" rel="noopener noreferrer">Announcing regex 1.9</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://rust-osdev.com/this-month/2023-06/" rel="noopener noreferrer">This Month in Rust OSDev: June 2023</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://blog.burntsushi.net/regex-internals/" rel="noopener noreferrer">Regex engine internals as a library</a></li> <li><a href="https://bevyengine.org/news/bevy-0-11/" rel="noopener noreferrer">Bevy 0.11</a></li> <li><a href="https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-24" rel="noopener noreferrer">rustc_codegen_gcc: Progress Report #24</a></li> <li><a href="https://rust-analyzer.github.io/thisweek/2023/07/10/changelog-189.html" rel="noopener noreferrer">rust-analyzer changelog #189</a></li> <li><a href="https://blog.meilisearch.com/vector-search-announcement/" rel="noopener noreferrer">Vector storage is coming to Meilisearch to empower search through AI</a> | <a href="https://github.com/meilisearch/meilisearch-rust" rel="noopener noreferrer">Rust SDK</a></li> <li><a href="https://mabez.dev/blog/posts/esp-rust-30-06-2023/" rel="noopener noreferrer">Rust on Espressif chips - June 30 2023</a></li> <li><a href="https://beta7.io/posts/esp-rs-quarterly-planning-q3-2023/" rel="noopener noreferrer">esp-rs quarterly planning: Q3 2023</a></li> <li><a href="https://crates.io/crates/sqlpage" rel="noopener noreferrer">SQLPage • Build dynamic websites in SQL</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://github.com/GoldsteinE/gh-blog/blob/master/const_deref_specialization/src/lib.md" rel="noopener noreferrer">Deref specialization in const contexts</a></li> <li><a href="https://cliffle.com/blog/async-inversion/" rel="noopener noreferrer">How to think about <code>async</code>/<code>await</code> in Rust</a></li> <li><a href="https://nnethercote.github.io/2023/07/11/back-end-parallelism-in-the-rust-compiler.html" rel="noopener noreferrer">Back-end parallelism in the Rust compiler</a></li> <li><a href="https://blog.yoshuawuyts.com/bridging-fuzzing-and-property-testing/" rel="noopener noreferrer">bridging fuzzing and property testing</a></li> <li><a href="https://opeolluwa.hashnode.dev/mastering-rust-2-years-of-building-brilliance-and-lessons-learned" rel="noopener noreferrer">Mastering Rust: 2 Years of Building Brilliance and Lessons Learned</a></li> <li><a href="https://szabgab.com/learning-rust-after-one-month.html" rel="noopener noreferrer">Learning Rust - the first month</a></li> <li><a href="https://dev.to/64bit/ideas-for-crafting-cli-in-rust-5b0d" rel="noopener noreferrer">Ideas for crafting CLI in Rust</a></li> <li><a href="https://dev.to/vikram2784/beyond-pointers-how-rust-outshines-c-with-its-borrow-checker-1mad" rel="noopener noreferrer">Beyond Pointers: How Rust outshines C++ with its Borrow Checker</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/ivan-cernja/" rel="noopener noreferrer">Shuttle with Ivan Cernja</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li>[video] <a href="https://www.youtube.com/watch?v=vAjle3c9Xqc" rel="noopener noreferrer">Build A Full Stack Chatbot in Rust (feat. Leptos &amp; Rustformers)</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=g4vN2Z0JuZI" rel="noopener noreferrer">Render the Julia set in 3 dozen lines of Rust code</a></li> <li><a href="https://postgresml.org/blog/how-we-generate-javascript-and-python-sdks-from-our-canonical-rust-sdk" rel="noopener noreferrer">How We Generate JavaScript and Python SDKs From Our Canonical Rust SDK</a></li> <li><a href="https://ohadravid.github.io/posts/2023-07-put-a-pin-on-that/" rel="noopener noreferrer">Put a Pin on That</a></li> <li><a href="https://jmmv.dev/2023/07/unit-testing-a-web-service.html" rel="noopener noreferrer">Unit-testing a web service in Rust</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://www.docker.com/blog/docker-desktop-4-21/" rel="noopener noreferrer">Docker Desktop 4.21: Support for new Wasm runtimes, Docker Init support for Rust, Docker Scout Dashboard enhancements, Builds view (Beta), and more</a></li> <li><a href="https://rust-digger.code-maven.com/" rel="noopener noreferrer">Rust Digger: identify low-hanging fruit improvements to crates</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://dystroy.org/dysk/" rel="noopener noreferrer">dysk</a>, a nice <code>df</code> like utility to display the fill level of your disks.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1211" rel="noopener noreferrer">Denys Séguret</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/avhz/RustQuant/issues/72" rel="noopener noreferrer">RustQuant - autodiff module needs re-structure to avoid lifetimes.</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5321" rel="noopener noreferrer">Ockam - Add&nbsp;<code>sqlite</code>&nbsp;support as an alternative to&nbsp;<code>lmdb</code>&nbsp;2</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5322" rel="noopener noreferrer">Ockam - Improve Secure Channel shutdown (make Encryptor and Decryptor shut down each other)</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5323" rel="noopener noreferrer">Ockam - Improve Secure Channel shutdown (make Encryptor or Decryptor remove itself from the Registry) #5323</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1622" rel="noopener noreferrer">Hyperswitch - Implement Code coverage for local system using Makefile</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1580" rel="noopener noreferrer">Hyperswitch - Add scoped error enum for customer error</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1598" rel="noopener noreferrer">Hyperswitch - Add logs for customer routes &amp; functions</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>378 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-07-03..2023-07-10" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/113412" rel="noopener noreferrer">add basic types to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113296" rel="noopener noreferrer">add flag for enabling global cache usage for proof trees and printing proof trees on error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112697" rel="noopener noreferrer">add simple markdown formatting to <code>rustc --explain</code> output</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113419" rel="noopener noreferrer">avoid calling <code>item_name</code> for RPITIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113456" rel="noopener noreferrer">avoid calling <code>report_forbidden_specialization</code> for RPITITs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113426" rel="noopener noreferrer">don't ICE in <code>resolve_bound_vars</code> when associated return-type bounds are in bad positions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113395" rel="noopener noreferrer">don't ICE for <code>dyn* Trait: Trait</code> (built-in object) goals during selection in new trait solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112319" rel="noopener noreferrer">don't require associated types with Self: Sized bounds in <code>dyn Trait</code> objects</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113210" rel="noopener noreferrer">effects/keyword generics MVP</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113350" rel="noopener noreferrer">fix the issue of wrong diagnosis for <code>extern pub fn</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113324" rel="noopener noreferrer">implement <code>ConstEvaluatable</code> goals in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112791" rel="noopener noreferrer">llvm ffi: Expose <code>CallInst-&gt;setTailCallKind</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113215" rel="noopener noreferrer">make RPITITs assume/require their parent method's predicates</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113397" rel="noopener noreferrer">prefer object candidates in new selection</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112988" rel="noopener noreferrer">replace RPITIT current impl with new strategy that lowers as a GAT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112652" rel="noopener noreferrer">require TAITs to be mentioned in the signatures of functions that register hidden types for them</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112917" rel="noopener noreferrer">suggest importing for partial mod path matching in name resolving</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113441" rel="noopener noreferrer">miri: check that assignments do not self-overlap</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2963" rel="noopener noreferrer">miri: better error on missing <code>#[start]</code></a></li> <li><a href="https://github.com/rust-lang/miri/pull/2960" rel="noopener noreferrer">miri: restore test filtering by substring</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2973" rel="noopener noreferrer">miri: test and fix return place alias restrictions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113270" rel="noopener noreferrer">perform <code>TokenStream</code> replacement in-place when possible in <code>expand_macro</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/94748" rel="noopener noreferrer">add <code>Read</code>, <code>Write</code> and <code>Seek</code> impls for <code>Arc&lt;File&gt;</code> where appropriate</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113493" rel="noopener noreferrer">additional <code>io::copy</code> specializations</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1028" rel="noopener noreferrer">regex: automata/nfa/backtrack: fix memory usage</a></li> <li><a href="https://github.com/rust-lang/regex/pull/978" rel="noopener noreferrer">rewrite the regex crate</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12337" rel="noopener noreferrer">cargo: add profile strip to config docs</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5817" rel="noopener noreferrer">rustfmt: handle <code>skip_macro_invocations</code> from config file</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11129" rel="noopener noreferrer">clippy: <code>[significant_drop_tightening]</code> consider manual aliases of the <code>drop</code> function</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11104" rel="noopener noreferrer">clippy: <code>arc_with_non_send_sync</code>: reword and move to <code>suspicious</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11016" rel="noopener noreferrer">clippy: <code>filter_next</code>: suggest making binding mutable if needed</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11096" rel="noopener noreferrer">clippy: <code>manual_range_patterns</code>: lint negative values</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11110" rel="noopener noreferrer">clippy: <code>unnecessary_literal_unwrap</code>: don't lint if binding initializer comes from expansion</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10900" rel="noopener noreferrer">clippy: add <code>needless_pass_by_ref_mut</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11130" rel="noopener noreferrer">clippy: fix ICE in <code>needless_borrow</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11111" rel="noopener noreferrer">clippy: fix regex lints for regex 1.9.0</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10788" rel="noopener noreferrer">clippy: new lint <code>manual_partial_ord_and_ord_impl</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10970" rel="noopener noreferrer">clippy: new lint: <code>read_line_without_trim</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11049" rel="noopener noreferrer">clippy: new lints <code>manual_is_infinite</code> and <code>manual_is_finite</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11122" rel="noopener noreferrer">clippy: pass correct substs to <code>implements_trait</code> in <code>incorrect_impls</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15226" rel="noopener noreferrer">rust-analyzer: assist: add <code>enum</code> to <code>glob_import_expand</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15152" rel="noopener noreferrer">rust-analyzer: assist: generate trait from impl</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15216" rel="noopener noreferrer">rust-analyzer: disable remove unnecessary braces diagnotics for self imports</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15081" rel="noopener noreferrer">rust-analyzer: feature: add a memory layout viewer</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15222" rel="noopener noreferrer">rust-analyzer: fix <code>size_of_val</code> and support <code>min_align_of_val</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15245" rel="noopener noreferrer">rust-analyzer: fix missing terminator in pattern matching of consts</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15223" rel="noopener noreferrer">rust-analyzer: fix: don't show <code>unresolved-field</code> diagnostic for missing names</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15227" rel="noopener noreferrer">rust-analyzer: fix: indent after pressing enter on a blank line</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15228" rel="noopener noreferrer">rust-analyzer: implement recursion in mir interpreter without recursion</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15212" rel="noopener noreferrer">rust-analyzer: recover from missing associated items and generic const defaults</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15235" rel="noopener noreferrer">rust-analyzer: stop inserting semicolon when extracting match arm</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15211" rel="noopener noreferrer">rust-analyzer: support GATs in bounds for associated types</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15244" rel="noopener noreferrer">rust-analyzer: support <code>read_via_copy</code> intrinsic</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15258" rel="noopener noreferrer">rust-analyzer: support getrandom syscall</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A very quiet week with nearly no changes in compiler performance. </p> <p>Triage done by <strong>@rylev</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=52d8c490a3aabe65cdd9f2d3aed95034dd5dbad7&amp;end=1d4f5affbdee00c816f961c227c6b28a3e725ce6&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">52d8c49..1d4f5af</a></p> <p><strong>Summary</strong>:</p> <table> <thead> <tr> <th align="center">(instructions:u)</th> <th align="center">mean</th> <th align="center">range</th> <th align="center">count</th> </tr> </thead> <tbody> <tr> <td align="center">Regressions ❌ <br> (primary)</td> <td align="center">1.1%</td> <td align="center">[0.7%, 1.7%]</td> <td align="center">8</td> </tr> <tr> <td align="center">Regressions ❌ <br> (secondary)</td> <td align="center">2.1%</td> <td align="center">[0.4%, 3.7%]</td> <td align="center">2</td> </tr> <tr> <td align="center">Improvements ✅ <br> (primary)</td> <td align="center">-0.9%</td> <td align="center">[-1.2%, -0.5%]</td> <td align="center">26</td> </tr> <tr> <td align="center">Improvements ✅ <br> (secondary)</td> <td align="center">-1.2%</td> <td align="center">[-1.8%, -0.2%]</td> <td align="center">16</td> </tr> <tr> <td align="center">All ❌✅ (primary)</td> <td align="center">-0.4%</td> <td align="center">[-1.2%, 1.7%]</td> <td align="center">34</td> </tr> </tbody> </table> <p>4 Regressions, 2 Improvements, 2 Mixed; 1 of them in rollups 51 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-07-11.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3355" rel="noopener noreferrer">RFC: Start working on a Rust specification</a></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/100455" rel="noopener noreferrer">Implement RefUnwindSafe for Backtrace</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3456" rel="noopener noreferrer">Add <code>bf16</code>, <code>f64f64</code> and <code>f80</code> types</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-07-12 - 2023-08-09 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-07-11 - 2023-07-13 | Virtual (Europe) | <a href="https://mainmatter.com/" rel="noopener noreferrer">Mainmatter</a><ul> <li><a href="https://rust-web-services-workshop.mainmatter.com/" rel="noopener noreferrer"><strong>Web-based Services in Rust, 3-day Workshop with Stefan Baumgartner</strong></a> </li> </ul> </li> <li>2023-07-13 - 2023-07-14 | Virtual | <a href="https://scientificcomputing.rs/" rel="noopener noreferrer">Scientific Computing in Rust</a><ul> <li><a href="https://scientificcomputing.rs/" rel="noopener noreferrer"><strong>Scientific Computing in Rust workshop</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/294707594/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Edinburgh, UK) | <a href="https://www.meetup.com/rust-edi/" rel="noopener noreferrer">Rust Edinburgh</a><ul> <li><a href="https://www.meetup.com/rust-edi/events/293820336/" rel="noopener noreferrer"><strong>Reasoning about Rust: an introduction to Rustdoc’s JSON format</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732650" rel="noopener noreferrer"><strong>Rust Nürnberg online #27</strong></a></li> </ul> </li> <li>2023-07-15 | Virtual (Chandigarh, IN) | <a href="https://hasgeek.com/rustchandigarh" rel="noopener noreferrer">Rust Chandigarh</a><ul> <li><a href="https://hasgeek.com/rustchandigarh/july-2023-rust-meetup/" rel="noopener noreferrer"><strong>Rust Chandigarh Meetup #1</strong></a></li> </ul> </li> <li>2023-07-18 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbxb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-19 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763486" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-07-20 | Virtual (Tehran, IR) | <a href="https://rust-meetup.ir/" rel="noopener noreferrer">Iran Rust Meetup</a><ul> <li><a href="https://rust-meetup.ir/2023/07/20/12th-meetup.html" rel="noopener noreferrer"><strong>Iran Rust Meetup #12 - Ownership and Memory management</strong></a></li> </ul> </li> <li>2023-07-24 | Virtual (Toronto, CA) | <a href="https://www.meetup.com/programming-languages-toronto-meetup/" rel="noopener noreferrer">Programming Languages Virtual Meetup</a><ul> <li><a href="https://www.meetup.com/programming-languages-toronto-meetup/events/294616842" rel="noopener noreferrer"><strong>Crafting Interpreters Chapter 18: Types of Values</strong></a></li> </ul> </li> <li>2023-07-25 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfckbhc/" rel="noopener noreferrer"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-07-27 | Virtual (Charlottesville, NC, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/ngnwftyfckbkc/" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-07-28 | Virtual (Tunis, TN) | <a href="https://www.meetup.com/rust-tunisia/" rel="noopener noreferrer">Rust Meetup Tunisia</a><ul> <li><a href="https://www.meetup.com/rust-tunisia/events/294664236/" rel="noopener noreferrer"><strong>Rust Meetup Tunisia - Volume I, Number IV</strong></a></li> </ul> </li> <li>2023-08-01 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfclbcb//" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-08-08 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfclblb/" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-07-13 | Tokyo, JP | <a href="https://www.meetup.com/tokyo-rust-meetup/" rel="noopener noreferrer">Tokyo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/tokyo-rust-meetup/events/294571542" rel="noopener noreferrer"><strong>A "Bit" of Fun With Geometry in Rust</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-07-13 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/" rel="noopener noreferrer">Rust Berlin</a><ul> <li><a href="https://www.meetup.com/rust-berlin/events/294627419" rel="noopener noreferrer"><strong>Rust and Tell - beer garden Edition</strong></a></li> </ul> </li> <li>2023-07-13 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/mstlftyfckbrb/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-07-21 | Nuremberg, DE | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293823522/" rel="noopener noreferrer"><strong>Rust Nuremberg Get Together #2</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-07-12 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/294373345" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-07-12 | Waterloo, ON, CA | <a href="https://www.meetup.com/rust-kw/" rel="noopener noreferrer">Rust KW</a><ul> <li><a href="https://www.meetup.com/rust-kw/events/294355516/" rel="noopener noreferrer"><strong>Overengineering FizzBuzz</strong></a></li> </ul> </li> <li>2023-07-13 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294604589/" rel="noopener noreferrer"><strong>Writing Kubernetes Operators in Rust</strong></a></li> </ul> </li> <li>2023-07-13 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294631273" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-07-13 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294191599/" rel="noopener noreferrer"><strong>July Meetup</strong></a></li> </ul> </li> <li>2023-07-18 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfckbxb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-07-18 | Canberra, ACT, AU | <a href="https://www.meetup.com/rust-canberra/" rel="noopener noreferrer">Rust Canberra</a><ul> <li><a href="https://www.meetup.com/rust-canberra/events/294321350/" rel="noopener noreferrer"><strong>July Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>It's all ducks and sunshine until something starts barking.</p> </blockquote> <p>– <a href="https://www.reddit.com/r/rust/comments/14rm1fs/comment/jqup09v" rel="noopener noreferrer">u/ZZaaaccc on r/rust</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1445" rel="noopener noreferrer">Patrice Peterson</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/14y950i/this_week_in_rust_503/" rel="noopener noreferrer">Discuss on r/rust</a></small></p> This Week in Rust 502 freedit 2023-07-05 2023-07-05 106 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/07/05/this-week-in-rust-502/">This Week in Rust 502</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/07/01/rustfmt-supports-let-else-statements.html" rel="noopener noreferrer">Rustfmt support for let-else statements</a></li> </ul> <h3><a href="#newsletters" rel="noopener noreferrer">Newsletters</a></h3> <ul> <li><a href="https://gamedev.rs/news/046/" rel="noopener noreferrer">This Month in Rust GameDev #46 - May 2023</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/07/03/changelog-188.html" rel="noopener noreferrer">rust-analyzer changelog #188</a></li> <li><a href="https://www.lpalmieri.com/posts/pavex-progress-report-05/" rel="noopener noreferrer">Pavex DevLog #5: redesigning our runtime types</a></li> <li><a href="https://joonaa.dev/blog/02/bevy-xpbd-0-1-0" rel="noopener noreferrer">Bevy XPBD: A physics engine for the Bevy game engine</a></li> <li><a href="https://github.com/adaszko/complgen" rel="noopener noreferrer">complgen: Generate {bash,fish,zsh} completions from a single EBNF-like grammar</a></li> <li><a href="https://dzfrias.dev/blog/projectable" rel="noopener noreferrer">projectable: a command line TUI file manager</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://betterprogramming.pub/how-to-wrap-your-errors-with-enums-when-using-error-stack-77b122016e6e" rel="noopener noreferrer">How To Wrap Your Errors With Enums When Using Error-Stack</a></li> <li><a href="https://www.confessionsofadataguy.com/exploring-graphs-in-rust-yikes/" rel="noopener noreferrer">Exploring Graphs in Rust. Yikes</a></li> <li><a href="https://cmooneycollett.github.io/2023/07/01/writing-a-linkedlist-in-rust" rel="noopener noreferrer">Writing a Linked List in Rust: A Walkthrough</a></li> <li><a href="https://blog.yoshuawuyts.com/tree-structured-concurrency/" rel="noopener noreferrer">Tree-Structured Concurrency</a></li> <li><a href="https://dev.to/nsengupta/rust-notes-on-temporary-values-usage-of-mutex-4-498c" rel="noopener noreferrer">Rust Notes on Temporary values (usage of Mutex) - 4</a></li> <li><a href="https://youtu.be/HA_e1c0HbgQ" rel="noopener noreferrer">Method Overloading (kinda), and Advanced Trait Usage</a></li> <li><a href="https://apollolabsblog.hashnode.dev/unlocking-possibilities-4-reasons-why-esp32-and-rust-make-a-winning-combination" rel="noopener noreferrer">Unlocking Possibilities: 4 Reasons Why ESP32 and Rust Make a Winning Combination</a></li> <li><a href="https://ochagavia.nl/blog/the-magic-of-dependency-resolution/" rel="noopener noreferrer">The magic of dependency resolution</a></li> <li><a href="https://estebanborai.com/en/notes/writing-e2e-tests-for-axum-and-graphql" rel="noopener noreferrer">Writing E2E Tests for Axum &amp; GraphQL</a></li> <li><a href="https://www.kurtlawrence.info/blog/detailed-web-based-3d-rendering-of-mining-spatial-data" rel="noopener noreferrer">Detailed web-based 3D rendering of mining spatial data</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=6c7pZYP_iIE" rel="noopener noreferrer">Choose the Right Option</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=kHxjiTv8r18" rel="noopener noreferrer">4 levels of Rust error handling</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://www.superperfundo.dev/articles/ray-tracer-part4" rel="noopener noreferrer">Build a Ray Tracer, pt. 4 - The Next Dimension</a></li> <li><a href="https://towardsdatascience.com/nine-rules-for-running-rust-on-the-web-and-on-embedded-94462ef249a2" rel="noopener noreferrer">Nine Rules for Running Rust on the Web and on Embedded: Practical Lessons from Porting range-set-blaze to no_std and WASM</a></li> <li><a href="https://bcnrust.github.io/devbcn-workshop/" rel="noopener noreferrer">Full Stack Rust Workshop: Shuttle, Actix Web, SQLx &amp; Diouxus</a></li> <li><a href="https://bd103.github.io/blog/2023-06-27-global-allocators" rel="noopener noreferrer">Intercepting Allocations with the Global Allocator</a></li> <li><a href="https://quickwit.io/blog/compressed-indexable-bitset" rel="noopener noreferrer">A compressed indexable bitset</a></li> <li><a href="https://jmmv.dev/2023/06/iii-iv-task-queue.html" rel="noopener noreferrer">A persistent task queue in Rust</a></li> <li><a href="https://hegdenu.net/posts/understanding-async-await-2/" rel="noopener noreferrer">How I finally understood async/await in Rust (part 2: how does a pending future get woken?)</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://model-checking.github.io/kani-verifier-blog/2023/06/30/introducing-the-kani-vscode-extension.html" rel="noopener noreferrer">Verify Rust code in VS Code with the Kani VS Code extension</a></li> <li><a href="https://medium.com/gitconnected/reduce-memory-footprint-by-about-600-for-m-e-d-performance-matters-bec407833e7c" rel="noopener noreferrer">Reduce memory footprint by about 600% for M.E.D. — Performance Matters</a></li> <li><a href="https://www.meetup.com/rust-tell-halifax/" rel="noopener noreferrer">New MeetUp Group in Canada: Rust Halifax</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/orhun/rustypaste" rel="noopener noreferrer">rustypaste</a>, a minimal file upload/pastebin service.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1209" rel="noopener noreferrer">orhun</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/diesel-rs/diesel/discussions/3672" rel="noopener noreferrer">diesel - Most wanted missing features in diesel&nbsp;1</a></li> <li><a href="https://github.com/diesel-rs/diesel/discussions/3671" rel="noopener noreferrer">diesel - Most wanted missing guide topic&nbsp;1</a></li> <li><a href="https://github.com/Stranger6667/css-inline/issues/209" rel="noopener noreferrer">css-inline - C bindings</a></li> <li><a href="https://github.com/secretsauceai/mfcc-rust/issues/25" rel="noopener noreferrer">mfcc-rust - create npy files for testing the input and output of cacheable functions</a></li> <li><a href="https://github.com/secretsauceai/mfcc-rust/issues/19" rel="noopener noreferrer">mfcc-rust - make all functions generic over f32 and f64</a></li> <li><a href="https://github.com/secretsauceai/mfcc-rust/issues/26" rel="noopener noreferrer">mfcc-rust - migrate mfcc to depend on mel_spectrogram</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5225" rel="noopener noreferrer">ockam - Change argument for&nbsp;<code>ockam credential issue</code>&nbsp;command from Identity to IdentityIdentifier&nbsp;2</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5215" rel="noopener noreferrer">ockam - Use a background node for&nbsp;<code>ockam project enroll</code>&nbsp;1</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5226" rel="noopener noreferrer">ockam - <code>ockam project ticket</code>&nbsp;should return a proper error message&nbsp;1</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/66" rel="noopener noreferrer">RustQuant - Logistic regression is too slow (specifically the matrix inversions).</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/62" rel="noopener noreferrer">RustQuant - Implement a user interface (TUI or GUI).</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/60" rel="noopener noreferrer">RustQuant - Implement a Postgres interface.&nbsp;1</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/22" rel="noopener noreferrer">RustQuant - Pricing model calibration module.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/14" rel="noopener noreferrer">RustQuant - Add/improve documentation (esp. math related docs).</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/57" rel="noopener noreferrer">RustQuant - Increase test coverage (chore).&nbsp;1</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/37" rel="noopener noreferrer">RustQuant - Compute returns from Yahoo finance data reader.</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/1617" rel="noopener noreferrer">mirrord - mirrord shows <code>loopcrashbackoff</code> pods as possible targets&nbsp;1</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/366" rel="noopener noreferrer">mirrord - Log problem in layer and exit when agent image is not found&nbsp;1</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1622" rel="noopener noreferrer">Hyperswitch - Implement Code coverage for local system using Makefile</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1580" rel="noopener noreferrer">Hyperswitch - Add scoped error enum for customer error</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/917" rel="noopener noreferrer">Hyperswitch - move redis key creation to a common module</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>410 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-06-26..2023-07-03" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/109524" rel="noopener noreferrer">support embedding LLVM bitcode on AIX</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111322" rel="noopener noreferrer">support for native WASM exceptions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113168" rel="noopener noreferrer"><code>fix(resolve)</code>: skip assertion judgment when NonModule is dummy</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113093" rel="noopener noreferrer"><code>thir</code>: Add <code>Become</code> expression kind</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113071" rel="noopener noreferrer">account for late-bound vars from parent arg-position impl trait</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113040" rel="noopener noreferrer">add <code>-Zremark-dir</code> unstable flag to write LLVM optimization remarks to YAML</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112682" rel="noopener noreferrer">add bidirectional where clauses on RPITIT synthesized GATs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113107" rel="noopener noreferrer">add check for <code>ConstKind::Value(_)</code> to <code>in_operand()</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112708" rel="noopener noreferrer">avoid calling queries during query stack printing</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113174" rel="noopener noreferrer">better messages for next on a iterator inside for loops</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112518" rel="noopener noreferrer">detect actual span for getting unexpected token from parsing macros</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113286" rel="noopener noreferrer">don't perform selection if inherent associated types are not enabled</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113137" rel="noopener noreferrer">don't suggest <code>move</code> for borrows that aren't closures</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113165" rel="noopener noreferrer">encode item bounds for <code>DefKind::ImplTraitPlaceholder</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113182" rel="noopener noreferrer">error when RPITITs' hidden types capture more lifetimes than their trait definitions</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113089" rel="noopener noreferrer">export AnalysisResults trait in <code>rustc_mir_dataflow</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113231" rel="noopener noreferrer">fix <code>dropping_copy_types</code> lint from linting in match-arm with side-effects</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113196" rel="noopener noreferrer">fix associated items effective visibility calculation for type privacy lints</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113161" rel="noopener noreferrer">fix type privacy lints error message</a></li> <li><a href="https://github.com/rust-lang/rust/pull/106619" rel="noopener noreferrer">fix unset <code>e_flags</code> in ELF files generated for AVR targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113086" rel="noopener noreferrer">implement deep normalization via the new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112910" rel="noopener noreferrer">implement most of MCP510</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111571" rel="noopener noreferrer">implement proposed API for <code>proc_macro_span</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112869" rel="noopener noreferrer">implement selection via new trait solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/108611" rel="noopener noreferrer">lint/ctypes: ext. abi fn-ptr in internal abi fn</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112629" rel="noopener noreferrer">make associated type bounds in supertrait position implied</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112454" rel="noopener noreferrer">make compiletest aware of targets without dynamic linking</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113144" rel="noopener noreferrer">make the <code>Elaboratable</code> trait take clauses</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113108" rel="noopener noreferrer">normalize opaques with late-bound vars again</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113103" rel="noopener noreferrer">normalize types when applying uninhabited predicate</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112670" rel="noopener noreferrer">privacy: type privacy lints fixes and cleanups</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113171" rel="noopener noreferrer">properly implement <code>variances_of</code> for RPITIT GAT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/98867" rel="noopener noreferrer">refactor metadata emission to avoid visiting HIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112086" rel="noopener noreferrer">resolve: remove artificial import ambiguity errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112236" rel="noopener noreferrer">simplify computation of killed borrows</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111403" rel="noopener noreferrer">suggest <code>slice::swap</code> for <code>mem::swap(&amp;mut x[0], &amp;mut x[1])</code> borrowck error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112978" rel="noopener noreferrer">add suggestion for bad block fragment error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113177" rel="noopener noreferrer">use structured suggestion when telling user about <code>for&lt;'a&gt;</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113194" rel="noopener noreferrer">mark wrapped intrinsics as <code>inline(always)</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112718" rel="noopener noreferrer">make <code>simd_shuffle_indices</code> use valtrees</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112972" rel="noopener noreferrer">make <code>UnwindAction::Continue</code> explicit in MIR dump</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112307" rel="noopener noreferrer">mir opt + codegen: handle subtyping</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2950" rel="noopener noreferrer">miri: cargo-miri: better error message when RUSTC is not set</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2942" rel="noopener noreferrer">miri: make <code>--quiet</code> actually do something</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2936" rel="noopener noreferrer">miri: optional semantics for <code>Unique</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111035" rel="noopener noreferrer">shrink error variants for layout and <code>fn_abi</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/113116" rel="noopener noreferrer">a mish-mash of micro-optimizations</a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/286" rel="noopener noreferrer">codegen_gcc: add support for <code>#[cold]</code> attribute</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112628" rel="noopener noreferrer">allow comparing <code>Box</code>es with different allocators</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113054" rel="noopener noreferrer">make <code>rustc_on_unimplemented</code> std-agnostic</a></li> <li><a href="https://github.com/rust-lang/rust/pull/107624" rel="noopener noreferrer">stabilize <code>const_cstr_methods</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12322" rel="noopener noreferrer">cargo: add READMEs for the credential helpers</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12321" rel="noopener noreferrer">cargo: don't try to compile cargo-credential-gnome-secret on non-Linux platforms</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113100" rel="noopener noreferrer">rustdoc: fix display of long items in search results</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113285" rel="noopener noreferrer">rustdoc: fix display of long inline cfg labels</a></li> <li><a href="https://github.com/rust-lang/rust/pull/108537" rel="noopener noreferrer">rustdoc: allow whitespace as path separator like double colon</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112920" rel="noopener noreferrer">rustdoc: render generic params &amp; where-clauses of cross-crate assoc tys in impls</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5798" rel="noopener noreferrer">rustfmt: don't skip semicolon if expressions follow</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5790" rel="noopener noreferrer">rustfmt: implement <code>single_line_let_else_max_width</code></a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5794" rel="noopener noreferrer">rustfmt: rewrite float literals ending in dots with parens in method calls</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5800" rel="noopener noreferrer">rustfmt: switch to tracing for logging</a></li> <li>clippy: new lints: <a href="https://github.com/rust-lang/rust-clippy/pull/11012" rel="noopener noreferrer"><code>manual_try_fold</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10884" rel="noopener noreferrer"><code>needless_raw_string_hashes</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11013" rel="noopener noreferrer"><code>redundant_at_rest_pattern</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/11020" rel="noopener noreferrer"><code>tuple_array_conversions</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10968" rel="noopener noreferrer"><code>manual_range_patterns</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10987" rel="noopener noreferrer"><code>type_id_on_box</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10967" rel="noopener noreferrer"><code>needless_pub_self</code>, <code>pub_with_shorthand</code> and <code>pub_without_shorthand</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10774" rel="noopener noreferrer">clippy: <code>significant_drop_tightening</code>: fix incorrect suggestion</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11077" rel="noopener noreferrer">clippy: <code>arc_with_non_send_sync</code>: don't lint if type has nested type parameters</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11061" rel="noopener noreferrer">clippy: <code>let_and_return</code>: lint <code>'static</code> lifetimes, don't lint borrows in closures</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11069" rel="noopener noreferrer">clippy: <code>missing_fields_in_debug</code>: make sure self type is an adt</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11078" rel="noopener noreferrer">clippy: <code>needless_raw_string_hashes</code>: only reset hashes needed if not following quote</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11035" rel="noopener noreferrer">clippy: <code>option_if_let_else</code>: suggest <code>.as_ref()</code> if scrutinee is of type <code>&amp;Option&lt;_&gt;</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11001" rel="noopener noreferrer">clippy: <code>question_mark</code>: don't lint inside of <code>try</code> block</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11042" rel="noopener noreferrer">clippy: <code>unused_async</code>: don't lint if function is part of a trait</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11094" rel="noopener noreferrer">clippy: <code>useless_vec</code>: add more tests and don't lint inside of macros</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11081" rel="noopener noreferrer">clippy: <code>useless_vec</code>: use the source span for initializer</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10924" rel="noopener noreferrer">clippy: don't lint <code>manual_let_else</code> in cases where <code>?</code> would work</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11009" rel="noopener noreferrer">clippy: don't lint code from external macros for 8 lints</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11051" rel="noopener noreferrer">clippy: make <code>eq_op</code> suggest <code>.is_nan()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11030" rel="noopener noreferrer">clippy: suggest <code>is_some_and</code> over <code>map().unwrap</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15101" rel="noopener noreferrer">rust-analyzer: check Workspace Edit ResourceOps</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15184" rel="noopener noreferrer">rust-analyzer: disable mir interpreter for targets with different pointer size from host</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15159" rel="noopener noreferrer">rust-analyzer: editor/code: enable <code>noImplicitOverride</code> ts option</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15154" rel="noopener noreferrer">rust-analyzer: editor/code: use <code>@tsconfig/strictest</code> to define type checking rules</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15186" rel="noopener noreferrer">rust-analyzer: don't add panics to error jump list by default</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15148" rel="noopener noreferrer">rust-analyzer: fix <code>self</code> and <code>super</code> path resolution in block modules</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15173" rel="noopener noreferrer">rust-analyzer: fix data layout of reference to nested unsized structs</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15194" rel="noopener noreferrer">rust-analyzer: fix layout of simd types and respect align in mir interpreter</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15189" rel="noopener noreferrer">rust-analyzer: fix overflow checking in shift operator</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15177" rel="noopener noreferrer">rust-analyzer: fix panic in <code>handle_code_action</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15168" rel="noopener noreferrer">rust-analyzer: fix realloc problem in allocating smaller amounts</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15157" rel="noopener noreferrer">rust-analyzer: fix runnable detection for <code>#[tokio::test]</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15118" rel="noopener noreferrer">rust-analyzer: follow raw pointers in autoderef chain when resolving methods with custom receiver</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14990" rel="noopener noreferrer">rust-analyzer: map our diagnostics to rustc and clippy's ones</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15172" rel="noopener noreferrer">rust-analyzer: support <code>#[derive_const(Trait)]</code></a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>A quiet week, with a mixed set of improvements and regressions. Overall slightly more improvements than regressions.</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=b5e51db16dfbf5685e32dfe2d9a835a5c695afe4&amp;end=52d8c490a3aabe65cdd9f2d3aed95034dd5dbad7&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">b5e51db16..52d8c490</a></p> <p>4 Regressions, 4 Improvements, 2 Mixed; 0 of them in rollups</p> <p>51 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-07-04.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/3355" rel="noopener noreferrer">RFC: Start working on a Rust specification</a></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113175" rel="noopener noreferrer">Enable coinduction support for Safe Transmute</a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/108975" rel="noopener noreferrer">feat: split <code>unsafe_code</code> lint into lint group</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/113130" rel="noopener noreferrer">Correct the Android stat struct definitions</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3455" rel="noopener noreferrer">Create a Testing sub-team</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3453" rel="noopener noreferrer">Add <code>f16</code> and <code>f128</code> float types</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3452" rel="noopener noreferrer">RFC: Nested Cargo packages</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3451" rel="noopener noreferrer">Additional float types</a></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-07-05 - 2023-08-02 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-07-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309295" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfckbhb" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-07-06 | Virtual (Ciudad de México, MX) | <a href="https://www.meetup.com/rust-mx/" rel="noopener noreferrer">Rust MX</a><ul> <li><a href="https://www.meetup.com/rust-mx/events/294152158" rel="noopener noreferrer"><strong>Rust y Haskell</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfckbgb/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, July Meetup</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfckbpb" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-07-11 - 2023-07-13 | Virtual (Europe) | <a href="https://mainmatter.com/" rel="noopener noreferrer">Mainmatter</a><ul> <li><a href="https://rust-web-services-workshop.mainmatter.com/" rel="noopener noreferrer"><strong>Web-based Services in Rust, 3-day Workshop with Stefan Baumgartner</strong></a></li> </ul> </li> <li>2023-07-13 - 2023-07-14 | Virtual | <a href="https://scientificcomputing.rs/" rel="noopener noreferrer">Scientific Computing in Rust</a><ul> <li><a href="https://scientificcomputing.rs/" rel="noopener noreferrer"><strong>Scientific Computing in Rust workshop</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Edinburgh, UK) | <a href="https://www.meetup.com/rust-edi/" rel="noopener noreferrer">Rust Edinburgh</a><ul> <li><a href="https://www.meetup.com/rust-edi/events/293820336/" rel="noopener noreferrer"><strong>Reasoning about Rust: an introduction to Rustdoc’s JSON format</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Nuremberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732650" rel="noopener noreferrer"><strong>Rust Nürnberg online #27</strong></a></li> </ul> </li> <li>2023-07-18 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbxb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-19 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763486" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-07-20 | Virtual (Tehran, IR) | <a href="https://rust-meetup.ir/" rel="noopener noreferrer">Iran Rust Meetup</a><ul> <li><a href="https://rust-meetup.ir/2023/07/20/12th-meetup.html" rel="noopener noreferrer"><strong>Iran Rust Meetup #12 - Ownership and Memory management</strong></a></li> </ul> </li> <li>2023-07-25 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfckbhc/" rel="noopener noreferrer"><strong>Last Tuesday</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-07-08 | Bangalore, IN | <a href="https://hasgeek.com/rustlangin" rel="noopener noreferrer">Rust India</a><ul> <li><a href="https://hasgeek.com/rustlangin/july-2023-rustacean-meetup/" rel="noopener noreferrer"><strong>Rust India monthly meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-07-05 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/" rel="noopener noreferrer">Rust Lyon</a><ul> <li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/294325808" rel="noopener noreferrer"><strong>Rust Lyon Meetup #5</strong></a></li> </ul> </li> <li>2023-07-11 | Breda, NL | <a href="https://www.meetup.com/rust-nederland/" rel="noopener noreferrer">Rust Nederland</a><ul> <li><a href="https://www.meetup.com/rust-nederland/events/294199533/" rel="noopener noreferrer"><strong>Rust: Advanced Graphics and User Interfaces</strong></a></li> </ul> </li> <li>2023-07-13 | Berlin, DE | <a href="https://www.meetup.com/rust-berlin/" rel="noopener noreferrer">Rust Berlin</a><ul> <li><a href="https://www.meetup.com/rust-berlin/events/294627419" rel="noopener noreferrer"><strong>Rust and Tell - beer garden Edition</strong></a></li> </ul> </li> <li>2023-07-13 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/mstlftyfckbrb/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong></a></li> </ul> </li> <li>2023-07-21 | Nuremberg, DE | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293823522/" rel="noopener noreferrer"><strong>Rust Nuremberg Get Together #2</strong></a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-07-07 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/" rel="noopener noreferrer">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/293794930/" rel="noopener noreferrer"><strong>Rust Lunch</strong></a></li> </ul> </li> <li>2023-07-12 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/294373345" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-07-12 | Waterloo, ON, CA | <a href="https://www.meetup.com/rust-kw/" rel="noopener noreferrer">Rust KW</a><ul> <li><a href="https://www.meetup.com/rust-kw/events/294355516/" rel="noopener noreferrer"><strong>Overengineering FizzBuzz</strong></a></li> </ul> </li> <li>2023-07-13 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/" rel="noopener noreferrer">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/294604589/" rel="noopener noreferrer"><strong>Writing Kuberenetes Operators in Rust</strong></a></li> </ul> </li> <li>2023-07-13 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294631273" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-07-13 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294191599/" rel="noopener noreferrer"><strong>July Meetup</strong></a></li> </ul> </li> <li>2023-07-18 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfckbxb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-07-11 | Christchurch, NZ | <a href="https://www.meetup.com/christchurch-rustlang-meetup-group/" rel="noopener noreferrer">Christchurch Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/christchurch-rustlang-meetup-group/events/294447461/" rel="noopener noreferrer"><strong>Christchurch Rust meetup meeting</strong></a></li> </ul> </li> <li>2023-07-11 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/294274774/" rel="noopener noreferrer"><strong>(Hybrid - in person &amp; online) July 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>I'm not here to tell you that Rust is the best language....... you should have figured that out by now. </p> </blockquote> <p>– <a href="https://www.youtube.com/watch?v=TGfQu0bQTKc" rel="noopener noreferrer">Jester Hartman on youtube</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1443" rel="noopener noreferrer">newpavlov</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="https://this-week-in-rust.org/blog/2023/07/05/this-week-in-rust-502" rel="noopener noreferrer">Discuss on r/rust</a></small></p> Announcing regex 1.9 freedit 2023-07-05 2023-07-05 105 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/07/05/regex-1.9.html">Announcing regex 1.9</a> </div> </article> <p>The regex sub-team is announcing the release of <code>regex 1.9</code>. The <code>regex</code> crate is maintained by the Rust project and is the recommended way to use regular expressions in Rust. Its defining characteristic is its guarantee of worst case linear time searches with respect to the size of the string being searched.</p> <p>Releases of the <code>regex</code> crate aren't normally announced on this blog, but since the majority of its internals have been rewritten in version 1.9, this announcement serves to encourage extra scrutiny. If you run into any problems or performance regressions, please report them on the <a href="https://github.com/rust-lang/regex/issues" rel="noopener noreferrer">issue tracker</a> or <a href="https://github.com/rust-lang/regex/discussions" rel="noopener noreferrer">ask questions on the Discussion forum</a>.</p> <p>Few API additions have been made, but one worth calling out is the <a href="https://docs.rs/regex/1.*/regex/struct.Captures.html#method.extract" rel="noopener noreferrer"><code>Captures::extract</code></a> method that should make getting capture groups in some cases more convenient. Otherwise, the main change folks should see is hopefully faster search times.</p> <p>You can read more in the <a href="https://github.com/rust-lang/regex/blob/master/CHANGELOG.md#190-2023-07-05" rel="noopener noreferrer">CHANGELOG</a> and in a more in depth blog post on <a href="https://blog.burntsushi.net/regex-internals/" rel="noopener noreferrer">regex crate internals as a library</a>.</p> Rustfmt support for let-else statements freedit 2023-07-01 2023-07-01 104 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/07/01/rustfmt-supports-let-else-statements.html">Rustfmt support for let-else statements</a> </div> </article> <p>Rustfmt will add support for formatting <a href="https://doc.rust-lang.org/rust-by-example/flow_control/let_else.html" rel="noopener noreferrer">let-else statements</a> starting with the nightly 2023-07-02 toolchain, and then let-else formatting support should come to stable Rust as part of the 1.72 release.</p> <h2><a href="#overview" rel="noopener noreferrer"></a>Overview</h2> <p>let-else statements were <a href="https://blog.rust-lang.org/2022/11/03/Rust-1.65.0.html#let-else-statements" rel="noopener noreferrer">stabilized</a> back in 2022 as part of the 1.65.0 release. However, the current and previous versions of Rustfmt did not have formatting support for let-else statements. When Rustfmt encountered a let-else statement it would leave it alone and maintain the manual styling originally authored by the developer.</p> <p>After updating to one of the toolchains with let-else formatting support, you may notice that <code>cargo fmt</code>/<code>rustfmt</code> invocations want to "change" the formatting of your let-else statements. However, this isn't actually a "change" in formatting, but instead is simply Rustfmt applying the <a href="https://doc.rust-lang.org/nightly/style-guide/statements.html#else-blocks-let-else-statements" rel="noopener noreferrer">let-else formatting rules</a> for the very first time.</p> <p>Rustfmt support for let-else statements has been a long standing request, and the Project has taken a number of steps to prevent a recurrence of the delay between feature stabilization and formatting support, as well as putting additional procedures in place which should enable more expeditious formatting support for nightly-only syntax.</p> <h2><a href="#background-and-context" rel="noopener noreferrer"></a>Background and Context</h2> <p>Rust has an official <a href="https://doc.rust-lang.org/nightly/style-guide/" rel="noopener noreferrer">Style Guide</a> that articulates the default formatting style for Rust code. The Style Guide functions as a specification that defines the default formatting behavior for Rustfmt, and Rustfmt's primary mission is to provide automated formatting capabilities based around that Style Guide specification. Rustfmt is a direct consumer of the Style Guide, but Rustfmt does not unilaterally dictate what the default formatting style of language constructs should be.</p> <p>The initial Style Guide was developed many years ago (beginning in 2016), and was driven by a Style Team in collaboration with the community through an RFC process. The Style Guide was then made official in 2018 via <a href="https://rust-lang.github.io/rfcs/2436-style-guide.html" rel="noopener noreferrer">RFC 2436</a>.</p> <p>That initial Style Team was more akin to a Project Working Group in today's terms, as they had a fixed scope with a main goal to simply pull together the initial Style Guide. Accordingly that initial Style Team was disbanded once the Guide was made official.</p> <p>There was subsequently no designated group within the Rust Project that was explicitly responsible for the Style Guide, and no group explicitly focused on determining the official Style for new language constructs.</p> <p>The absence of a team/group with ownership of the Style Guide didn't really cause problems at first, as the new syntax that came along during the first few years was comparatively non-controversial when it came to default style and formatting. However, over time challenges started to develop when there was increasingly less community consensus and no governing team within the Project to make the final decision about how new language syntax should be styled.</p> <p>This was certainly the case with let-else statements, with lots of varying perspectives on how they should be styled. Without any team/group to make the decision and update the Style Guide with the official rules for let-else statements, Rustfmt was blocked and was unable to proceed.</p> <p>These circumstances around let-else statements resulted in a greater understanding across the Project of the need to establish a team to own and maintain the Style Guide. However, it was also well understood that spinning up a new team and respective processes would take some time, and the decision was made to not block the stabilization of features that were otherwise fully ready to be stabilized, like let-else statements, in the nascency of such a new team and new processes.</p> <p>Accordingly, let-else statements were stabilized and released without formatting support and with an understanding that the new Style Team and then subsequently the Rustfmt Team would later complete the requisite work required to incorporate formatting support.</p> <h2><a href="#steps-taken" rel="noopener noreferrer"></a>Steps Taken</h2> <p>A number of steps have been taken to improve matters in this space. This includes steps to address the aforementioned issues and deal with some of the "style debt" that accrued over the years in the absence of a Style Team, and also to establish new processes and mechanisms to bring about other formatting/styling improvements.</p> <ul> <li><a href="https://rust-lang.github.io/rfcs/3309-style-team.html" rel="noopener noreferrer">Launched a new, permanent Style Team</a> that's responsible for the Style Guide.</li> <li>Established a mechanism to evolve the default style while still maintaining stability guarantees (<a href="https://rust-lang.github.io/rfcs/3338-style-evolution.html" rel="noopener noreferrer">RFC 3338</a>).</li> <li>Developed a <a href="https://github.com/rust-lang/style-team/blob/468570a02856a6bbe3994164e1a16a13b56b5cf4/nightly-style-procedure.md" rel="noopener noreferrer">nightly-syntax-policy</a> that provides clarity around style rules for unstable/nightly-only syntax, and enables Rustfmt to provide earlier support for such syntax.</li> </ul> <p>Furthermore, the Style Team is also continuing to diligently work through the backlog of those "style debt" items, and the Rustfmt team is in turn actively working on respective formatting implementation. The Rustfmt team is also focused on growing the team in order to improve contributor and review capacity.</p> <h2><a href="#conclusion" rel="noopener noreferrer"></a>Conclusion</h2> <p>We know that many have wanted let-else formatting support for a while, and we're sorry it's taken this long. We also recognize that Rustfmt now starting to format let-else statements may cause some formatting churn, and that's a highly undesirable scenario we strive to avoid.</p> <p>However, we believe the benefits of delivering let-else formatting support outweigh those drawbacks. While it's possible there may be another future case or two where we have to do something similar as we work through the style backlog, we're hopeful that over time this new team and these new processes will reduce (or eliminate) the possibility of a recurrence by addressing the historical problems that played such an outsize role in the let-else delay, and also bring about various other improvements.</p> <p>Both the Style and Rustfmt teams hang out on Zulip so if you'd like to get more involved or have any questions please drop by on <a href="https://rust-lang.zulipchat.com/#narrow/stream/346005-t-style" rel="noopener noreferrer">T-Style</a> and/or <a href="https://rust-lang.zulipchat.com/#narrow/stream/357797-t-rustfmt" rel="noopener noreferrer">T-Rustfmt</a>.</p> This Week in Rust 501 freedit 2023-06-28 2023-06-28 100 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/06/28/this-week-in-rust-501/">This Week in Rust 501</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/" rel="noopener noreferrer">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust" rel="noopener noreferrer">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust" rel="noopener noreferrer">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md" rel="noopener noreferrer">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust" rel="noopener noreferrer">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/" rel="noopener noreferrer">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls" rel="noopener noreferrer">please submit a PR</a>.</p> <h2><a href="#updates-from-rust-community" rel="noopener noreferrer">Updates from Rust Community</a></h2> <h3><a href="#official" rel="noopener noreferrer">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/06/23/improved-api-tokens-for-crates-io.html" rel="noopener noreferrer">Improved API tokens for crates.io</a></li> </ul> <h3><a href="#projecttooling-updates" rel="noopener noreferrer">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/06/26/changelog-187.html" rel="noopener noreferrer">rust-analyzer changelog #187</a></li> <li><a href="https://github.com/containers/youki/releases/tag/v0.1.0" rel="noopener noreferrer">Youki v0.1.0 has been released for use with Kubernetes and more</a></li> <li><a href="https://zellij.dev/news/new-plugin-system/" rel="noopener noreferrer">Build Zellij WebAssembly (Rust) plugins for your Terminal</a></li> <li><a href="https://slint.dev/blog/slint-1.1-released" rel="noopener noreferrer">Slint 1.1 Released with additional Royalty-Free License</a></li> <li><a href="https://exograph.dev/blog/hello-exograph" rel="noopener noreferrer">Exograph: Declarative GraphQL backends with a Rust-powered runtime</a></li> <li><a href="https://github.com/greyblake/nutype/releases/tag/v0.3.0" rel="noopener noreferrer">Nutype v0.3</a></li> </ul> <h3><a href="#observationsthoughts" rel="noopener noreferrer">Observations/Thoughts</a></h3> <ul> <li><a href="https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html" rel="noopener noreferrer">Rust fact vs. fiction: 5 Insights from Google's Rust journey in 2022</a></li> <li><a href="https://www.unscript.net/redblog/posts/trait-impl-macros/" rel="noopener noreferrer">Escaping Macrophages</a></li> <li><a href="https://rrmprogramming.com/article/code-coverage-in-rust/" rel="noopener noreferrer">Code coverage in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=ZZTk-zS4ZCY" rel="noopener noreferrer">Verus - Verified Rust for low-level systems code by Andrea Lattuada</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/kwindla-hultman-kramer/" rel="noopener noreferrer">Daily with Kwindla Hultman Kramer :: Rustacean Station</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/erlend-sogge-heggen/" rel="noopener noreferrer">Fish Folk with Erlend Sogge Heggen :: Rustacean Station</a></li> </ul> <h3><a href="#rust-walkthroughs" rel="noopener noreferrer">Rust Walkthroughs</a></h3> <ul> <li><a href="https://www.gustavwengel.dk/serde-untagged-enum-errors-are-bad" rel="noopener noreferrer">Serde Errors When Deserializing Untagged Enums Are Bad - But Easy to Make Better</a></li> <li><a href="https://claytonwramsey.github.io/2023/06/20/fiddler-const-magic.html" rel="noopener noreferrer">Blowing up my compile times for dubious benefits</a></li> <li><a href="https://www.thecodedmessage.com/posts/prefix-ranges/" rel="noopener noreferrer">Walk-Through: Prefix Ranges in Rust, a Surprisingly Deep Dive</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-embedded-rust-at-the-hal-remote-control-peripheral" rel="noopener noreferrer">ESP32 Embedded Rust at the HAL: Remote Control Peripheral</a></li> <li><a href="https://identeco.de/en/blog/generating_and_validating_openapi_docs_in_rust/" rel="noopener noreferrer">Auto-Generating &amp; Validating OpenAPI Docs in Rust: A Streamlined Approach with Utoipa and Schemathesis</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=TQVwv_e_rMw" rel="noopener noreferrer">Writing a Rust-based ring buffer</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=IHAPVK1nOrQ" rel="noopener noreferrer">Supercharge your I/O in Rust with io_uring</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=ZDy3tqn-DKA" rel="noopener noreferrer">Graph Traversal with Breadth-First Search in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=B6E0Jb6yj34" rel="noopener noreferrer">Nine Rules for Writing Python Extensions in Rust | PyData Seattle 2023</a></li> </ul> <h3><a href="#research" rel="noopener noreferrer">Research</a></h3> <ul> <li><a href="https://arxiv.org/abs/2306.08127" rel="noopener noreferrer">Friend or Foe Inside? Exploring In-Process Isolation to Maintain Memory Safety for Unsafe Rust</a></li> <li><a href="https://arxiv.org/abs/2306.15076" rel="noopener noreferrer">Agile Development of Linux Schedulers with Ekiben</a></li> </ul> <h3><a href="#miscellaneous" rel="noopener noreferrer">Miscellaneous</a></h3> <ul> <li><a href="https://dzfrias.dev/blog/deploy-rust-cross-platform-github-actions" rel="noopener noreferrer">How to Deploy Cross-Platform Rust Binaries with GitHub Actions</a></li> </ul> <h2><a href="#crate-of-the-week" rel="noopener noreferrer">Crate of the Week</a></h2> <p>This week's crate is <a href="https://docs.rs/parsel" rel="noopener noreferrer">Parsel</a>, an easy to use parser generator.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1208" rel="noopener noreferrer">jacg</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704" rel="noopener noreferrer">Please submit your suggestions and votes for next week</a>!</p> <h2><a href="#call-for-participation" rel="noopener noreferrer">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/avhz/RustQuant/issues/56" rel="noopener noreferrer">RustQuant - Issue 56: Implementing Logistic Regression: weights matrix becomes singular.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/30" rel="noopener noreferrer">RustQuant - Issue 30: Error handling for the library.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/22" rel="noopener noreferrer">RustQuant - Issue 22: Pricing model calibration module.</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/14" rel="noopener noreferrer">RustQuant - Issue 14: Add/improve documentation (esp. math related docs).</a></li> <li><a href="https://github.com/avhz/RustQuant/issues/57" rel="noopener noreferrer">RustQuant - Issue 57: Increase test coverage (chore).</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4062" rel="noopener noreferrer">Ockam - Add API endpoint to retrieve the project's version</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4380" rel="noopener noreferrer">Ockam - Validate the credential before storing it</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4778" rel="noopener noreferrer">Ockam - Update CLI documentation for&nbsp;<code>lease</code>&nbsp;commands</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/83" rel="noopener noreferrer">Send File - create hotspot on Linux operating system</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/137" rel="noopener noreferrer">Send File - Get device storage information (used disk size and total memory)</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/132" rel="noopener noreferrer">Send File - Create hotspot on Windows Operating system</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/29" rel="noopener noreferrer">Send File - Use Tauri store plugin to persist app data</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/1560" rel="noopener noreferrer">mirrord - Alert user when running on OpenShift</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/1552" rel="noopener noreferrer">mirrord - Add integration test for listening on the same port again after closing</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821" rel="noopener noreferrer">here</a>.</p> <h2><a href="#updates-from-the-rust-project" rel="noopener noreferrer">Updates from the Rust Project</a></h2> <p>400 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-06-19..2023-06-26" rel="noopener noreferrer">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112790" rel="noopener noreferrer">syntactically accept <code>become</code> expressions (explicit tail calls experiment)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112887" rel="noopener noreferrer"><code>hir</code>: Add <code>Become</code> expression kind (explicit tail calls experiment)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112559" rel="noopener noreferrer">add esp-idf missing targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113036" rel="noopener noreferrer">accept <code>ReStatic</code> for RPITIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112686" rel="noopener noreferrer">account for sealed traits in privacy and trait bound errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111326" rel="noopener noreferrer">add support for NetBSD/aarch64-be (big-endian arm64)</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112643" rel="noopener noreferrer">always register sized obligation for argument</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112232" rel="noopener noreferrer">better error for non const <code>PartialEq</code> call generated by <code>match</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112810" rel="noopener noreferrer">don't ICE on unnormalized <code>struct</code> tail in layout computation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111747" rel="noopener noreferrer">don't structurally resolve during method ambiguity in probe</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112876" rel="noopener noreferrer">don't substitute a GAT that has mismatched generics in <code>OpaqueTypeCollector</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112956" rel="noopener noreferrer">expose <code>compiler-builtins-weak-intrinsics</code> feature for <code>-Zbuild-std</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112983" rel="noopener noreferrer">fix return type notation associated type suggestion when -Zlower-impl-trait-in-trait-to-assoc-ty</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112981" rel="noopener noreferrer">fix return type notation errors with -Zlower-impl-trait-in-trait-to-assoc-ty</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112854" rel="noopener noreferrer">add cfg diagnostic for unresolved import error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112695" rel="noopener noreferrer">inline before merging cgus</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112868" rel="noopener noreferrer">liberate bound vars properly when suggesting missing async-fn-in-trait</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112759" rel="noopener noreferrer">make <code>closure_saved_names_of_captured_variables</code> a query</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112883" rel="noopener noreferrer">make queries traceable again</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112119" rel="noopener noreferrer">merge <code>BorrowKind::Unique</code> into <code>BorrowKind::Mut</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112762" rel="noopener noreferrer">sort the errors from arguments checking so that suggestions are handled properly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112596" rel="noopener noreferrer">suggest correct signature on missing fn returning RPITIT/AFIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/103503" rel="noopener noreferrer">support Apple tvOS in libstd</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112281" rel="noopener noreferrer">test the cargo args generated by bootstrap.py</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112802" rel="noopener noreferrer">use ErrorGuaranteed instead of booleans in <code>rustc_builtin_macros</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112891" rel="noopener noreferrer">various impl trait in assoc tys cleanups</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111684" rel="noopener noreferrer">warn on unused <code>offset_of!()</code> result</a></li> <li><a href="https://github.com/rust-lang/chalk/pull/797" rel="noopener noreferrer">fix: generalize types before generating built-in <code>Normalize</code> clauses</a></li> <li><a href="https://github.com/rust-lang/chalk/pull/798" rel="noopener noreferrer">support <code>FnPtr</code> trait</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2520" rel="noopener noreferrer">miri: mmap/munmap/mremamp shims</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113024" rel="noopener noreferrer"><code>Default</code>: Always inline primitive data types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111849" rel="noopener noreferrer">add <code>alloc::rc::UniqueRc</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/106450" rel="noopener noreferrer">make {<code>Arc</code>, <code>Rc</code>, <code>Weak</code>}<code>::ptr_eq</code> ignore pointer metadata</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112606" rel="noopener noreferrer">alter <code>Display</code> for <code>Ipv6Addr</code> for IPv4-compatible addresses</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112464" rel="noopener noreferrer">fix windows <code>Socket::connect_timeout</code> overflow</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111850" rel="noopener noreferrer">specialize <code>StepBy&lt;Range&lt;{integer}&gt;&gt;</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112632" rel="noopener noreferrer">implement <code>PartialOrd</code> for <code>Vec</code>s over different allocators</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111087" rel="noopener noreferrer">implement <code>Sync</code> for <code>mpsc::Sender</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12281" rel="noopener noreferrer">cargo: Support <code>cargo Cargo.toml</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12298" rel="noopener noreferrer">cargo: add <code>.toml</code> file extension restriction for <code>-Zconfig-include</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12289" rel="noopener noreferrer">cargo: allow embedded manifests in all commands</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112836" rel="noopener noreferrer">rustdoc: partially fix invalid files creation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112894" rel="noopener noreferrer">rustdoc: fix union fields display</a></li> <li><a href="https://github.com/rust-lang/rust/pull/113028" rel="noopener noreferrer">rustdoc: handle assoc const equalities in cross-crate impl-Trait-in-arg-pos</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112906" rel="noopener noreferrer">rustdoc: render the body of associated types before the where-clause</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5423" rel="noopener noreferrer">rustfmt: handling of numbered markdown lists</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5690" rel="noopener noreferrer">rustfmt: implement <code>let-else</code> formatting</a> (finally!)</li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10948" rel="noopener noreferrer">clippy: <code>borrow_as_ptr</code>: Ignore temporaries</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11021" rel="noopener noreferrer">clippy: <code>format_push_string</code>: look through <code>match</code> and <code>if</code> expressions</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10979" rel="noopener noreferrer">clippy: <code>get_unwrap</code>: include a borrow in the suggestion if argument is not an integer literal</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10992" rel="noopener noreferrer">clippy: <code>items_after_test_module</code>: Ignore in-proc-macros items</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11019" rel="noopener noreferrer">clippy: <code>ptr_arg</code>: Don't lint when return type uses <code>Cow</code>'s lifetime</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10990" rel="noopener noreferrer">clippy: <code>single_match</code>: don't lint if block contains comments</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10994" rel="noopener noreferrer">clippy: <code>type_repetition_in_bounds</code>: respect MSRV for combining bounds</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10986" rel="noopener noreferrer">clippy: allow safety comment above attributes</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11022" rel="noopener noreferrer">clippy: avoid linting <code>extra_unused_type_parameters</code> on procedural macros</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/11005" rel="noopener noreferrer">clippy: check if <code>if</code> conditions always evaluate to true in <code>never_loop</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10952" rel="noopener noreferrer">clippy: don't lint <code>excessive_precision</code> on inf</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10993" rel="noopener noreferrer">clippy: don't lint <code>iter_nth_zero</code> in <code>next</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10996" rel="noopener noreferrer">clippy: lint <code>mem_forget</code> if any fields are <code>Drop</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14948" rel="noopener noreferrer">rust-analyzer: feature: assist delegate impl</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15135" rel="noopener noreferrer">rust-analyzer: fix some unsizing problems in mir</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15104" rel="noopener noreferrer">rust-analyzer: skip mutable diagnostics on synthetic bindings</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15112" rel="noopener noreferrer">rust-analyzer: support manual impl of fn traits in mir interpreter</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15119" rel="noopener noreferrer">rust-analyzer: support more intrinsics in mir interpreter</a></li> </ul> <h3><a href="#rust-compiler-performance-triage" rel="noopener noreferrer">Rust Compiler Performance Triage</a></h3> <p>Relatively quiet week outside of a large win on one incremental benchmark in a regression test (i.e., not real world code). Bimodality in a number of benchmarks continues to be an issue.</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=b9d608c979ad3c0700f9f0237a8c12feb0ba44fb&amp;end=b5e51db16dfbf5685e32dfe2d9a835a5c695afe4&amp;absolute=false&amp;stat=instructions%3Au" rel="noopener noreferrer">b9d608c9..b5e51db</a></p> <p>5 Regressions, 6 Improvements, 3 Mixed; 5 of them in rollups</p> <p>44 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-06-27.md" rel="noopener noreferrer">Full report here</a></p> <h3><a href="#approved-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/commits/master" rel="noopener noreferrer">Approved RFCs</a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs" rel="noopener noreferrer">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><em>No RFCs were approved this week.</em></li> </ul> <h3><a href="#final-comment-period" rel="noopener noreferrer">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html" rel="noopener noreferrer">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4><a href="#rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period" rel="noopener noreferrer">RFCs</a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4><a href="#tracking-issues-prs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc" rel="noopener noreferrer">Tracking Issues &amp; PRs</a></h4> <ul> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/issues/73014" rel="noopener noreferrer">Tracking issue for std::default::default()</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/110961" rel="noopener noreferrer">Create <code>unnecessary_send_constraint</code> lint for <code>&amp;(dyn ... + Send)</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112849" rel="noopener noreferrer">Change default panic handler message format.</a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/issues/112480" rel="noopener noreferrer">MSVC and rustc disagree on minimum stack alignment on x86 Windows</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111119" rel="noopener noreferrer">style-guide: Add chapter about formatting for nightly-only syntax</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/108537" rel="noopener noreferrer">rustdoc: Allow whitespace as path separator like double colon</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/108955" rel="noopener noreferrer">Add <code>internal_features</code> lint</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112319" rel="noopener noreferrer">Don't require associated types with Self: Sized bounds in <code>dyn Trait</code> objects</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112594" rel="noopener noreferrer">Return Ok on kill if process has already exited</a></li> </ul> <h3><a href="#new-and-updated-rfcs" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/pulls" rel="noopener noreferrer">New and Updated RFCs</a></h3> <ul> <li><em>No New or Updated RFCs were created this week.</em></li> </ul> <h3><a href="#call-for-testing" rel="noopener noreferrer"></a><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing" rel="noopener noreferrer">Call for Testing</a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3424" rel="noopener noreferrer">eRFC: single-file packages ("cargo script") integration</a></li> <li><a href="https://github.com/rust-lang/rfcs/pull/3424#issuecomment-1609687109" rel="noopener noreferrer">Testing steps</a></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2><a href="#upcoming-events" rel="noopener noreferrer">Upcoming Events</a></h2> <p>Rusty Events between 2023-06-28 - 2023-07-26 🦀</p> <h3><a href="#virtual" rel="noopener noreferrer">Virtual</a></h3> <ul> <li>2023-06-28 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/" rel="noopener noreferrer">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294184120/" rel="noopener noreferrer"><strong>Building Our Own 'Arc' in Rust (Atomics &amp; Locks Chapter 6)</strong></a></li> </ul> </li> <li>2023-06-28 | Virtual (Chicago, IL, US) | <a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/" rel="noopener noreferrer">Chicago Healthcare Cloud Technology Community</a><ul> <li><a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/events/293278396" rel="noopener noreferrer"><strong>Rust for Mission-Critical AI: A Journey into Healthcare's Safest Language</strong></a></li> </ul> </li> <li>2023-06-29 | Virtual (Charlottesville, VA, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/" rel="noopener noreferrer">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/294294905" rel="noopener noreferrer"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-07-01 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/" rel="noopener noreferrer">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293800373" rel="noopener noreferrer"><strong>Deep Dive Session 4: Protohackers Exercises Mob Coding (Problem II onwards)</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/" rel="noopener noreferrer">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbgb/" rel="noopener noreferrer"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/" rel="noopener noreferrer">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfckbgb/" rel="noopener noreferrer"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/" rel="noopener noreferrer">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309295" rel="noopener noreferrer"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/" rel="noopener noreferrer">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfckbhb" rel="noopener noreferrer"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-07-06 | Virtual (Ciudad de México, MX) | <a href="https://www.meetup.com/rust-mx/" rel="noopener noreferrer">Rust MX</a><ul> <li><a href="https://www.meetup.com/rust-mx/events/294152158" rel="noopener noreferrer"><strong>Rust y Haskell</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/" rel="noopener noreferrer">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfckbpb" rel="noopener noreferrer"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-07-13 - 2023-07-14 | Virtual | <a href="https://scientificcomputing.rs/" rel="noopener noreferrer">Scientific Computing in Rust</a><ul> <li><a href="https://scientificcomputing.rs/" rel="noopener noreferrer"><strong>Scientific Computing in Rust workshop</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Edinburgh, UK) | <a href="https://www.meetup.com/rust-edi/" rel="noopener noreferrer">Rust Edinburgh</a><ul> <li><a href="https://www.meetup.com/rust-edi/events/293820336/" rel="noopener noreferrer"><strong>Reasoning about Rust: an introduction to Rustdoc’s JSON format</strong></a></li> </ul> </li> <li>2023-07-19 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/" rel="noopener noreferrer">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763486" rel="noopener noreferrer"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-07-20 | Virtual (Tehran, IR) | <a href="https://rust-meetup.ir/" rel="noopener noreferrer">Iran Rust Meetup</a><ul> <li><a href="https://rust-meetup.ir/2023/07/20/12th-meetup.html" rel="noopener noreferrer"><strong>Iran Rust Meetup #12 - Ownership and Memory management</strong></a></li> </ul> </li> </ul> <h3><a href="#asia" rel="noopener noreferrer">Asia</a></h3> <ul> <li>2023-06-29 | Seoul, KR | <a href="https://www.meetup.com/t-rust-meetup/" rel="noopener noreferrer">T-RUST meetup</a><ul> <li><a href="https://www.meetup.com/t-rust-meetup/events/294280140/" rel="noopener noreferrer"><strong>🦀 T-RUST Meetup 🦀</strong></a></li> </ul> </li> </ul> <h3><a href="#europe" rel="noopener noreferrer">Europe</a></h3> <ul> <li>2023-06-28 | Bratislava, SK | <a href="https://www.meetup.com/bratislava-rust-meetup-group/" rel="noopener noreferrer">Bratislava Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/bratislava-rust-meetup-group/events/293732916" rel="noopener noreferrer"><strong>Rust Meetup by Sonalake</strong></a></li> </ul> </li> <li>2023-06-29 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/" rel="noopener noreferrer">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/293566071/" rel="noopener noreferrer"><strong>Augsburg Rust Meetup</strong></a></li> </ul> </li> <li>2023-06-29 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/" rel="noopener noreferrer">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294024476" rel="noopener noreferrer"><strong>Rust metup #37 at Samsung!</strong></a></li> </ul> </li> <li>2023-06-29 | Vienna, AT | <a href="https://www.meetup.com/rust-vienna" rel="noopener noreferrer">Rust Vienna</a><ul> <li><a href="https://www.meetup.com/rust-vienna/events/294225540/" rel="noopener noreferrer"><strong>Rust Vienna Meetup - June - final meetup before a summer break</strong></a></li> </ul> </li> <li>2023-07-01 | Basel, CH | <a href="https://www.meetup.com/rust-basel/" rel="noopener noreferrer">Rust Basel</a><ul> <li><a href="https://www.meetup.com/rust-basel/events/293906330/" rel="noopener noreferrer"><strong>(Beginner) Rust Workshop</strong></a></li> </ul> </li> <li>2023-07-03 | Zurich, CH | <a href="https://www.meetup.com/rust-zurich/" rel="noopener noreferrer">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/rust-zurich/events/293322905" rel="noopener noreferrer"><strong>Rust in the Linux Kernel - July Meetup</strong></a></li> </ul> </li> <li>2023-07-05 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/" rel="noopener noreferrer">Rust Lyon</a><ul> <li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/294325808" rel="noopener noreferrer"><strong>Rust Lyon Meetup #5</strong></a></li> </ul> </li> <li>2023-07-11 | Breda, NL | <a href="https://www.meetup.com/rust-nederland/" rel="noopener noreferrer">Rust Nederland</a><ul> <li><a href="https://www.meetup.com/rust-nederland/events/294199533/" rel="noopener noreferrer"><strong>Rust: Advanced Graphics and User Interfaces</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual | <a href="https://mainmatter.com/" rel="noopener noreferrer">Mainmatter</a><ul> <li><a href="https://rust-web-services-workshop.mainmatter.com/" rel="noopener noreferrer">Web-based Services in Rust, 3-day Workshop with Stefan Baumgartner</a></li> </ul> </li> <li>2023-07-13 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/" rel="noopener noreferrer">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/mstlftyfckbrb/" rel="noopener noreferrer"><strong>Reading Rust Meetup at Browns</strong>*</a></li> </ul> </li> </ul> <h3><a href="#north-america" rel="noopener noreferrer">North America</a></h3> <ul> <li>2023-06-21 | Somerville, MA, US | <a href="https://www.meetup.com/BostonRust/" rel="noopener noreferrer">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725119" rel="noopener noreferrer"><strong>Ball Square Rust Lunch, June 21</strong></a></li> </ul> </li> <li>2023-06-22 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/" rel="noopener noreferrer">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/294123104" rel="noopener noreferrer"><strong>Learn How to Use cargo-semver-checks and Closure Traits to Write Better Code</strong></a></li> </ul> </li> <li>2023-06-24 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfcjbgc/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-28 | Cambridge, MA, US | <a href="https://www.meetup.com/BostonRust/" rel="noopener noreferrer">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725559" rel="noopener noreferrer"><strong>Harvard Square Rust Lunch</strong></a></li> </ul> </li> <li>2023-06-29 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/" rel="noopener noreferrer">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294223607" rel="noopener noreferrer"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-07-01 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/" rel="noopener noreferrer">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfckbcb/" rel="noopener noreferrer"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-07-07 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/" rel="noopener noreferrer">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/293794930/" rel="noopener noreferrer"><strong>Rust Lunch</strong></a></li> </ul> </li> <li>2023-07-12 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/" rel="noopener noreferrer">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/294373345" rel="noopener noreferrer"><strong>Rust Lunch - Fareground</strong></a></li> </ul> </li> <li>2023-07-12 | Waterloo, ON, CA | <a href="https://www.meetup.com/rust-kw/" rel="noopener noreferrer">Rust KW</a><ul> <li><a href="https://www.meetup.com/rust-kw/events/294355516/" rel="noopener noreferrer"><strong>Overengineering FizzBuzz</strong></a></li> </ul> </li> <li>2023-07-13 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/" rel="noopener noreferrer">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294191599/" rel="noopener noreferrer"><strong>July Meetup</strong></a></li> </ul> </li> <li>2023-07-18 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/" rel="noopener noreferrer">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfckbxb" rel="noopener noreferrer"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3><a href="#oceania" rel="noopener noreferrer">Oceania</a></h3> <ul> <li>2023-07-11 | Christchurch, NZ | <a href="https://www.meetup.com/christchurch-rustlang-meetup-group/" rel="noopener noreferrer">Christchurch Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/christchurch-rustlang-meetup-group/events/294447461/" rel="noopener noreferrer"><strong>Christchurch Rust meetup meeting</strong></a></li> </ul> </li> <li>2023-07-11 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/" rel="noopener noreferrer">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/294274774/" rel="noopener noreferrer"><strong>(Hybrid - in person &amp; online) July 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> </ul> <h3><a href="#south-america" rel="noopener noreferrer">South America</a></h3> <ul> <li>2023-07-04 | Medellín, CO | <a href="https://www.meetup.com/rust-medellin/" rel="noopener noreferrer">Rust Medellín</a><ul> <li><a href="https://www.meetup.com/rust-medellin/events/294438119/" rel="noopener noreferrer"><strong>Introduccion a rust, ownership and safety code</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com" rel="noopener noreferrer">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org" rel="noopener noreferrer">Rust Community Team</a> for access.</p> <h2><a href="#jobs" rel="noopener noreferrer">Jobs</a></h2> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/" rel="noopener noreferrer">Who's Hiring thread on r/rust</a></p> <h1><a href="#quote-of-the-week" rel="noopener noreferrer">Quote of the Week</a></h1> <blockquote> <p>It's a compiler not a Jedi, don't expect it to read minds.</p> </blockquote> <p>– <a href="https://github.com/juspay/hyperswitch/wiki/Ask-not-what-the-compiler-can-do-for-you#whos-to-blame-here" rel="noopener noreferrer">Nishant on github</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1440" rel="noopener noreferrer">Nishant</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328" rel="noopener noreferrer">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell" rel="noopener noreferrer">nellshamrell</a>, <a href="https://github.com/llogiq" rel="noopener noreferrer">llogiq</a>, <a href="https://github.com/cdmistman" rel="noopener noreferrer">cdmistman</a>, <a href="https://github.com/ericseppanen" rel="noopener noreferrer">ericseppanen</a>, <a href="https://github.com/extrawurst" rel="noopener noreferrer">extrawurst</a>, <a href="https://github.com/andrewpollack" rel="noopener noreferrer">andrewpollack</a>, <a href="https://github.com/U007D" rel="noopener noreferrer">U007D</a>, <a href="https://github.com/kolharsam" rel="noopener noreferrer">kolharsam</a>, <a href="https://github.com/joelmarcey" rel="noopener noreferrer">joelmarcey</a>, <a href="https://github.com/mariannegoldin" rel="noopener noreferrer">mariannegoldin</a>, <a href="https://github.com/bennyvasquez" rel="noopener noreferrer">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/" rel="noopener noreferrer">The Rust Foundation</a></em></p> <p><small><a href="REDDIT_LINK_HERE" rel="noopener noreferrer">Discuss on r/rust</a></small></p> Improved API tokens for crates.io freedit 2023-06-23 2023-06-23 95 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/06/23/improved-api-tokens-for-crates-io.html">Improved API tokens for crates.io</a> </div> </article> <p>If you recently generated a new API token on crates.io, you might have noticed our new API token creation page and some of the new features it now supports.</p> <p>Previously, when clicking the &quot;New Token&quot; button on <a href="https://crates.io/settings/tokens">https://crates.io/settings/tokens</a>, you were only provided with the option to choose a token name, without any additional choices. We knew that we wanted to offer our users more flexibility, but in the previous user interface that would have been difficult, so our first step was to build a proper &quot;New API Token&quot; page.</p> <p>Our roadmap included two essential features known as &quot;token scopes&quot;. The first of them allows you to restrict API tokens to specific operations. For instance, you can configure a token to solely enable the publishing of new versions for existing crates, while disallowing the creation of new crates. The second one offers an optional restriction where tokens can be limited to only work for specific crate names. If you want to read more about how these features were planned and implemented you can take a look at our corresponding <a href="https://github.com/rust-lang/crates.io/issues/5443">tracking issue</a>.</p> <p>To further enhance the security of crates.io API tokens, we prioritized the implementation of expiration dates. Since we had already touched most of the token-related code this was relatively straight-forward. We are delighted to announce that our &quot;New API Token&quot; page now supports endpoint scopes, crate scopes and expiration dates:</p> <p><img src="/images/2023-06-23-improved-api-tokens-for-crates-io/new-api-token-page.png" alt="Screenshot of the &quot;New API Token&quot; page" /></p> <p>Similar to the API token creation process on github.com, you can choose to not have any expiration date, use one of the presets, or even choose a custom expiration date to suit your requirements.</p> <p>If you come across any issues or have questions, feel free to reach out to us on <a href="https://rust-lang.zulipchat.com/#narrow/stream/318791-t-crates-io/topic/token.20scopes">Zulip</a> or open an issue on <a href="https://github.com/rust-lang/crates.io/issues/new/choose">GitHub</a>.</p> <p>Lastly, we, the crates.io team, would like to express our gratitude to the <a href="https://openssf.org/community/alpha-omega/">OpenSSF's Alpha-Omega Initiative</a> and <a href="https://jfrog.com/blog/jfrog-joins-rust-foundation-as-platinum-member/">JFrog</a> for their contributions to the <a href="https://rustfoundation.org">Rust Foundation</a> security initiative. Their support has been instrumental in enabling us to implement these features and undertake extensive security-related work on the crates.io codebase over the past few months.</p> This Week in Rust 500 freedit 2023-06-21 2023-06-21 101 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/06/21/this-week-in-rust-500/">This Week in Rust 500</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p> <h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2> <!-- Dear community contributors: Please read README.md for guidance on submissions. Each submitted link should be of the form: * [Title of the Linked Page](https://example.com/my_article) If you don't know which category to use, feel free to submit a PR anyway and just ask the editors to select the category. --> <h3 id="official"><a class="toclink" href="#official">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html">Introducing the Rust Leadership Council</a></li> </ul> <h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/06/19/changelog-186.html">rust-analyzer changelog #186</a></li> <li><a href="https://quickwit.io/blog/tantivy-0.20">Tantivy 0.20: Schemaless</a></li> <li><a href="https://flexineering.com/posts/lz4-011/">lz4_flex 0.11: Gainzzzzz Unleashed!</a></li> <li><a href="https://www.redb.org/post/2023/06/16/1-0-stable-release/">redb (Rust Embedded DataBase) 1.0 release</a></li> <li><a href="https://github.com/libp2p/rust-libp2p/releases/tag/libp2p-v0.52.0">rust-libp2p v0.52.0: a modular p2p networking stack</a></li> <li><a href="https://fiberplane.com/blog/autometrics-rs-0-5-automatically-connecting-prometheus-metrics-to-traces"><code>autometrics</code> 0.5 - Automatically connecting Prometheus metrics to traces with exemplars</a></li> <li><a href="https://mhamza.dev/blog/ducktor/">Introducing ducktor: Duck typed constructors for Rust structs with wasm-bindgen JsValue</a></li> </ul> <h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3> <ul> <li><a href="https://grafbase.com/blog/how-we-built-the-grafbase-cli-in-rust">How we built the Grafbase local development experience in Rust</a></li> <li><a href="https://blog.waleedkhan.name/encoding-ml-style-modules-in-rust/">Encoding ML-style modules in Rust</a></li> <li><a href="https://www.shuttle.rs/launchpad/issues/2023-06-16-issue-02-Structs-and-Enums">Shuttle Launchpad #2: Structs and Enums</a></li> <li><a href="https://fennel.ai/blog/vector-search-in-200-lines-of-rust/">Building vector search in 200 lines of Rust</a></li> <li><a href="https://kellnr.io/blog/domain-modeling#undefined">Leveraging the Type System for Domain Modeling in Rust</a></li> <li><a href="https://blog.rnstlr.ch/building-an-out-of-tree-rust-kernel-module-part-three.html">Building an out-of-tree Rust Kernel Module Part Three</a></li> <li><a href="https://github.com/juspay/hyperswitch/wiki/Paying-with-%28in-memory%29-cache">Paying with (in memory) cache</a></li> <li><a href="https://www.ockam.io/blog/rewriting_in_rust">Rewriting Ockam in Rust</a></li> </ul> <h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3> <ul> <li><a href="https://radim.xyz/project/axum-template/">API with Axum, SurrealDB, GraphQL - Template</a></li> </ul> <h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3> <ul> <li><a href="https://blog.duyet.net/2023/06/fossil-data-platform-written-rust.html">Fossil Data Platform Rewritten in Rust 🦀</a></li> <li><a href="https://medium.com/better-programming/build-a-cli-tool-for-data-masking-encryption-and-decryption-with-rust-ad36bea27559">Build a CLI Tool for Data Masking, Encryption, and Decryption With Rust</a></li> <li><a href="https://yaah.dev/santiago-maintainer-retention">Santiago Pastorino: Maintainer Retention</a></li> <li><a href="https://github.com/meilisearch/meilisearch/issues/3838">Meilisearch across the Semantic Verse</a></li> <li>[DE] <a href="https://www.heise.de/news/Programmiersprachen-Die-Beliebtheit-von-Rust-bleibt-ungebrochen-9187369.html">Programmiersprachen: Die Beliebtheit von Rust bleibt ungebrochen</a></li> </ul> <h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/MarcoIeni/release-plz">release-plz</a>, a crate to automate changelog generation, GitHub/Gitea release tagging, publishing on <a href="https://crates.io">crates.io</a> and bumping the version.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1207">Marco Ieni</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p> <h2 id="call-for-participation"><a class="toclink" href="#call-for-participation">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/opeolluwa/send-file/issues/137">Send-file - Get device memory information</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/132">Send-file - create hotspot on Windows operating system</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4916">Ockam - Implement clap commands <code>ockam uninstall</code> and <code>ockam upgrade</code></a></li> <li><a href="https://github.com/build-trust/ockam/issues/4961">Ockam - Enable pnpm support in dependabot</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5158">Ockam - Add an "optional" tag to commands arguments' description when generating markdown docs</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1497">Hyperswitch - Make get_redis_conn return result in StorageInterface</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1490">Hyperswitch - Implement <code>QueueInterface</code> for <code>MockDb</code></a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1453">Hyperswitch - Maintain consistency between <code>PaymentIntent</code> and <code>PaymentAttempt</code> for <code>connector_id</code></a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1491">Hyperswitch - Implement <code>PaymentMethodInterface</code> for <code>MockDb</code></a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1492">Hyperswitch - Use the newtype pattern for ZIP/PIN codes</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/462">mirrord - Non-indicative error when running on a Completed pod</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/366">mirrord - Log problem in layer and exit when agent image is not found</a></li> <li><a href="https://github.com/metalbear-co/mirrord/issues/911">mirrord - Further tests for HTTP header filtering.</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p> <h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2> <p>410 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-06-12..2023-06-19">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112400">collect VTable stats &amp; add <code>-Zprint-vtable-sizes</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112403">prevent <code>.eh_frame</code> from being emitted for <code>-C panic=abort</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112366"><code>#[test]</code> function signature verification improvements</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112728">add <code>&lt;meta charset="utf-8"&gt;</code> to <code>-Zdump-mir-spanview</code> output</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111212">add casting suggestion when assigning negative 2's complement bin or hex literal to a size compatible signed integer</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112777">continue folding in query normalizer on weak aliases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112537">don't record adjustments twice in <code>note_source_of_type_mismatch_constraint</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112783">don't ICE on bound var in <code>reject_fn_ptr_impls</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111885">don't ICE on unsized <code>extern "rust-call"</code> call</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112636">don't capture <code>&amp;[T; N]</code> when contents isn't read</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112529">extend <code>unused_must_use</code> to cover block exprs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112639">fix <code>dead_code_cgu</code> computation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112612">fix explicit-outlives-requirements lint span</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112486">fix suggestion for E0404 not dealing with multiple generics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112520">fix the overflow issue for <code>transmute_generic_consts</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112642">handle interpolated literal errors</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112599">non-unwinding panic for misaligned pointer deref</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112062">make <code>struct</code> layout not depend on unsizeable tail</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112351">new solver proof tree generation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112443">opportunistically resolve regions in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112654">normalize closure output in <code>equate_inputs_and_outputs</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/110662">safe Transmute: Enable handling references</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112474">support 128-bit <code>enum</code> variant in debuginfo codegen</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112448">introduce a minimum CGU size in non-incremental builds</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112294">ignore the always part of <code>#[inline(always)]</code> in MIR inlining</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112600">introduce a <code>Stable</code> trait to translate MIR to SMIR</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112617">make mir dataflow graphviz dumps opt-in</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2661">miri: dereference pointers in shims as correct types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112238">promote unchecked integer math to MIR <code>BinOp</code>s</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112724">simplify <code>unchecked_{shl,shr}</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/98202">implement <code>TryFrom&lt;&amp;OsStr&gt;</code> for <code>&amp;str</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112330">extend <code>io::copy</code> buffer reuse to BufReader too</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109814">stabilize <code>String::leak</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112226"><code>available_parallelism</code> using native netbsd api first</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112685">only depend on dlmalloc for wasm*-unknown</a></li> <li><a href="https://github.com/rust-lang/rust/pull/104455">don't drain-on-drop in <code>DrainFilter</code> impls of various collections</a></li> <li><a href="https://github.com/rust-lang/rust/pull/99339">make <code>BinaryHeap</code> parametric over Allocator</a></li> <li><a href="https://github.com/rust-lang/rust/pull/106343">optimize <code>slice::Iter::fold</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111074">relax implicit <code>T: Sized</code> bounds on <code>BufReader&lt;T&gt;</code>, <code>BufWriter&lt;T&gt;</code> and <code>LineWriter&lt;T&gt;</code></a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/439">hashbrown: fix leaking of allocator in <code>RawIntoIter</code> and <code>RawIntoParIter</code></a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12255">cargo: Align package name sanitization with cargo-new</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12283">cargo: Don't auto-discover build.rs files</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12258">cargo: Switch to <code>syn</code> for parsing doc comments</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12221">cargo: enable <code>doctest-in-workspace</code> by default</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12267">cargo: fix version requirement example in Dependency Resolution, SemVer compatibility section</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112581">rustdoc: Fix URL encoding of % sign</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112707">rustdoc: Fix invalid handling of "going back in history" when "go to only search result" setting is enabled</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112562">rustdoc-gui: allow running on Windows</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112571">rustdoc-search: search never type with <code>!</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/110688">rustdoc: add search result item types after their name</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5687">rustfmt: adjust <code>enum</code> variant spans to exclude any explicit discriminant</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5732">rustfmt: prevent ICE when calling <code>parse_attribute</code> without an attribute</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10925">clippy: add lint <code>incorrect_clone_impl_on_copy_type</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10951">clippy: new lint <code>single_call_fn</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10934">clippy: new lint <code>single_range_in_vec_init</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10835">clippy: new lint: <code>drain_collect</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10793">clippy: <code>arithmetic_side_effects</code> also lint const arithmetic</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10953">clippy: <code>missing_panics_doc</code>: pickup expect method</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10930">clippy: <code>redundant_closure_call</code>: handle nested closures</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10980">clippy: fix <code>find_format_arg_expr</code> when incremental compilation is enabled</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10954">clippy: <code>derivable_impls</code>: don't lint if <code>default()</code> call expr unsize-coerces to trait object</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10919">clippy: <code>map_unwrap_or</code>: don't lint when referenced variable is moved</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10946">clippy: <code>match_same_arms</code>: don't lint if <code>non_exhaustive_omitted_patterns</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10891">clippy: <code>missing_const_for_fn</code>: Ensure dropped locals are <code>~const Destruct</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10950">clippy: <code>needless_doctest_main</code>: ignore <code>main()</code> in <code>no_test</code> code fences</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10976">clippy: make <code>missing_panics_doc</code> not lint for <code>todo!()</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10935">clippy: don't lint non-statement/faux empty <code>needless_if</code>s</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10975">clippy: fix false positive of <code>self_named_module_files</code> and <code>mod_module_files</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10942">clippy: ignore more type aliases in <code>unnecessary_cast</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10886">clippy: adding configuration to allow safety comment above stmt containing unsafe block</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10947">clippy: improve suggestion for <code>needless_lifetimes</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10840">clippy: <code>from_over_into</code>: Show suggestions for non-Self expanded paths</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10931">clippy: <code>unnecessary_fold</code>: suggest turbofish if necessary</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10945">clippy: <code>no_effect</code>: Suggest adding <code>return</code> if applicable</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10965">clippy: make <code>--explain</code> subcommand return 1 for missing lints</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15074">rust-analyzer: correctly handle inlining of async fn</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15044">rust-analyzer: deduplicate tuple indices for completion</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15075">rust-analyzer: add binding definition for for-expr iterator desugared binding</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15085">rust-analyzer: ensure that ws loading error includes path to ws</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15054">rust-analyzer: implement missing members doesn't transform const params and default types</a></li> </ul> <h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3> <p>Fairly positive week with very few regressions and some decent (albeit incremental) improvements. The most widespread gains came from some standard library improvements which are not a particularly common cause of large improvements in compiler performance. Overall a large chunk of the perf test suite showed an average of 0.6% improvement.</p> <p>Triage done by <strong>@rylev</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=4bd4e2ea824f4f458cae8917047ebb6b88853fe6&amp;end=b9d608c979ad3c0700f9f0237a8c12feb0ba44fb&amp;absolute=false&amp;stat=instructions%3Au">4bd4e2e..b9d608c</a></p> <p><strong>Summary</strong>:</p> <table> <thead> <tr> <th align="center">(instructions:u)</th> <th align="center">mean</th> <th align="center">range</th> <th align="center">count</th> </tr> </thead> <tbody> <tr> <td align="center">Regressions ❌ <br /> (primary)</td> <td align="center">1.4%</td> <td align="center">[0.5%, 3.6%]</td> <td align="center">16</td> </tr> <tr> <td align="center">Regressions ❌ <br /> (secondary)</td> <td align="center">1.0%</td> <td align="center">[0.2%, 3.5%]</td> <td align="center">29</td> </tr> <tr> <td align="center">Improvements ✅ <br /> (primary)</td> <td align="center">-0.8%</td> <td align="center">[-7.8%, -0.2%]</td> <td align="center">157</td> </tr> <tr> <td align="center">Improvements ✅ <br /> (secondary)</td> <td align="center">-2.9%</td> <td align="center">[-48.3%, -0.3%]</td> <td align="center">84</td> </tr> <tr> <td align="center">All ❌✅ (primary)</td> <td align="center">-0.6%</td> <td align="center">[-7.8%, 3.6%]</td> <td align="center">173</td> </tr> </tbody> </table> <p>3 Regressions, 7 Improvements, 4 Mixed; 3 of them in rollups 51 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-06-20.md">Full report here</a></p> <h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3392">Add RFC on governance, establishing the Leadership Council</a></li> </ul> <h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Tracking Issues &amp; PRs</a></a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112632">Implement PartialOrd for <code>Vec</code>s over different allocators</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/94748">Add <code>Read</code>, <code>Write</code> and <code>Seek</code> impls for <code>Arc&lt;File&gt;</code> where appropriate</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112594">Return <code>Ok</code> on kill if process has already exited</a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/issues/41619">Tracking issue for RFC 1868: A portability lint</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111087">Implement <code>Sync</code> for <code>mpsc::Sender</code></a></li> </ul> <h3 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3450">Propose code string literals</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3449">Contextual target feature detection</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3446">Introduce the Store API for great good.</a></li> </ul> <h3 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2> <p>Rusty Events between 2023-06-21 - 2023-07-19 🦀</p> <h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3> <ul> <li>2023-06-21 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763484"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-06-22 | Virtual (Karlsruhe, DE) | <a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/">Karlsruhe Functional Programmers Group</a><ul> <li><a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/events/293937801"><strong>Stammtisch (gemeinsam mit der C++ UG KA)</strong></a></li> </ul> </li> <li>2023-06-25 | Virtual (Auckland, NZ) | <a href="https://resbaz.auckland.ac.nz/">ResBaz Aotearoa 2023</a><ul> <li><a href="https://www.eventbrite.com/e/research-computing-with-the-rust-programming-language-tickets-637648623197?aff=ebdssbdestsearch"><strong>Research Computing With The Rust Programming Language - Tim McNamara</strong></a></li> </ul> </li> <li>2023-06-27 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfcjbkc/"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-06-28 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/294184120/"><strong>Building Our Own 'Arc' in Rust (Atomics &amp; Locks Chapter 6)</strong></a></li> </ul> </li> <li>2023-06-28 | Virtual (Chicago, IL, US) | <a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/">Chicago Healthcare Cloud Technology Community</a><ul> <li><a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/events/293278396"><strong>Rust for Mission-Critical AI: A Journey into Healthcare's Safest Language</strong></a></li> </ul> </li> <li>2023-06-29 | Virtual (Charlottesville, VA, US) | <a href="https://www.meetup.com/charlottesville-rust-meetup/">Charlottesville Rust Meetup</a><ul> <li><a href="https://www.meetup.com/charlottesville-rust-meetup/events/294294905"><strong>Crafting Interpreters in Rust Collaboratively</strong></a></li> </ul> </li> <li>2023-06-29 | Virtual (Ciudad de México, MX) | <a href="https://www.meetup.com/rust-mx/">Rust MX</a><ul> <li><a href="https://www.meetup.com/rust-mx/events/294152158"><strong>Rust y Haskell</strong></a></li> </ul> </li> <li>2023-07-01 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293800373"><strong>Deep Dive Session 4: Protohackers Exercises Mob Coding (Problem II onwards)</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbgb/"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfckbgb/"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309295"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/dvvtvsyfckbhb"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfckbpb"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-07-13 - 2023-07-14 | Virtual | <a href="https://scientificcomputing.rs/">Scientific Computing in Rust</a><ul> <li><a href="https://scientificcomputing.rs/"><strong>Scientific Computing in Rust workshop</strong></a></li> </ul> </li> <li>2023-07-13 | Virtual (Edinburgh, UK) | <a href="https://www.meetup.com/rust-edi/">Rust Edinburgh</a><ul> <li><a href="https://www.meetup.com/rust-edi/events/293820336/"><strong>Reasoning about Rust: an introduction to Rustdoc’s JSON format</strong></a></li> </ul> </li> </ul> <h3 id="asia"><a class="toclink" href="#asia">Asia</a></h3> <ul> <li>2023-06-29 | Seoul, KR | <a href="https://www.meetup.com/t-rust-meetup/">T-RUST meetup</a><ul> <li><a href="https://www.meetup.com/t-rust-meetup/events/294280140/"><strong>🦀 T-RUST Meetup 🦀</strong></a></li> </ul> </li> </ul> <h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3> <ul> <li>2023-06-22 | Vienna, AT | <a href="https://www.meetup.com/papers-we-love-vienna/">Papers We Love Vienna</a><ul> <li><a href="https://www.meetup.com/papers-we-love-vienna/events/293974147"><strong>June: Data and Ownership in Rust</strong></a></li> </ul> </li> <li>2023-06-22 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/">Rust Bern</a><ul> <li><a href="https://www.meetup.com/de-DE/rust-bern/events/293619228/"><strong>Second Rust Bern Meetup</strong></a></li> </ul> </li> <li>2023-06-22 | Wrocław, PL | <a href="https://www.meetup.com/rust-wroclaw/">Rust Wrocław</a><ul> <li><a href="https://www.meetup.com/rust-wroclaw/events/294176450/"><strong>Rust Meetup #34</strong></a></li> </ul> </li> <li>2023-06-27 | Bucharest, RO | <a href="https://www.meetup.com/rust-lang-bucharest-meetup/">Rust Lang Bucharest Meetup</a><ul> <li><a href="https://www.meetup.com/rust-lang-bucharest-meetup/events/294204963/"><strong>Rust Bucharest Meetup #2</strong></a></li> </ul> </li> <li>2023-06-27 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/">Rust London User Group</a><ul> <li><a href="https://www.meetup.com/rust-london-user-group/events/294038743/"><strong>LDN Talks June 2023 <em>Shuttle Takeover</em></strong></a></li> </ul> </li> <li>2023-06-27 | Paris, FR | <a href="https://www.meetup.com/rust-paris/">Rust Paris</a><ul> <li><a href="https://www.meetup.com/rust-paris/events/294138477"><strong>Rust Paris meetup #60</strong></a></li> </ul> </li> <li>2023-06-28 | Bratislava, SK | <a href="https://www.meetup.com/bratislava-rust-meetup-group/">Bratislava Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/bratislava-rust-meetup-group/events/293732916"><strong>Rust Meetup by Sonalake</strong></a></li> </ul> </li> <li>2023-06-29 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/293566071/"><strong>Augsburg Rust Meetup</strong></a></li> </ul> </li> <li>2023-06-29 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294024476"><strong>Rust metup #37 at Samsung!</strong></a></li> </ul> </li> <li>2023-06-29 | Vienna, AT | <a href="https://www.meetup.com/rust-vienna">Rust Vienna</a><ul> <li><a href="https://www.meetup.com/rust-vienna/events/294225540/"><strong>Rust Vienna Meetup - June - final meetup before a summer break</strong></a></li> </ul> </li> <li>2023-07-01 | Basel, CH | <a href="https://www.meetup.com/rust-basel/">Rust Basel</a><ul> <li><a href="https://www.meetup.com/rust-basel/events/293906330/"><strong>(Beginner) Rust Workshop</strong></a></li> </ul> </li> <li>2023-07-03 | Zurich, CH | <a href="https://www.meetup.com/rust-zurich/">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/rust-zurich/events/293322905"><strong>Rust in the Linux Kernel - July Meetup</strong></a></li> </ul> </li> <li>2023-07-05 | Lyon, FR | <a href="https://www.meetup.com/fr-FR/rust-lyon/">Rust Lyon</a><ul> <li><a href="https://www.meetup.com/fr-FR/rust-lyon/events/294325808"><strong>Rust Lyon Meetup #5</strong></a></li> </ul> </li> <li>2023-07-11 | Breda, NL | <a href="https://www.meetup.com/rust-nederland/">Rust Nederland</a><ul> <li><a href="https://www.meetup.com/rust-nederland/events/294199533/"><strong>Rust: Advanced Graphics and User Interfaces</strong></a></li> </ul> </li> <li>2023-07-13 | Reading, UK | <a href="https://www.meetup.com/reading-rust-workshop/">Reading Rust Workshop</a><ul> <li><a href="https://www.meetup.com/reading-rust-workshop/events/mstlftyfckbrb/"><strong>Reading Rust Meetup at Browns</strong>*</a></li> </ul> </li> </ul> <h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3> <ul> <li>2023-06-21 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/294049756"><strong>Rust Lunch - Pizza sponsored by JFrog</strong></a></li> </ul> </li> <li>2023-06-21 | Somerville, MA, US | <a href="https://www.meetup.com/BostonRust/">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725119"><strong>Ball Square Rust Lunch, June 21</strong></a></li> </ul> </li> <li>2023-06-22 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/294123104"><strong>Learn How to Use cargo-semver-checks and Closure Traits to Write Better Code</strong></a></li> </ul> </li> <li>2023-06-24 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfcjbgc/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-28 | Cambridge, MA, US | <a href="https://www.meetup.com/BostonRust/">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725559"><strong>Harvard Square Rust Lunch</strong></a></li> </ul> </li> <li>2023-06-29 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294223607"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-07-01 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfckbcb/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-07-07 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/293794930/"><strong>Rust Lunch</strong></a></li> </ul> </li> <li>2023-07-13 | Seattle, WA, US | <a href="https://www.meetup.com/seattle-rust-user-group/">Seattle Rust User Group Meetup</a><ul> <li><a href="https://www.meetup.com/seattle-rust-user-group/events/294191599/"><strong>July Meetup</strong></a></li> </ul> </li> <li>2023-07-18 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/vwljctyfckbxb"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> </ul> <h3 id="oceania"><a class="toclink" href="#oceania">Oceania</a></h3> <ul> <li>2023-07-11 | Melbourne, VIC, AU | <a href="https://www.meetup.com/rust-melbourne/">Rust Melbourne</a><ul> <li><a href="https://www.meetup.com/rust-melbourne/events/294274774/"><strong>(Hybrid - in person &amp; online) July 2023 Rust Melbourne Meetup</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p> <h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2> <!-- Rust Jobs: TWiR has stopped featuring individual job postings. You can read more about this change here: https://github.com/rust-lang/this-week-in-rust/issues/3412 --> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p> <h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1> <blockquote> <p>rust programmers when they see each other again:</p> <blockquote> <p>Long time no C</p> </blockquote> </blockquote> <p>– <a href="https://mond-basis.eu/@transcaffeine/110538051681033551">ciscoffeine on mond-basis.eu</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1435">Brian Kung</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/14fovn3/this_week_in_rust_500/">Discuss on r/rust</a></small></p> Introducing the Rust Leadership Council freedit 2023-06-20 2023-06-20 91 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>Rust Blog</b>. Source: <a href="https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html">Introducing the Rust Leadership Council</a> </div> </article> <p>As of today, <a href="https://github.com/rust-lang/rfcs/pull/3392">RFC 3392</a> has been merged, forming the new top level governance body of the Rust Project: the Leadership Council. The creation of this Council marks the end of both the Core Team and the interim Leadership Chat.</p> <p>The Council will assume responsibility for top-level governance concerns while most of the responsibilities of the Rust Project (such as maintenance of the compiler and core tooling, evolution of the language and standard libraries, administration of infrastructure, etc.) remain with the nine top level teams.</p> <p>Each of these top level teams, <a href="https://rust-lang.github.io/rfcs/3392-leadership-council.html#initial-list-of-top-level-teams">as defined in the RFC</a>, has chosen a representative who collectively form <a href="https://www.rust-lang.org/governance/teams/leadership-council">the Council</a>:</p> <ul> <li>Compiler: Eric Holk</li> <li>Crates.io: Carol (Nichols || Goulding)</li> <li>Dev Tools: Eric Huss</li> <li>Infrastructure: Ryan Levick</li> <li>Language: Jack Huey</li> <li>Launching Pad<sup class="footnote-ref"><a href="#fn1" id="fnref1">1</a></sup>: Jonathan Pallant</li> <li>Library: Mara Bos</li> <li>Moderation: Khionu Sybiern</li> <li>Release: Mark Rousskov</li> </ul> <p>First, we want to take a moment to thank the Core Team and interim Leadership Chat for the hard work they've put in over the years. Their efforts have been critical for the Rust Project. However, we do recognize that the governance of the Rust Project has had its shortcomings. We hope to build on the successes and improve upon the failures to ultimately lead to greater transparency and accountability.</p> <p>We know that there is a lot of work to do and we are eager to get started. In the coming weeks we will be establishing the basic infrastructure for the group, including creating a plan for regular meetings and a process for raising agenda items, setting up a team repository, and ultimately completing the transition from the former Rust leadership structures.</p> <p>We will post more once this bootstrapping process has been completed.</p> <section class="footnotes"> <ol> <li id="fn1"> <p>The RFC defines the launching pad team as a temporary umbrella team to represent subteams that do not currently have a top-level team. <a href="#fnref1" class="footnote-backref">↩</a></p> </li> </ol> </section> This Week in Rust 499 freedit 2023-06-14 2023-06-14 89 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/06/14/this-week-in-rust-499/">This Week in Rust 499</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p> <h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2> <!-- Dear community contributors: Please read README.md for guidance on submissions. Each submitted link should be of the form: * [Title of the Linked Page](https://example.com/my_article) If you don't know which category to use, feel free to submit a PR anyway and just ask the editors to select the category. --> <h3 id="foundation"><a class="toclink" href="#foundation">Foundation</a></h3> <ul> <li><a href="https://foundation.rust-lang.org/news/2023-rust-foundation-fellowship-application-open-through-june-30/">2023 Rust Foundation Fellowship Application Open Through June 30</a></li> </ul> <h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3> <ul> <li><a href="https://fyrox.rs/blog/post/fyrox-game-engine-0-30/">Fyrox Game Engine 0.30</a></li> <li><a href="https://www.tweag.io/blog/2023-05-17-nickel-1.0-release/">Announcing Nickel 1.0</a></li> <li><a href="https://rust-analyzer.github.io/thisweek/2023/06/12/changelog-185.html">rust-analyzer changelog #185</a></li> <li><a href="https://github.com/ZcashFoundation/zebra">Announcing Zebra 1.0.0: a Rust implementation of Zcash</a></li> </ul> <h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3> <ul> <li><a href="https://epage.github.io/blog/2023/06/iterating-on-test/">Iterating on Testing in Rust</a></li> <li><a href="https://smallcultfollowing.com/babysteps/blog/2023/06/12/higher-ranked-projections-send-bound-problem-part-4/">Higher-ranked projections (send bound problem, part 4)</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=XjbVnwBtVEk">Raph Levien on Xilem Vector Graphics</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=svR0p6fSUYY">Unsafe Rust and Miri by Ralf Jung</a></li> <li>[audio] <a href="https://rustacean-station.org/episode/tobias-hunger-slint-1.0/">Slint 1.0 with Tobias Hunger</a></li> </ul> <h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3> <ul> <li><a href="https://medium.com/@otukof/a-beginners-guide-to-rust-procedural-macros-creating-a-json-derive-macro-eb44279e7244">A Beginner’s Guide to Rust Procedural Macros: Creating a JSON Derive Macro</a></li> <li><a href="https://blog.logrocket.com/implementing-data-parallelism-rayon-rust/">Implementing data parallelism with Rayon Rust</a></li> <li><a href="https://developerlife.com/2022/03/12/rust-redux/">Write a Redux library in Rust</a></li> <li><a href="https://medium.com/p/d5b61acff741">Check AI-Generated Code Perfectly and Automatically: My Experience Applying Kani’s Formal Verification to ChatGPT-Suggested Rust Code</a></li> <li><a href="https://quickwit.io/blog/observing-rust-app-with-quickwit-jaeger-grafana">Observing your Rust application with Quickwit, Jaeger and Grafana</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=LafOj_HrxRQ">Introducing the enum data type in Rust</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=S5EBLCoPgoA">Rust streams: Diving into WebAssembly and WASI (series)</a></li> </ul> <h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/mailtutan/mailtutan">mailtutan</a>, a simulating SMTP server.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1204">Mohsen Alizadeh</a> for the self-suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p> <h2 id="call-for-participation"><a class="toclink" href="#call-for-participation">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <ul> <li><a href="https://github.com/opeolluwa/send-file/issues/120">Send File - help improve the readme</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/83">Send File - create wifi hotspot on Linux operating system</a></li> <li><a href="https://github.com/opeolluwa/send-file/issues/29">Send File - use Tauri store plugin to persist app data</a></li> <li><a href="https://github.com/build-trust/ockam/issues/5087">Ockam - Extract command logic from Kafka create commands</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4961">Ockam - Enable pnpm support in dependabot</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4775">Ockam - Update CLI documentation for <code>credential</code> commands</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1357">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1438">Hyperswitch - Remove Basic keyword from shift4 API key</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1439">Hyperswitch - Payments list doesn't work with pagination parameters</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p> <h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2> <p>346 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-06-05..2023-06-12">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112345">expand: prevent infinite loop in macro containing only "///"</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110141">expand: change how <code>#![cfg(FALSE)]</code> behaves on crate root</a></li> <li><a href="https://github.com/rust-lang/rust/pull/96875">add <code>task::Waker::noop</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112527">add <code>windows_sys</code> type definitions for ARM32 manually</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112483">add deprecation warning to python versions <code>&lt;3.6</code> in x.py</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112261">add help for trying to do C-like pointer arithmetics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112310">add new Tier-3 targets: <code>loongarch64-unknown-none*</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111369">added custom risc32-imac for esp-espidf target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112413">adjust span labels for <code>hidden_glob_reexports</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112081">avoid ICE on <code>#![doc(test(...)]</code> with literal parameter</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112179">avoid passing <code>--cpu-features</code> when empty</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112292">avoid unwind across <code>extern "C"</code> in <code>thread_local::fast_local</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112325">diagnostics: do not suggest type name tweaks on type-inferred closure args</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112410">do <code>fix_*_builtin_expr</code> hacks on the writeback results</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112333">don't hold the active queries lock while calling <code>make_query</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112323">don't mention already-set fields in <code>struct</code> constructor missing field error</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112019">don't suggest changing <code>&amp;self</code> and <code>&amp;mut self</code> in function signature to be mutable when taking <code>&amp;mut self</code> in closure</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112513">dont compute <code>opt_suggest_box_span</code> span for TAIT</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111047">emit an error when return-type-notation is used with type/const params</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112316">ensure space is inserted after keyword in <code>unused_delims</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112076">fall back to bidirectional normalizes-to if no subst-relate candidate in alias-relate goal</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112392">fix ICE for while loop with assignment condition with LHS place expr</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112199">fix suggestion for matching <code>struct</code> with <code>..</code> on both ends</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111698">force all native libraries to be statically linked when linking a static binary</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112541">implement stdout streaming in <code>render_tests::Renderer</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111819">improved std support for ps vita target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112426">increase the accuracy of effective visibilities calculation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112452">make "consider importing" consistent for macros</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111962">make GDB Python Pretty Printers loadable after spawning GDB, avoiding required <code>rust-gdb</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112318">merge method, type and const object safety checks</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112303">normalize in infcx instead of globally for <code>Option::as_deref</code> suggestion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112343">prevent emitting <code>missing_docs</code> for <code>pub extern crate</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111801">private-in-public lints implementation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109005">remember names of <code>cfg</code>-ed out items to mention them in diagnostics</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112358">remove default visitor impl in region constraint generation</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110040">removed use of iteration through a HashMap/HashSet in <code>rustc_incremental</code> and replaced with IndexMap/IndexSet</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112196">resolve vars in result from <code>scrape_region_constraints</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112359">respect <code>RUST_BACKTRACE</code> for delayed bugs</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112428">structurally resolve pointee in <code>check_pat_lit</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112302">suggest using <code>ptr::null_mut</code> when user provided <code>ptr::null</code> to a function expecting <code>ptr::null_mut</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/108293">take MIR dataflow analyses by mutable reference</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111818">uplift <code>clippy::cmp_nan</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111530">uplift <code>clippy::undropped_manually_drops</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111999">use <code>load</code>+<code>store</code> instead of <code>memcpy</code> for small integer arrays</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111626">write to stdout if <code>-</code> is given as output file</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109953">use 128 bits for TypeId hash</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112216">support float-like tuple indices in <code>offset_of!()</code></a></li> <li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/279">codegen_gcc: regen intrinsics with latest LLVM version</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12245">cargo: initial support for single-file packages</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12234">cargo: disable multiplexing for some versions of curl</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12244">cargo: fetch nested git submodules</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12241">cargo: test: loose overly matches for git cli output</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12236">cargo: upgrade to <code>gix</code> v0.45 for multi-round pack negotiations</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112543">rustdoc: Fix infinite loop when retrieving impls for type alias</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112429">rustdoc: List matching impls on type aliases</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111958">rustdoc: search for slices and arrays by type with <code>[]</code></a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5780">rustfmt: recover comments between attrs and generic param</a></li> <li><a href="https://github.com/rust-lang/rustfmt/pull/5776">rustfmt: remove rustc-workspace-hack</a></li> <li>clippy: new lints: <a href="https://github.com/rust-lang/rust-clippy/pull/10672"><code>excessive_nesting</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10921"><code>needless_if</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10358"><code>unnecessary_literal_unwrap</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10570">redundant type annotations</a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10898"><code>arc_with_non_send_or_sync</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10916"><code>min_ident_chars</code></a>, <a href="https://github.com/rust-lang/rust-clippy/pull/10827"><code>large_stack_frames</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10865">clippy: <code>let_with_type_underscore</code>: Don't emit on locals from procedural macros</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10897">clippy: <code>missing_fields_in_debug</code>: don't ICE when self type is a generic param</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10905">clippy: <code>redundant_closure</code>: special case inclusive ranges</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10904">clippy: <code>suspicious_else_formatting</code>: Don't warn if there is a comment between else and curly bracket</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10894">clippy: <code>type_repetition_in_bounds</code>: Don't lint on derived code</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10913">clippy: <code>unnecessary_to_owned</code>: check that the adjusted type matches target</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10901">clippy: <code>useless_vec</code>: lint <code>vec!</code> invocations when a slice or an array would do</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10933">clippy: <code>useless_vec</code>: lint on <code>vec![_]</code> invocations that adjust to a slice</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10917">clippy: allow disabling module inception on private modules</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10896">clippy: consider autoderef through user-defined <code>Deref</code> in <code>eager_or_lazy</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10911">clippy: don't lint <code>as_conversions</code> in proc macros</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10416">clippy: extend <code>explicit_iter_loop</code> and <code>explicit_into_iter_loop</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10785">clippy: fix <code>diverging_sub_expression</code> not checking body of block</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10909">clippy: fix <code>useless_vec</code> suggestion in <code>for _ in vec![..]</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10914">clippy: handle exponent without digits in <code>numeric_literal</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10910">clippy: ignore more pointer types in <code>unnecessary_cast</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10927">clippy: ignore more type aliases in <code>unnecessary_cast</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10564">clippy: make <code>cast_possible_wrap</code> work correctly for 16 bit {u,i}size</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112339">fix rust-analyzer proc macro server</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14960">rust-analyzer: add span to group</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15020">rust-analyzer: count query entries in memory usage command</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14925">rust-analyzer: inline const as literal</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15019">rust-analyzer: fix panic in displaying const trait objects</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15022">rust-analyzer: fix panic in displaying unsized structs</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15026">rust-analyzer: deduplicate fields and types in completion</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14989">rust-analyzer: derive source scope from syntax node to be transformed</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15032">rust-analyzer: exclude Markdown injection grammar from .vscodeignore</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14994">rust-analyzer: fix ci never running on nightly when proc-macro things change</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15006">rust-analyzer: fix panic in <code>format_args</code> expansion</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14995">rust-analyzer: fix proc-macro slow test</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14875">rust-analyzer: implemeted lifetime transformation fot assists</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15012">rust-analyzer: infer return type for async function in <code>generate_function</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14932">rust-analyzer: lower const params with a bad id</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/15000">rust-analyzer: only generate trait bound for associated types in field types</a></li> </ul> <h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3> <p>Our build pipeline got sped up by PR #112012, which side-steps one of the rustc rebuilds we were suffering with before. (There is further potential speed-up by caching LLVM, as noted by on that PR.) Other than that, various small regressions that are largely noise, as well as one unexpected increase in binary sizes from PR #109005 that we should follow up on.</p> <p>Triage done by <strong>@pnkfelix</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=adc719d7147d5e2578ce08e0b4504be44650256e&amp;end=4bd4e2ea824f4f458cae8917047ebb6b88853fe6&amp;absolute=false&amp;stat=instructions%3Au">adc719d7..4bd4e2ea</a></p> <p>7 Regressions, 3 Improvements, 5 Mixed; 5 of them in rollups 46 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-06-13.md">Full report here</a></p> <h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3425">Return position impl Trait in traits</a></li> </ul> <h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Tracking Issues &amp; PRs</a></a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111087">Implement Sync for mpsc::Sender</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112086">resolve: Remove artificial import ambiguity errors</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111074">Relax implicit <code>T: Sized</code> bounds on <code>BufReader&lt;T&gt;</code>, <code>BufWriter&lt;T&gt;</code> and <code>LineWriter&lt;T&gt;</code></a></li> </ul> <h3 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3444">Infered types</a></li> </ul> <h3 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2> <p>Rusty Events between 2023-06-14 - 2023-07-12 🦀</p> <h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3> <ul> <li>2023-06-14 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/293882628/"><strong>Building Spin Locks and Channels - Rust Atomics &amp; Locks Bookclub Chapters 4 &amp; 5</strong></a></li> </ul> </li> <li>2023-06-14 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/293014897"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-06-15 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/293786806"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-06-15 | Virtual (Tehran, IR) | <a href="https://rust-meetup.ir/">Iran Rust Meetup</a><ul> <li><a href="https://rust-meetup.ir/2023/06/15/11th-meetup.html"><strong>Iran Rust Meetup #11 - Unsafe and FFI</strong></a></li> </ul> </li> <li>2023-06-19 | Virtual (San Francisco, CA, US) | <a href="https://www.meetup.com/data-science-on-aws/">Data Science on AWS - San Francisco, Global</a><ul> <li><a href="https://www.meetup.com/data-science-on-aws/events/289912375"><strong>Generative AI Parameter Efficient Fine Tuning (PEFT), RLHF + Polars: "Polars, lightning-fast DataFrame library for Rust and Python", presented by Suman Debnath</strong></a></li> </ul> </li> <li>2023-06-20 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/293485510"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-06-20 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/jkxsctyfcjbbc/"><strong>Mid-month Rustful</strong></a></li> </ul> </li> <li>2023-06-21 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763484"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-06-22 | Virtual (Karlsruhe, DE) | <a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/">Karlsruhe Functional Programmers Group</a><ul> <li><a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/events/293937801"><strong>Stammtisch (gemeinsam mit der C++ UG KA)</strong></a></li> </ul> </li> <li>2023-06-25 | Virtual (Auckland, NZ) | <a href="https://resbaz.auckland.ac.nz/">ResBaz Aotearoa 2023</a><ul> <li><a href="https://www.eventbrite.com/e/research-computing-with-the-rust-programming-language-tickets-637648623197?aff=ebdssbdestsearch"><strong>Research Computing With The Rust Programming Language - Tim McNamara</strong></a></li> </ul> </li> <li>2023-06-27 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfcjbkc/"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-06-28 | Virtual (Chicago, IL, US) | <a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/">Chicago Healthcare Cloud Technology Community</a><ul> <li><a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/events/293278396"><strong>Rust for Mission-Critical AI: A Journey into Healthcare's Safest Language</strong></a></li> </ul> </li> <li>2023-06-29 | Virtual (Ciudad de México, MX) | <a href="https://www.meetup.com/rust-mx/">Rust MX</a><ul> <li><a href="https://www.meetup.com/rust-mx/events/294152158"><strong>Rust y Haskell</strong></a></li> </ul> </li> <li>2023-07-01 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/293800373"><strong>Deep Dive Session 4: Protohackers Exercises Mob Coding (Problem II onwards)</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbgb/"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfckbgb/"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309295"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-07-11 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/vndgwsyfckbpb"><strong>Second Tuesday</strong></a></li> </ul> </li> </ul> <h3 id="asia"><a class="toclink" href="#asia">Asia</a></h3> <ul> <li>2023-06-15 | Seoul, KR | <a href="https://www.meetup.com/t-rust-meetup/">T-RUST meetup</a><ul> <li><a href="https://www.meetup.com/t-rust-meetup/events/294055635/"><strong>🦀 T-RUST Meetup 🦀</strong></a></li> </ul> </li> </ul> <h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3> <ul> <li>2023-06-16 | Stuttgart, DE | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/pdhvctyfcjbvb/"><strong>OnSite Meeting</strong></a></li> </ul> </li> <li>2023-06-20 | Montpellier, FR | <a href="https://www.meetup.com/montpellier-rust-meetup/">Montpellier Rust Meetup</a><ul> <li><a href="https://www.meetup.com/montpellier-rust-meetup/events/294159602/"><strong>Meetup Rust Juin 2023</strong></a></li> </ul> </li> <li>2023-06-22 | Vienna, AT | <a href="https://www.meetup.com/papers-we-love-vienna/">Papers We Love Vienna</a><ul> <li><a href="https://www.meetup.com/papers-we-love-vienna/events/293974147"><strong>June: Data and Ownership in Rust</strong></a></li> </ul> </li> <li>2023-06-22 | Bern, CH | <a href="https://www.meetup.com/de-DE/rust-bern/">Rust Bern</a><ul> <li><a href="https://www.meetup.com/de-DE/rust-bern/events/293619228/"><strong>Second Rust Bern Meetup</strong></a></li> </ul> </li> <li>2023-06-22 | Wrocław, PL | <a href="https://www.meetup.com/rust-wroclaw/">Rust Wrocław</a><ul> <li><a href="https://www.meetup.com/rust-wroclaw/events/294176450/"><strong>Rust Meetup #34</strong></a></li> </ul> </li> <li>2023-06-27 | London, UK | <a href="https://www.meetup.com/rust-london-user-group/">Rust London User Group</a><ul> <li><a href="https://www.meetup.com/rust-london-user-group/events/294038743/"><strong>LDN Talks June 2023 <em>Shuttle Takeover</em></strong></a></li> </ul> </li> <li>2023-06-27 | Paris, FR | <a href="https://www.meetup.com/rust-paris/">Rust Paris</a><ul> <li><a href="https://www.meetup.com/rust-paris/events/294138477"><strong>Rust Paris meetup #60</strong></a></li> </ul> </li> <li>2023-06-28 | Bratislava, SK | <a href="https://www.meetup.com/bratislava-rust-meetup-group/">Bratislava Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/bratislava-rust-meetup-group/events/293732916"><strong>Rust Meetup by Sonalake</strong></a></li> </ul> </li> <li>2023-06-29 | Augsburg, DE | <a href="https://www.meetup.com/rust-meetup-augsburg/">Rust Meetup Augsburg</a><ul> <li><a href="https://www.meetup.com/rust-meetup-augsburg/events/293566071/"><strong>Augsburg Rust Meetup</strong></a></li> </ul> </li> <li>2023-06-29 | Copenhagen, DK | <a href="https://www.meetup.com/copenhagen-rust-community/">Copenhagen Rust Community</a><ul> <li><a href="https://www.meetup.com/copenhagen-rust-community/events/294024476"><strong>Rust metup #37 at Samsung!</strong></a></li> </ul> </li> <li>2023-07-01 | Basel, CH | <a href="https://www.meetup.com/rust-basel/">Rust Basel</a><ul> <li><a href="https://www.meetup.com/rust-basel/events/293906330/"><strong>(Beginner) Rust Workshop</strong></a></li> </ul> </li> <li>2023-07-03 | Zurich, CH | <a href="https://www.meetup.com/rust-zurich/">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/rust-zurich/events/293322905"><strong>Rust in the Linux Kernel - July Meetup</strong></a></li> </ul> </li> </ul> <h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3> <ul> <li>2023-06-15 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294032616"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-06-17 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/293825860"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-20 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/293118809"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-06-21 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/294049756"><strong>Rust Lunch - Pizza sponsored by JFrog</strong></a></li> </ul> </li> <li>2023-06-21 | Somerville, MA, US | <a href="https://www.meetup.com/BostonRust/">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725119"><strong>Ball Square Rust Lunch, June 21</strong></a></li> </ul> </li> <li>2023-06-22 | New York, NY, US | <a href="https://www.meetup.com/rust-nyc/">Rust NYC</a><ul> <li><a href="https://www.meetup.com/rust-nyc/events/294123104"><strong>Learn How to Use cargo-semver-checks and Closure Traits to Write Better Code</strong></a></li> </ul> </li> <li>2023-06-24 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfcjbgc/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-28 | Cambridge, MA, US | <a href="https://www.meetup.com/BostonRust/">Boston Rust Meetup</a><ul> <li><a href="https://www.meetup.com/BostonRust/events/293725559"><strong>Harvard Square Rust Lunch</strong></a></li> </ul> </li> <li>2023-07-01 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfckbcb/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-07-07 | Chicago, IL, US | <a href="https://www.meetup.com/deep-dish-rust/">Deep Dish Rust</a><ul> <li><a href="https://www.meetup.com/deep-dish-rust/events/293794930/"><strong>Rust Lunch</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p> <h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2> <!-- Rust Jobs: TWiR has stopped featuring individual job postings. You can read more about this change here: https://github.com/rust-lang/this-week-in-rust/issues/3412 --> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p> <h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1> <p>Alas this week remains quoteless for lack of suggestions.</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/149oagp/this_week_in_rust_499/">Discuss on r/rust</a></small></p> This Week in Rust 498 freedit 2023-06-07 2023-06-07 102 <article class="message is-info"> <div class="message-header"> <p>Info</p> </div> <div class="message-body"> This post is auto-generated from RSS feed <b>This Week in Rust</b>. Source: <a href="https://this-week-in-rust.org/blog/2023/06/07/this-week-in-rust-498/">This Week in Rust 498</a> </div> </article> <p>Hello and welcome to another issue of <em>This Week in Rust</em>! <a href="https://www.rust-lang.org/">Rust</a> is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> on Twitter or <a href="https://mastodon.social/@thisweekinrust">@ThisWeekinRust</a> on mastodon.social, or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>. Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p> <p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a> and archives can be viewed at <a href="https://this-week-in-rust.org/">this-week-in-rust.org</a>. If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p> <h2 id="updates-from-rust-community"><a class="toclink" href="#updates-from-rust-community">Updates from Rust Community</a></h2> <!-- Dear community contributors: Please read README.md for guidance on submissions. Each submitted link should be of the form: * [Title of the Linked Page](https://example.com/my_article) If you don't know which category to use, feel free to submit a PR anyway and just ask the editors to select the category. --> <h3 id="official"><a class="toclink" href="#official">Official</a></h3> <ul> <li><a href="https://blog.rust-lang.org/2023/06/01/Rust-1.70.0.html">Announcing Rust 1.70.0</a></li> </ul> <h3 id="newsletters"><a class="toclink" href="#newsletters">Newsletters</a></h3> <ul> <li><a href="https://gamedev.rs/news/045/">This Month in Rust GameDev #45 - April 2023</a></li> <li><a href="https://rust-osdev.com/this-month/2023-05/">This Month in Rust OSDev: May 2023</a></li> </ul> <h3 id="projecttooling-updates"><a class="toclink" href="#projecttooling-updates">Project/Tooling Updates</a></h3> <ul> <li><a href="https://rust-analyzer.github.io/thisweek/2023/06/05/changelog-184.html">Changelog #184</a></li> <li><a href="https://vlopes11.github.io/msgpacker-refactor/">MsgPacker: Enhancing performance and security</a></li> <li><a href="https://diesel.rs/news/2_1_0_release.html">Diesel 2.1: Generated Migrations and simplified MultiBackend support</a></li> <li><a href="https://quickwit.io/blog/quickwit-0.6">Quickwit 0.6: Elasticsearch compatible API, range &amp; prefix phrase queries, histogram &amp; percentiles aggregations, and more...!</a> </li> <li><a href="https://blog.meilisearch.com/v1-2-release/">Meilisearch 1.2 - new features for filters and engine improvements</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=q2vJ8Faundw">The status of parallel rustc - Nicholas Nethercote</a></li> </ul> <h3 id="observationsthoughts"><a class="toclink" href="#observationsthoughts">Observations/Thoughts</a></h3> <ul> <li><a href="https://notgull.github.io/async-gui/">A Proposal for an asynchronous Rust GUI framework</a></li> <li><a href="https://sentry.engineering/blog/locking-war-story">A locking war story</a></li> <li><a href="https://terminusdb.com/blog/vector-database-and-vector-embeddings/">Building a Vector Database to Make Use of Vector Embeddings</a></li> <li><a href="https://balwurk.com/data-exfiltration-through-dns-with-rust/">Data Exfiltration through DNS with Rust</a></li> <li><a href="https://graydon2.dreamwidth.org/307291.html">The Rust I Wanted Had No Future</a></li> <li><a href="https://www.ralfj.de/blog/2023/06/02/tree-borrows.html">From Stacks to Trees: A new aliasing model for Rust</a></li> <li><a href="https://apollolabsblog.hashnode.dev/esp32-embedded-rust-at-the-hal-gpio-interrupts?ref=twitter-share">ESP32 Embedded Rust at the HAL: GPIO Interrupts</a></li> <li><a href="https://leod.github.io/rust/gamedev/posh/2023/06/04/posh.html">Introducing posh: Type-Safe Graphics Programming with Functional Shaders in Rust</a></li> <li><a href="https://gruebelinchen.wordpress.com/2023/06/06/demystifying-trait-generics-in-rust/">Demystifying trait generics in Rust</a></li> </ul> <h3 id="rust-walkthroughs"><a class="toclink" href="#rust-walkthroughs">Rust Walkthroughs</a></h3> <ul> <li><a href="https://medium.com/@shyamsundarb/writing-universal-libraries-using-c-and-consuming-it-in-rust-wasi-80ad1174e0c9">Writing universal libraries using C++ and consuming it in Rust (WASI)</a></li> <li><a href="https://blog.parker-codes.dev/posts/rusts-cfg-attribute">Rust's cfg Attribute</a></li> <li><a href="https://cohenarthur.github.io/2023/06/05/rust-derives.html">Looking at Rust builtin derives</a></li> <li><a href="https://blog.yoshuawuyts.com/what-is-wasi/">What is WASI?</a></li> <li><a href="https://developerlife.com/2022/08/04/rust-dsl-part-1/">Create a simple DSL for CSS like syntax for TUIs</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=GFijwucFJqw">A Practical Introduction to Derive Macros with Attributes</a></li> </ul> <h3 id="miscellaneous"><a class="toclink" href="#miscellaneous">Miscellaneous</a></h3> <ul> <li>[audio] <a href="https://rustacean-station.org/episode/stefan-baumgartner/">Shuttle Launchpad with Stefan Baumgartner :: Rustacean Station</a></li> <li>[audio] <a href="https://wayofthecrab.com/episodes/005/">Episode 5: Putting Lipstick on a Pig</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=jC7QDlNxIg8">Bevy Basics Timers</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=LWwOSZJwEJI">We Built a Blazingly Fast Video Conferencing System in Rust &amp; WASM</a></li> <li>[video] <a href="https://www.youtube.com/watch?v=Tml94je2edk">Why Static Typing Came Back • Richard Feldman • GOTO 2022</a></li> </ul> <h2 id="crate-of-the-week"><a class="toclink" href="#crate-of-the-week">Crate of the Week</a></h2> <p>This week's crate is <a href="https://github.com/jtroo/kanata">kanata</a>, a keyboard remapper for Linux and Windows.</p> <p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/1203">Aleksey Kladov</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p> <h2 id="call-for-participation"><a class="toclink" href="#call-for-participation">Call for Participation</a></h2> <p>Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!</p> <p>Some of these tasks may also have mentors available, visit the task page for more information.</p> <!-- CFPs go here, use this format: * [project name - title of issue](link to issue) --> <!-- * [ - ]() --> <ul> <li><a href="https://github.com/juspay/hyperswitch/issues/1294">Hyperswitch - Remove redundant heap allocation (specifically string construction) in the application</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1357">Hyperswitch - add domain type for client secret</a></li> <li><a href="https://github.com/juspay/hyperswitch/issues/1381">Hyperswitch - Implement cache for <code>MerchantKeyStore</code></a></li> <li><a href="https://github.com/build-trust/ockam/issues/5041">Ockam - Add <code>--yes</code> flag to <code>delete</code> commands to prevent unintentional deletions</a></li> <li><a href="https://github.com/build-trust/ockam/issues/4967">Ockam - Define json output for <code>ockam node create</code></a></li> <li><a href="https://github.com/build-trust/ockam/issues/4868">Ockam - unreported <code>project path not found</code> error</a></li> </ul> <p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p> <h2 id="updates-from-the-rust-project"><a class="toclink" href="#updates-from-the-rust-project">Updates from the Rust Project</a></h2> <p>392 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2023-05-29..2023-06-05">merged in the last week</a></p> <ul> <li><a href="https://github.com/rust-lang/rust/pull/112150">support 128-bit atomics on all <code>x86_64</code> Apple targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/107583">support the rustc metadata for AIX</a></li> <li><a href="https://github.com/rust-lang/rust/pull/109432">QNX Neutrino: exponential backoff when fork/spawn needs a retry</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112182">Control Flow Integrity: fix with <code>repr(transparent): transform_ty</code>: unexpected Alias(Proj</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111914">Control Flow Integrity: fix async: <code>transform_ty</code>: unexpected GeneratorWitness(Bi…</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111998">add other workspaces to <code>linkedProjects</code> in <code>rust_analyzer_settings</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/109698">allow limited access to <code>OsStr</code> bytes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112022">check nested obligations during coercion unify in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111076">diagnostics: exclude indirect private deps from trait impl suggest</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112223">don't ICE in new solver when auto traits have associated types</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112128">don't compute inlining status of mono items in advance</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112277">don't require the output from libtest to be valid UTF-8</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112024">don't suggest break through nested items</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112100">don't typecheck recovered method call from suggestion</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112040">enable <code>ConstGoto</code> and <code>SeparateConstSwitch</code> passes by default</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112002">enable <code>ScalarReplacementOfAggregates</code> in optimized builds</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111496">extra context for <code>unreachable_pub</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112178">fix bug where private item with intermediate doc hidden re-export was not inlined</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111878">fix codegen test suite for bare-metal-like targets</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111772">fix linkage for large binaries on mips64 platforms</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112108">fix re-export of doc hidden item inside private item not displayed</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112266">fix type-inference regression</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111872">fix: dedup <code>static_candidates</code> before report</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112155">improve CGU debug printing</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110807">linker: report linker flavors incompatible with the current target</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112183">normalize anon consts in new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112240">only check inlining counter after recursing</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111913">only rewrite valtree-constants to patterns and keep other constants opaque</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112215">only suppress coercion error if type is definitely unsized</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111768">optimize scalar and scalar pair representations loaded from ByRef in llvm</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111980">preserve substs in opaques recorded in typeck results</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111881">refactor and cleanup the leak check, add it to new solver</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112243">remove unneeded <code>Buffer</code> allocations when <code>&amp;mut fmt::Write</code> can be used directly</a></li> <li><a href="https://github.com/rust-lang/rust/pull/103877">replace const eval limit by a lint and add an exponential backoff warning</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111670">require that const param tys implement <code>ConstParamTy</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/109525">rpath is not supported on AIX</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112247">rust-lld: add rpath entry to the correct <code>lib</code> folder</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112272">show note for type ascription on a local binding interpreted as a constant pattern and not a new variable</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111975">stop normalizing so many different prefixes</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111659">suggest <code>Option::as_deref(_mut)</code> on type mismatch in option combinator if it passes typeck</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112057">suggest correct <code>self_ty</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111567">uplift <code>clippy::cast_ref_to_mut</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/111543">uplift <code>clippy::invalid_utf8_in_unchecked</code> lint</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112168">lower <code>unchecked_div</code>/<code>_rem</code> to MIR's <code>BinOp::Div</code>/<code>Rem</code></a></li> <li><a href="https://github.com/rust-lang/miri/pull/2888">miri: Tree Borrows (TB) diagnostics: avoid printing irrelevant events</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2918">miri: TB: improve error messages (distinguish between accesses and reborrows)</a></li> <li><a href="https://github.com/rust-lang/miri/pull/2916">miri: remove rustc-workspace-hack</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110221">greatly decrease the size of <code>rustc_driver.so</code> when debuginfo is enabled</a></li> <li><a href="https://github.com/rust-lang/rust/pull/112263">remove <code>ExtendElement</code>, <code>ExtendWith</code>, <code>extend_with</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112096">remove <code>[T]::zip(_)</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112083">make <code>TrustedStep</code> require <code>Copy</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112069"><code>offset_of!</code>: don't require type to be <code>Sized</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112193">check tuple elements are <code>Sized</code> in <code>offset_of!</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/112154">fix bug in <code>utf16_to_utf8</code> for zero length strings</a></li> <li><a href="https://github.com/rust-lang/hashbrown/pull/432">hashbrown: add support for rkyv serialization and deserialization</a></li> <li><a href="https://github.com/rust-lang/regex/pull/1007">regex compile: make <code>Regex::new(r"(?-u:\B)")</code> fail again</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12231">cargo: add message on reusing previous temporary path on failed cargo installs</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12226">cargo: emit error when users try to use a toolchain via the <code>add</code> or <code>install</code> command</a></li> <li><a href="https://github.com/rust-lang/cargo/pull/12222">cargo: support "default" option for <code>build.jobs</code></a></li> <li><a href="https://github.com/rust-lang/rust/pull/111892">rustdoc: add interaction delays for tooltip popovers</a></li> <li><a href="https://github.com/rust-lang/rust/pull/110945">rustdoc: render visibility on associated types</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10869">clippy: <code>allow_attributes</code>, <code>allow_attributes_without_reason</code>: Ignore attributes from procedural macros</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10866">clippy: <code>manual_let_else</code>: support <code>struct</code> patterns</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10845">clippy: <code>nonminimal_bool</code> fix double not</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10879">clippy: <code>ptr_cast_constness</code>: Only lint on casts which don't change type</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10864">clippy: <code>unnecessary_lazy_eval</code>: don't lint on types with deref impl</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10881">clippy: <code>useless_conversion</code>: pluralize if there are multiple <code>.into_iter()</code> calls</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10848">clippy: <code>wildcard_imports</code> Modules that contain <code>prelude</code> are also allowed</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10705">clippy: add a test that checks for old style test headers</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10860">clippy: add checking for <code>cfg(features = ...)</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10826">clippy: add lints for disallowing usage of <code>to_xx_bytes</code> and <code>from_xx_bytes</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10607">clippy: add spans to <code>clippy.toml</code> error messages</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10821">clippy: emit <code>unnecessary_cast</code> on raw pointers as well</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10855">clippy: fix suggestion on fully qualified syntax</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10853">clippy: ignore fix for <code>from_over_into</code> if the target type contains a <code>Self</code> reference</a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10873">clippy: move <code>redundant_clone</code> to <code>nursery</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10814">clippy: new lint: <code>explicit_into_iter_fn_arg</code></a></li> <li><a href="https://github.com/rust-lang/rust-clippy/pull/10616">clippy: new lint: <code>missing_fields_in_debug</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14965">rust-analyzer: add mandatory panic contexts to all threadpool tasks</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14911">rust-analyzer: allow setting cfgs</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14912">rust-analyzer: don't add --all-targets to runnables for no-std crates</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14938">rust-analyzer: add signature help for tuple patterns and expressions</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14905">rust-analyzer: render niches on hover</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14945">rust-analyzer: fix Assist "replace named generic type with impl trait"</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14972">rust-analyzer: fix <code>unused-mut</code> false positive for <code>Box</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14942">rust-analyzer: fix bug in labeled for loop desugaring</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14961">rust-analyzer: fix drop scopes problems in mir</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14920">rust-analyzer: fix edits for <code>convert_named_struct_to_tuple_struct</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14976">rust-analyzer: fix missing terminator for slice pattern</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14951">rust-analyzer: fix string pattern matching in mir interpreter</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14947">rust-analyzer: fix: add enum, reference, array and slice to <code>render_const_scalar</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14929">rust-analyzer: fix: add render configs for memory layout hovers</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14971">rust-analyzer: fix: consider outer binders when folding captured items' type</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14970">rust-analyzer: fix: detect "bound more than once" error and suppress <code>need-mut</code> for it</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14935">rust-analyzer: fix: don't duplicate sysroot crates in rustc workspace</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14978">rust-analyzer: fix: emit <code>'_</code> for lifetime generics in <code>HirDisplay</code></a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14939">rust-analyzer: fix nav target calculation discarding file ids from differing macro upmapping</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14952">rust-analyzer: make assignment operators right associative</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14888">rust-analyzer: prioritize threads affected by user typing</a></li> <li><a href="https://github.com/rust-lang/rust-analyzer/pull/14950">rust-analyzer: support floating point intrinsics in const eval</a></li> </ul> <h3 id="rust-compiler-performance-triage"><a class="toclink" href="#rust-compiler-performance-triage">Rust Compiler Performance Triage</a></h3> <p>This week was a bunch of improvements, largely driven by cutting std debuginfo in [#110221] and a few MIR or codegen optimizations. No pure regressions landed this week!</p> <p>Triage done by <strong>@simulacrum</strong>. Revision range: <a href="https://perf.rust-lang.org/?start=1221e43bdf413f7c405e9b17ef19d76c88222098&amp;end=adc719d7147d5e2578ce08e0b4504be44650256e&amp;absolute=false&amp;stat=instructions%3Au">1221e43b..adc719d</a></p> <p><strong>Summary</strong>:</p> <p>0 Regressions, 1 Improvements, 12 Mixed; 2 of them in rollups</p> <p>79 artifact comparisons made in total</p> <p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2023-06-06.md">Full report here</a></p> <h3 id="approved-rfcs"><a class="toclink" href="#approved-rfcs"><a href="https://github.com/rust-lang/rfcs/commits/master">Approved RFCs</a></a></h3> <p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These are the RFCs that were approved for implementation this week:</p> <ul> <li><a href="https://github.com/rust-lang/rfcs/pull/3424">eRFC: single-file packages ("cargo script") integration</a></li> </ul> <h3 id="final-comment-period"><a class="toclink" href="#final-comment-period">Final Comment Period</a></h3> <p>Every week, <a href="https://www.rust-lang.org/team.html">the team</a> announces the 'final comment period' for RFCs and key PRs which are reaching a decision. Express your opinions now.</p> <h4 id="rfcs"><a class="toclink" href="#rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></a></h4> <ul> <li><em>No RFCs entered Final Comment Period this week.</em></li> </ul> <h4 id="tracking-issues-prs"><a class="toclink" href="#tracking-issues-prs"><a href="https://github.com/rust-lang/rust/issues?q=is%3Aopen+label%3Afinal-comment-period+sort%3Aupdated-desc">Tracking Issues &amp; PRs</a></a></h4> <ul> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/107645">TAIT defining scope options</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/112233">rustdoc-search: clean up type unification and "unboxing"</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/107619">Specify behavior of HashSet::insert</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111974">Update runtime guarantee for <code>select_nth_unstable</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/109814">Stabilize String::leak</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/98202">Implement <code>TryFrom&lt;&amp;OsStr&gt;</code> for <code>&amp;str</code></a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111081">impl SliceIndex\&lt;str> for (Bound\&lt;usize>, Bound\&lt;usize>)</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/107624">Stabilize <code>const_cstr_methods</code></a></li> <li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/103126">Add cfg(no_128_bit) to core: removes u128/i128 formatting</a></li> <li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/111958">rustdoc: search for slices and arrays by type with <code>[]</code></a></li> </ul> <h3 id="new-and-updated-rfcs"><a class="toclink" href="#new-and-updated-rfcs"><a href="https://github.com/rust-lang/rfcs/pulls">New and Updated RFCs</a></a></h3> <ul> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3442">Fragment Specifiers for Generic Arguments</a></li> <li>[new] <a href="https://github.com/rust-lang/rfcs/pull/3440">Virtually dispatched trait methods</a></li> </ul> <h3 id="call-for-testing"><a class="toclink" href="#call-for-testing"><a href="https://github.com/rust-lang/rfcs/issues?q=label%3Acall-for-testing">Call for Testing</a></a></h3> <p>An important step for RFC implementation is for people to experiment with the implementation and give feedback, especially before stabilization. The following RFCs would benefit from user testing before moving forward:</p> <ul> <li><em>No RFCs issued a call for testing this week.</em></li> </ul> <p>If you are a feature implementer and would like your RFC to appear on the above list, add the new <code>call-for-testing</code> label to your RFC along with a comment providing testing instructions and/or guidance on which aspect(s) of the feature need testing.</p> <h2 id="upcoming-events"><a class="toclink" href="#upcoming-events">Upcoming Events</a></h2> <p>Rusty Events between 2023-06-07 - 2023-07-05 🦀</p> <h3 id="virtual"><a class="toclink" href="#virtual">Virtual</a></h3> <ul> <li>2023-06-07 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309294"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> <li>2023-06-07 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/293616568"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-06-08 | Virtual (Nürnberg, DE) | <a href="https://www.meetup.com/rust-noris/">Rust Nuremberg</a><ul> <li><a href="https://www.meetup.com/rust-noris/events/289732649"><strong>Rust Nürnberg online</strong></a></li> </ul> </li> <li>2023-06-13 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/293014938"><strong>Second Tuesday</strong></a></li> </ul> </li> <li>2023-06-14 | Virtual (Cardiff, UK) | <a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/">Rust and C++ Cardiff</a><ul> <li><a href="https://www.meetup.com/rust-and-c-plus-plus-in-cardiff/events/293882628/"><strong>Building Spin Locks and Channels - Rust Atomics &amp; Locks Bookclub Chapters 4 &amp; 5</strong></a></li> </ul> </li> <li>2023-06-14 | Virtual (Boulder, CO, US) | <a href="https://www.meetup.com/boulder-elixir-rust/">Boulder Elixir and Rust</a><ul> <li><a href="https://www.meetup.com/boulder-elixir-rust/events/293014897"><strong>Monthly Meetup</strong></a></li> </ul> </li> <li>2023-06-15 | Virtual (Stuttgart, DE) | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/293786806"><strong>Rust-Meetup</strong></a></li> </ul> </li> <li>2023-06-19 | Virtual (San Francisco, CA, US) | <a href="https://www.meetup.com/data-science-on-aws/">Data Science on AWS - San Francisco, Global</a><ul> <li><a href="https://www.meetup.com/data-science-on-aws/events/289912375"><strong>Generative AI Parameter Efficient Fine Tuning (PEFT), RLHF + Polars: "Polars, lightning-fast DataFrame library for Rust and Python", presented by Suman Debnath</strong></a></li> </ul> </li> <li>2023-06-20 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/293485510"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-06-20 | Virtual (Washington, DC, US) | <a href="https://www.meetup.com/rustdc/">Rust DC</a><ul> <li><a href="https://www.meetup.com/rustdc/events/jkxsctyfcjbbc/"><strong>Mid-month Rustful</strong></a></li> </ul> </li> <li>2023-06-21 | Virtual (Vancouver, BC, CA) | <a href="https://www.meetup.com/vancouver-rust/">Vancouver Rust</a><ul> <li><a href="https://www.meetup.com/vancouver-rust/events/292763484"><strong>Rust Study/Hack/Hang-out</strong></a></li> </ul> </li> <li>2023-06-22 | Virtual (Karlsruhe, DE) | <a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/">Karlsruhe Functional Programmers Group</a><ul> <li><a href="https://www.meetup.com/the-karlsruhe-functional-programmers-meetup-group/events/293937801"><strong>Stammtisch (gemeinsam mit der C++ UG KA)</strong></a></li> </ul> </li> <li>2023-06-25 | Virtual (Auckland, NZ) | <a href="https://resbaz.auckland.ac.nz/">ResBaz Aotearoa 2023</a><ul> <li><a href="https://www.eventbrite.com/e/research-computing-with-the-rust-programming-language-tickets-637648623197?aff=ebdssbdestsearch"><strong>Research Computing With The Rust Programming Language - Tim McNamara</strong></a></li> </ul> </li> <li>2023-06-27 | Virtual (Dallas, TX, US) | <a href="https://www.meetup.com/dallas-rust/">Dallas Rust</a><ul> <li><a href="https://www.meetup.com/dallas-rust/events/qndgwsyfcjbkc/"><strong>Last Tuesday</strong></a></li> </ul> </li> <li>2023-06-28 | Virtual (Chicago, IL, US) | <a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/">Chicago Healthcare Cloud Technology Community</a><ul> <li><a href="https://www.meetup.com/chicago-healthcare-tech-and-ai/events/293278396"><strong>Rust for Mission-Critical AI: A Journey into Healthcare's Safest Language</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Berlin, DE) | <a href="https://www.meetup.com/opentechschool-berlin/">Berline.rs / OpenTechSchool Berlin</a><ul> <li><a href="https://www.meetup.com/opentechschool-berlin/events/zdrzpsyfckbgb/"><strong>Rust Hack and Learn</strong></a></li> </ul> </li> <li>2023-07-04 | Virtual (Buffalo, NY, US) | <a href="https://www.meetup.com/buffalo-rust-meetup/">Buffalo Rust Meetup</a><ul> <li><a href="https://www.meetup.com/buffalo-rust-meetup/events/lsjbbtyfckbgb/"><strong>Buffalo Rust User Group, First Tuesdays</strong></a></li> </ul> </li> <li>2023-07-05 | Virtual (Indianapolis, IN, US) | <a href="https://www.meetup.com/indyrs/">Indy Rust</a><ul> <li><a href="https://www.meetup.com/indyrs/events/293309295"><strong>Indy.rs - with Social Distancing</strong></a></li> </ul> </li> </ul> <h3 id="asia"><a class="toclink" href="#asia">Asia</a></h3> <ul> <li>2023-06-10 | Kuala Lumpur, MY | <a href="https://t.me/golangmalaysia">GoLang Malaysia</a><ul> <li><a href="https://forms.gle/2fvbCG77HXCkWLfe6"><strong>Rust Workshop/Hack and Learn Malaysia June 2023</strong></a> | <a href="https://t.me/+dF46Fly4A_BjOTJl">Event updates Telegram</a> | <a href="https://t.me/golangmalaysia">Event group chat</a></li> </ul> </li> <li>2023-06-10 | Pune, IN | <a href="https://www.meetup.com/rust-pune">Rust Pune</a><ul> <li><a href="https://www.meetup.com/rust-pune/events/293936676/"><strong>#1 - Meet &amp; Greet</strong></a></li> </ul> </li> </ul> <h3 id="europe"><a class="toclink" href="#europe">Europe</a></h3> <ul> <li>2023-06-08 | Aarhus, DK | <a href="https://www.meetup.com/rust-aarhus/">Rust Aarhus</a><ul> <li><a href="https://www.meetup.com/rust-aarhus/events/292865970/"><strong>Rust Aarhus meetup #2 sponsored by BRØLSTÆRK</strong></a></li> </ul> </li> <li>2023-06-08 | Paris, FR | <a href="https://www.eventbrite.fr/o/stockly-42274765293">Stockly.ai</a><ul> <li><a href="https://www.eventbrite.fr/e/rust-meetup-in-paris-hosted-by-stockly-tickets-630742055467"><strong>Rust Meetup in Paris - hosted by Stockly</strong></a></li> </ul> </li> <li>2023-06-08 | Zurich, CH | <a href="https://www.meetup.com/de-DE/rust-zurich/">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/de-DE/rust-zurich/events/293322792/"><strong>Unsafe, Miri, SIMD - June Meetup</strong></a></li> </ul> </li> <li>2023-06-16 | Stuttgart, DE | <a href="https://www.meetup.com/rust-community-stuttgart/">Rust Community Stuttgart</a><ul> <li><a href="https://www.meetup.com/rust-community-stuttgart/events/pdhvctyfcjbvb/"><strong>OnSite Meeting</strong></a></li> </ul> </li> <li>2023-06-22 | Vienna, AT | <a href="https://www.meetup.com/papers-we-love-vienna/">Papers We Love Vienna</a><ul> <li><a href="https://www.meetup.com/papers-we-love-vienna/events/293974147"><strong>June: Data and Ownership in Rust</strong></a></li> </ul> </li> <li>2023-06-28 | Bratislava, SK | <a href="https://www.meetup.com/bratislava-rust-meetup-group/">Bratislava Rust Meetup Group</a><ul> <li><a href="https://www.meetup.com/bratislava-rust-meetup-group/events/293732916"><strong>Rust Meetup by Sonalake</strong></a></li> </ul> </li> <li>2023-07-03 | Zurich, CH | <a href="https://www.meetup.com/rust-zurich/">Rust Zurich</a><ul> <li><a href="https://www.meetup.com/rust-zurich/events/293322905"><strong>Rust in the Linux Kernel - July Meetup</strong></a></li> </ul> </li> </ul> <h3 id="north-america"><a class="toclink" href="#north-america">North America</a></h3> <ul> <li>2023-06-07 | Austin, TX, US | <a href="https://www.meetup.com/rust-atx/">Rust ATX</a><ul> <li><a href="https://www.meetup.com/rust-atx/events/293730065"><strong>Rust Lunch</strong></a></li> </ul> </li> <li>2023-06-08 | Lehi, UT, US | <a href="https://www.meetup.com/utah-rust/events/">Utah Rust</a><ul> <li><a href="https://www.meetup.com/utah-rust/events/293849386/"><strong>Rust 1.70.0, Module System Deep Dive &amp; Pizza</strong></a></li> </ul> </li> <li>2023-06-08 | Pasadena, CA, US | <a href="https://www.meetup.com/thursday-go/">Pasadena Thursday Go/Rust</a><ul> <li><a href="https://www.meetup.com/thursday-go/events/293927644"><strong>Weekly leetcode group</strong></a></li> </ul> </li> <li>2023-06-10 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfcjbnb/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-15 | Mountain View, CA, US | <a href="https://www.meetup.com/mv-rust-meetup/">Mountain View Rust Meetup</a><ul> <li><a href="https://www.meetup.com/mv-rust-meetup/events/294032616"><strong>Rust Meetup at Hacker Dojo</strong></a></li> </ul> </li> <li>2023-06-17 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/293825860"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-06-20 | San Francisco, CA, US | <a href="https://www.meetup.com/san-francisco-rust-study-group/">San Francisco Rust Study Group</a><ul> <li><a href="https://www.meetup.com/san-francisco-rust-study-group/events/293118809"><strong>Rust Hacking in Person</strong></a></li> </ul> </li> <li>2023-06-24 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfcjbgc/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> <li>2023-07-01 | San Jose, CA, US | <a href="https://www.meetup.com/rust-breakfast-learn/">Rust Breakfast &amp; Learn</a><ul> <li><a href="https://www.meetup.com/rust-breakfast-learn/events/jnmgftyfckbcb/"><strong>Rust: breakfast &amp; learn</strong></a></li> </ul> </li> </ul> <p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get it mentioned here. Please remember to add a link to the event too. Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p> <h2 id="jobs"><a class="toclink" href="#jobs">Jobs</a></h2> <!-- Rust Jobs: TWiR has stopped featuring individual job postings. You can read more about this change here: https://github.com/rust-lang/this-week-in-rust/issues/3412 --> <p>Please see the latest <a href="https://www.reddit.com/r/rust/comments/13yx1dn/official_rrust_whos_hiring_thread_for_jobseekers/">Who's Hiring thread on r/rust</a></p> <h1 id="quote-of-the-week"><a class="toclink" href="#quote-of-the-week">Quote of the Week</a></h1> <blockquote> <p>(...) Rust developers usually are not just looking for "less buggy". </p> <p>They are addicted to the clicky sound of legos.</p> </blockquote> <p>– <a href="https://fosstodon.org/@Amirography/110486392650489999">Amirography on fosstodon</a></p> <p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1434">Jan Riemer</a> for the suggestion!</p> <p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p> <p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, <a href="https://github.com/cdmistman">cdmistman</a>, <a href="https://github.com/ericseppanen">ericseppanen</a>, <a href="https://github.com/extrawurst">extrawurst</a>, <a href="https://github.com/andrewpollack">andrewpollack</a>, <a href="https://github.com/U007D">U007D</a>, <a href="https://github.com/kolharsam">kolharsam</a>, <a href="https://github.com/joelmarcey">joelmarcey</a>, <a href="https://github.com/mariannegoldin">mariannegoldin</a>, <a href="https://github.com/bennyvasquez">bennyvasquez</a>.</em></p> <p><em>Email list hosting is sponsored by <a href="https://foundation.rust-lang.org/">The Rust Foundation</a></em></p> <p><small><a href="https://www.reddit.com/r/rust/comments/143vynq/this_week_in_rust_498/">Discuss on r/rust</a></small></p>