emacs/var/elfeed/db/data/16/16ecf7b445ec25e2a57b95a610159613b31b297f
2022-01-03 12:49:32 -06:00

180 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
<a href="http://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? Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> 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>.
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">Updates from Rust Community</h2>
<h3 id="official">Official</h3>
<ul>
<li><a href="https://blog.rust-lang.org/2021/09/09/Rust-1.55.0.html">Announcing Rust 1.55.0</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=pLdCcolQsxA">RustConf 2021 Video Stream</a></li>
</ul>
<h3 id="newsletters">Newsletters</h3>
<h3 id="projecttooling-updates">Project/Tooling Updates</h3>
<ul>
<li><a href="https://sycamore-rs.netlify.app/news/announcing-v0.6.0">Announcing Sycamore v0.6.0: Faster and faster with plenty of fixes and features…</a></li>
<li><a href="https://sixtyfps.io/thisweek/2021-09-13.html">SixtyFPS (GUI crate) weekly report 12th of September</a></li>
<li><a href="https://datafuselabs.github.io/weekly/2021-09-15-databend-weekly/">This week in Databend #7</a></li>
<li><a href="https://leshow.github.io/post/dhcproto/">Introducing DHCProto</a></li>
<li><a href="https://intellij-rust.github.io/2021/09/13/changelog-155.html">IntelliJ Rust Changelog #155</a></li>
<li><a href="https://rust-analyzer.github.io/thisweek/2021/09/13/changelog-94.html">Rust Analyzer Changelog #94</a></li>
<li><a href="https://johanhelsing.studio/posts/introducing-matchbox">Introducing Matchbox</a></li>
</ul>
<h3 id="observationsthoughts">Observations/Thoughts</h3>
<ul>
<li><a href="https://blog.cloudflare.com/building-cloudflare-images-in-rust-and-cloudflare-workers/">Building Cloudflare Images in Rust and Cloudflare Workers</a></li>
<li><a href="https://zenoh.io/blog/2021-07-13-zenoh-performance-async/">Zenoh performance: a stroll in Rust async wonderland</a></li>
<li>[audio] <a href="https://rustgamedev.com/episodes/interview-with-remco-and-basz">Rust Game Dev Podcast - Interview with Remco and Basz</a></li>
</ul>
<h3 id="rust-walkthroughs">Rust Walkthroughs</h3>
<ul>
<li><a href="https://kerkour.com/blog/shellcode-in-rust/">How to Write and Compile Shellcode in Rust</a></li>
<li><a href="https://kerkour.com/blog/rust-http-long-polling/">How to implement HTTP Long Polling in Rust</a></li>
<li><a href="https://tweedegolf.nl/blog/61/an-experimental-diesel-based-crud-for-rocket">An experimental Diesel-based CRUD for Rocket</a></li>
<li><a href="https://dev.to/uggla/rust-cli-example-2-ferris-hunts-errors-116b">Rust cli example #2: Ferris hunts errors</a></li>
<li><a href="https://blog.knoldus.com/test-cases-in-rust-are-simple-to-write/">Test Cases in Rust are simple to write</a></li>
<li><a href="https://vincepergolizzi.com/programming/2021/09/08/full-stack-sum-types-with-typescript-rust-and-postgres.html">Full-stack sum types with TypeScript, Rust and Postgres</a></li>
<li><a href="https://dev.to/rogertorres/rust-tokio-stack-overview-runtime-9fh">Tokio stack overview: Runtime</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=iFdh4sPC5Tg">Rust for Java Developers - Introduction [Beginners]</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=S1NSsHZs6hI">FLTK Rust: a new basics tutorial</a></li>
<li>[video] <a href="https://www.youtube.com/watch?v=VlSkZYBeK8Q">Rust for Linux</a></li>
</ul>
<h3 id="miscellaneous">Miscellaneous</h3>
<ul>
<li><a href="https://blog.cloudflare.com/workers-rust-sdk/">Native Rust support on Cloudflare Workers</a></li>
<li><a href="https://portanetwork.medium.com/launching-porta-ecosystem-grants-to-grow-its-network-7f82262d4260">Launching Porta Ecosystem Grants</a></li>
<li><a href="https://blog.yossarian.net/2021/09/14/LLVM-internals-part-3-from-bitcode-to-IR">LLVM internals, part 3: from bitcode to IR</a></li>
</ul>
<h2 id="crate-of-the-week">Crate of the Week</h2>
<p>This week's crate is <a href="https://github.com/uazu/qcell">qcell</a>, with a type that works like a compile-time <code>RefCell</code>.</p>
<p>Thanks to <a href="https://users.rust-lang.org/t/crate-of-the-week/2704/952">Soni L.</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">Call for Participation</h2>
<p>Always wanted to contribute to open-source projects but didn't 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/getsynth/synth/issues/145">getsynth/synth - Allow unbounded numbers</a></li>
<li><a href="https://survey.opensuse.org/">OpenSUSE Rust Usage Survey</a></li>
<li><a href="https://rustfest.world/say-hello-rustfest-global-2021">RustFest CFP is open</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-rust-core">Updates from Rust Core</h2>
<p>278 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-09-06..2021-09-13">merged in the last week</a></p>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/88733">fix ICE for functions with more than 65535 arguments</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88336">detect stricter constraints on gats where clauses in impls vs trait</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/85200">ignore derived <code>Clone</code> and <code>Debug</code> implementations during dead code analysis</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88147">fix non-capturing closure return type coercion</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88578">suggest items be borrowed in <code>for i in items[x..]</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88757">suggest wrapping expr in parentheses on invalid unary negation</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88209">improve error message when <code>_</code> is used for in/inout <code>asm</code> operands</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/87441">emit suggestion when passing byte literal to <code>format!</code> macro</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/87915">use smaller spans for some structured suggestions</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88214">use more correct span data in <code>for</code> loop desugaring</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88771">use <code>FxHashSet</code> instead of <code>Vec</code> for well formed tys</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/83214"><code>mmap</code> the incremental data instead of reading it</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/88448"><code>BTreeMap</code>/<code>BTreeSet::from_iter</code>: use bulk building to improve the performance</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/86165">add <code>proc_macro::Span::</code>{<code>before</code>, <code>after</code>}</a></li>
<li><a href="https://github.com/rust-lang/hashbrown/pull/293">hashbrown: <code>insert_unique_unchecked</code> operation</a></li>
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7610">clippy: add new lint <code>iter_not_returning_iterator</code></a></li>
</ul>
<h3 id="rust-compiler-performance-triage">Rust Compiler Performance Triage</h3>
<p>Fairly busy week, with some large improvements on several benchmarks. Several
larger rollups landed, in part due to recovery from a temporary CI outage,
and continued CI trouble since then. This is likely the cause for the
somewhat unusual presence of rollups in our results.</p>
<p>Triage done by <strong>@simulacrum</strong>.
Revision range: <a href="https://perf.rust-lang.org/?start=69c4aa2901ffadf69deaf91b2f90604bcbc2eb36&amp;end=9f85cd6f2ab2769c16e89dcdddb3e11d9736b351&amp;absolute=false&amp;stat=instructions%3Au">69c4aa290..9f85cd6</a></p>
<p>2 Regressions, 2 Improvements, 4 Mixed; 2 of them in rollups</p>
<p>31 comparisons made in total</p>
<p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-09-14.md">Full report here</a>.</p>
<h3 id="approved-rfcs">Approved RFCs</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/3119">Rust-lang crate ownership policy</a></li>
<li><a href="https://github.com/rust-lang/rfcs/pull/3123">Scrape code examples from examples/ directory for Rustdoc</a></li>
</ul>
<h3 id="final-comment-period">Final Comment Period</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>
<h3 id="rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></h3>
<p><em>No RFCs are currently in the final comment period.</em></p>
<h3 id="tracking-issues-prs"><a href="https://github.com/rust-lang/rust/labels/final-comment-period">Tracking Issues &amp; PRs</a></h3>
<ul>
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/88028">Disable unused_must_use for statically known bools</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/87220">Make #[derive(A, B, ...)] cfg-eval its input only for A, B, ... and stabilize feature(macro_attributes_in_derive_output)</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/84267">Make <code>*const (), *mut ()</code> okay for FFI</a></li>
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/68537">Tracking issue Iterator map_while</a></li>
</ul>
<h3 id="new-rfcs">New RFCs</h3>
<p><em>No new RFCs were proposed this week.</em></p>
<h2 id="upcoming-events">Upcoming Events</h2>
<h3 id="online">Online</h3>
<ul>
<li><a href="https://www.meetup.com/Vancouver-Rust/events/zkqvjsyccmbtb/">September 15, 2021, Vancouver, BC, CA - Considering Rust - Vancouver Rust</a></li>
<li><a href="https://berline.rs/">September 16, 2021, Berlin, DE - Rust Hack and Learn - Berline.rs</a></li>
<li><a href="https://rust.tokyo/">September 18, 2021, Tokyo, JP - Rust.Tokyo 2021</a></li>
<li><a href="https://www.meetup.com/Dallas-Rust/events/jqxqwryccmblc/">September 28, 2021, Dallas, TX, US - Last Tuesday - Dallas Rust</a></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>
<h1 id="rust-jobs">Rust Jobs</h1>
<p><strong>Gouach</strong></p>
<ul>
<li><a href="https://gouach.welcomekit.co/jobs/senior-c-software-engineer_bordeaux">Senior Embedded Rust Software Engineer (Bordeaux, FR)</a></li>
</ul>
<p><strong>Indeed</strong></p>
<ul>
<li><a href="https://www.indeed.jobs/jobs/staff-backend-rust-engineer-27316/">Staff Backend Rust Engineer (Remote)</a></li>
</ul>
<p><strong>Enso</strong></p>
<ul>
<li><a href="https://github.com/enso-org/hiring/blob/main/people/senior-rust-developer.md">Senior Rust Developer (Remote)</a></li>
</ul>
<p><strong>SmartThings</strong></p>
<ul>
<li><a href="https://smartthings.pinpointhq.com/jobs/22298?utm_medium=internal_referral&amp;utm_source=pinpoint&amp;utm_term=jkypj">Senior Software Engineer (Minneapolis, MN, US)</a></li>
</ul>
<p><strong>DEMV Systems</strong></p>
<ul>
<li><a href="https://arbeitnow.com/view/php-rust-backend-entwickler-in-hamburg-oder-remote-mwd-demv-systems-gmbh-480199">PHP / Rust Backend Entwickler in (Hamburg, DE or Remote) (m/w/d) </a></li>
</ul>
<p><strong>Kollider</strong></p>
<ul>
<li><a href="https://kollider.homerun.co/junior-backend-engineer/en">Junior Backend Engineer (Remote)</a></li>
</ul>
<p><strong>Polar Sync</strong></p>
<ul>
<li><a href="https://polarsync.breezy.hr/p/0c1d3630d39d">Principal/Senior Software Engineer - Rust/C++</a></li>
</ul>
<p><strong>SecureDNA</strong></p>
<ul>
<li><a href="https://www.securedna.org/jobs">Software Development Manager, Rust &amp; Python (Remote)</a></li>
</ul>
<p><strong>Kraken</strong></p>
<ul>
<li><a href="https://jobs.lever.co/kraken/53def500-b146-40da-89a8-98adfd7e84e4">Engineering Manager - Core Backend (Remote)</a></li>
<li><a href="https://jobs.lever.co/kraken/4019a818-4a7b-46ef-9225-c53c7a7f238c">Backend Engineer - Rust - Core Backend (Remote)</a></li>
<li><a href="https://jobs.lever.co/kraken/fe1e07f4-6d7c-4f65-9a8f-27cf3b3fd2b1">Backend Engineer, Kraken Futures - Rust (Remote)</a></li>
<li><a href="https://jobs.lever.co/kraken/2863623f-13c9-4f50-992d-7c25736a60f9">Senior Banking Engineer - Rust (Remote)</a></li>
</ul>
<p><strong>Parity Technologies</strong></p>
<ul>
<li><a href="https://www.parity.io/jobs/">Multiple Rust Engineering Positions Available (Remote)</a></li>
</ul>
<p><em>Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> to get your job offers listed here!</em></p>
<h1 id="quote-of-the-week">Quote of the Week</h1>
<blockquote>
<p>Edition!</p>
</blockquote>
<p> <a href="https://www.youtube.com/watch?v=q0aNduqb2Ro">Niko and Daphne Matsakis on YouTube</a></p>
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1102">mark-i-m</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>, and <a href="https://github.com/cdmistman">cdmistman</a>.</em></p>
<p><small><a href="https://www.reddit.com/r/rust/comments/pp4s9j/this_week_in_rust_408/">Discuss on r/rust</a></small></p>