From ff3ab60b7f11a6e3dd58374866549fd67f8b1f94 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 14:46:19 -0400 Subject: [PATCH 01/11] blog post with september goals update --- posts/2024-09-19-Project-Goals-Sep-Update.md | 95 ++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 posts/2024-09-19-Project-Goals-Sep-Update.md diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md new file mode 100644 index 000000000..18d0ed1bd --- /dev/null +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -0,0 +1,95 @@ +--- +layout: post +title: "September Project Goals Update" +author: Niko Matsakis +team: Leadership Council +--- + +The Rust project is currently working towards a [slate of 26 project goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), with 3 of them designed as [Flagship Goals](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html#flagship-goals). This post provides selected updates on our progress towards these goals (or, in some cases, lack thereof). The full details for any particular goal are available in its associated [tracking issue on the rust-project-goals repository](https://github.com/rust-lang/rust-project-goals/milestone/2). + +## Flagship goals + +### Prepare Rust 2024 Edition (tracked in [#117]) + +[#117]: https://github.com/rust-lang/rust-project-goals/issues/117 + +The Rust 2024 edition is on track to be stabilized on Nightly by Nov 28 and to reach stable as part of Rust v1.85, to be released Feb 20, 2025. + +Over the last month, all the "lang team priority items" have landed and are fully ready for release, including migrations and chapters in the [Nightly version of the edition guide](https://doc.rust-lang.org/nightly/edition-guide/rust-2024/index.html): + +* Changes to support new `impl Trait` defaults ([#117587], [#123432]; [read more here](https://blog.rust-lang.org/2024/09/05/impl-trait-capture-rules.html)) +* Changes to support generators ([#123904][]). +* Changes to support stabilizing the "never type (`!`) ([#123748][]). + +[#117587]: https://github.com/rust-lang/rust/issues/117587 +[#123432]: https://github.com/rust-lang/rust/issues/123432 +[#123904]: https://github.com/rust-lang/rust/issues/123904 +[#123748]: https://github.com/rust-lang/rust/issues/123748 + +Overall: + +* [13 items](https://github.com/rust-lang/rust/issues?q=label%3AS-tracking-ready-for-edition+is%3Aclosed) are fully read ready for Rust 2024. +* [10 items](https://github.com/rust-lang/rust/issues?q=label%3AA-edition-2024%20label%3AC-tracking-issue%20-label%3AS-tracking-ready-for-edition%2CS-tracking-impl-incomplete%20-label%3At-libs%20) are fully implemented but still require documentation. +* [6 items](https://github.com/rust-lang/rust/issues?q=label%3AA-edition-2024%20label%3AC-tracking-issue%20-label%3AS-tracking-ready-for-edition%20label%3AS-tracking-impl-incomplete%20-label%3At-libs%20) still need implementation work. + +Keep in mind, there will be items that are currently tracked for the edition that will not make it. That's OK, and we still plan to ship the edition on time and without those items. + +### Async Rust Parity (tracked in [#105]) + +[#105]: https://github.com/rust-lang/rust-project-goals/issues/105 +[#129629]: https://github.com/rust-lang/rust/issues/129629 + +We are generally on track with our marquee features: (1) Support for *async closures* is available on Nightly and the lang team arrived at a tentative consensus to keep the existing syntax (written rationale and formal decision are in progress). We issued a [call for testing](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html) as well which has so far uncovered no issues. (2) Partial support for *Return Type Notation* is available on Nightly with the remainder under review. In addition, *dynamic dispatch for async functions* and *experimental async drop work* both made implementation progress. Async WG reorganization has made no progress. [Read the full details on the tracking issue.](https://github.com/rust-lang/rust-project-goals/issues/105#issuecomment-2361474377) + + +### Stabilize features needed by Rust for Linux (tracked in [#116]) + +[#116]: https://github.com/rust-lang/rust-project-goals/issues/116 + +We have stabilized [extended `offset_of` syntax](https://github.com/rust-lang/rust/pull/128284) and [agreed to stabilize Pointers to Statics in Constants](https://github.com/rust-lang/rust/issues/128183). Credit to @dingxiangfei2009 for driving these forward. 💜 + +Implementation work proceeds for [arbitrary self types v2](https://github.com/rust-lang/rust/issues/44874#issuecomment-2314739657), [derive smart](https://github.com/rust-lang/rust/pull/125048) [pointer](https://github.com/rust-lang/rust/pull/129467), and [sanitizer support](https://github.com/rust-lang/rust/pull/128348). + +RFL on Rust CI is implemented but still waiting on documented policy. The first breakage was detected (and fixed) in [#129416](https://github.com/rust-lang/rust/pull/129416). This is the mechanism working as intended, although it is also clear that we need to better what to do when breakage occurs. + +## Selected updates + +### Begin resolving cargo-semver-checks blockers for merging into cargo (#104) + +*@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the removal of non-nightly, non-underscore-prefixed features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates.* + +### Expose experimental LLVM features for automatic differentiation and GPU offloading (#109) + +*ZuseZ4 has been focusing on automatic differentiation in Rust, with their first two upstreaming PRs for the rustc frontend and backend merged, and a third PR covering changes to rustc_codegen_llvm currently under review. They are especially proud of getting a detailed LLVM-IR reproducer from a Rust developer for an Enzyme core issue, which will help with debugging. On the GPU side, ZuseZ4 is taking advantage of recent LLVM updates to rustc that enable more GPU/offloading work. ZuseZ4 also had a talk about "When unsafe code is slow - Automatic Differentiation in Rust" accepted for the upcoming LLVM dev meeting, where they'll present benchmarks and analysis comparing Rust-Enzyme to the C++ Enzyme frontend.* + +### Extend pubgrub to match cargo's dependency resolution (#110) + +*@Eh2406 has achieved the milestone of having the new PubGrub resolver and the existing Cargo resolver accept each other's solutions for all crate versions on crates.io, which involved fixing many bugs related to optional dependencies. Significant progress has also been made in speeding up the resolution process, with over 30% improvements to the average performance of the new resolver, and important changes to allow the existing Cargo resolver to run in parallel. They have also addressed some corner cases where the existing resolver would not accept certain records, and added a check for cyclic dependencies. The latest updates focus on further performance improvements, with the new resolver now taking around 3 hours to process all of crates.io, down from 4.3 hours previously, and a 27% improvement in verifying lock files for non-pathological cases.* + +### Optimizing Clippy & linting + +*@blyxyas has been working on improving Clippy, the Rust linting tool, with a focus on performance. They have completed a medium-sized objective to use ControlFlow in more places, and have integrated a performance-related issue into their project. A performance-focused PR has also been merged, and they are remaking their benchmarking tool (benchv2) to help with ongoing efforts. The main focus has been on resolving rust-lang/rust#125116, which is now all green after some work. Going forward, they are working on moving the declare_clippy_lint macro to a macro_rules implementation, and have one open proposal-level issue with the performance project label. There are currently no blockers to their work.* + +## Completed goals + +The following goals have been completed: + +* [Implement "merged doctests" to save doctest time](https://github.com/rust-lang/rust-project-goals/issues/103) + +## Stalled or orphaned goals + +Several goals appear to have stalled or not received updates: + +* [Associated type position impl trait](https://github.com/rust-lang/rust-project-goals/issues/103) made significant progress but was not able to reach a stabilizable state before its owner had to scale back their activity. We expect to revisit this in 2025H1. +* [Make Rustdoc Search easier to learn](https://github.com/rust-lang/rust-project-goals/issues/112) has had no updates. +* [Use annotate-snippets for rustc diagnostic output](https://github.com/rust-lang/rust-project-goals/issues/123) has had no updates. + +One goal is still waiting for an owner: + +* [User-wide build cache](https://github.com/rust-lang/rust-project-goals/issues/124) + +## Conclusion + +This is a brief summary of the progress towards our a subset of the 2024 project goals. There is a [lot more information available on the website](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), including the motivation for each goal, as well as detailed status updates. If you'd like more detail, please do check it out! You can also subscribe to individual tracking issues (or the entire rust-project-goals repo) to get regular updates. + +The current set of goals target the second half of 2024 (2024H2). Next month we also expect to begin soliciting goals for the first half of 2025 (2025H1). \ No newline at end of file From bbc77ab5c0d89a548a6f586814ae88b69ef097ef Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 14:58:02 -0400 Subject: [PATCH 02/11] Update posts/2024-09-19-Project-Goals-Sep-Update.md Co-authored-by: Predrag Gruevski <2348618+obi1kenobi@users.noreply.github.com> --- posts/2024-09-19-Project-Goals-Sep-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index 18d0ed1bd..a6432110e 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -56,7 +56,7 @@ RFL on Rust CI is implemented but still waiting on documented policy. The first ### Begin resolving cargo-semver-checks blockers for merging into cargo (#104) -*@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the removal of non-nightly, non-underscore-prefixed features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates.* +*@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the accidental removal of features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates.* ### Expose experimental LLVM features for automatic differentiation and GPU offloading (#109) From 343c2dca9e3d608d293162b369f3a8df3a2de6a4 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 14:58:42 -0400 Subject: [PATCH 03/11] Update posts/2024-09-19-Project-Goals-Sep-Update.md --- posts/2024-09-19-Project-Goals-Sep-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index a6432110e..6bc822acc 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -50,7 +50,7 @@ We have stabilized [extended `offset_of` syntax](https://github.com/rust-lang/ru Implementation work proceeds for [arbitrary self types v2](https://github.com/rust-lang/rust/issues/44874#issuecomment-2314739657), [derive smart](https://github.com/rust-lang/rust/pull/125048) [pointer](https://github.com/rust-lang/rust/pull/129467), and [sanitizer support](https://github.com/rust-lang/rust/pull/128348). -RFL on Rust CI is implemented but still waiting on documented policy. The first breakage was detected (and fixed) in [#129416](https://github.com/rust-lang/rust/pull/129416). This is the mechanism working as intended, although it is also clear that we need to better what to do when breakage occurs. +RFL on Rust CI is implemented but still waiting on documented policy. The first breakage was detected (and fixed) in [#129416](https://github.com/rust-lang/rust/pull/129416). This is the mechanism working as intended, although it would also be useful to better define what to do when breakage occurs. ## Selected updates From 228a3c3d794a77c89a4ce438c788908f55615fc7 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 15:01:03 -0400 Subject: [PATCH 04/11] add links --- posts/2024-09-19-Project-Goals-Sep-Update.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index 6bc822acc..1fcfa3f8f 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -54,15 +54,21 @@ RFL on Rust CI is implemented but still waiting on documented policy. The first ## Selected updates -### Begin resolving cargo-semver-checks blockers for merging into cargo (#104) +### Begin resolving cargo-semver-checks blockers for merging into cargo (tracked in [#104]) + +[#104]: https://github.com/rust-lang/rust-project-goals/issues/104 *@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the accidental removal of features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates.* -### Expose experimental LLVM features for automatic differentiation and GPU offloading (#109) +### Expose experimental LLVM features for automatic differentiation and GPU offloading (tracked in [#109]) + +[#109]: https://github.com/rust-lang/rust-project-goals/issues/104 *ZuseZ4 has been focusing on automatic differentiation in Rust, with their first two upstreaming PRs for the rustc frontend and backend merged, and a third PR covering changes to rustc_codegen_llvm currently under review. They are especially proud of getting a detailed LLVM-IR reproducer from a Rust developer for an Enzyme core issue, which will help with debugging. On the GPU side, ZuseZ4 is taking advantage of recent LLVM updates to rustc that enable more GPU/offloading work. ZuseZ4 also had a talk about "When unsafe code is slow - Automatic Differentiation in Rust" accepted for the upcoming LLVM dev meeting, where they'll present benchmarks and analysis comparing Rust-Enzyme to the C++ Enzyme frontend.* -### Extend pubgrub to match cargo's dependency resolution (#110) +### Extend pubgrub to match cargo's dependency resolution (tracked in [#110]) + +[#110]: https://github.com/rust-lang/rust-project-goals/issues/110 *@Eh2406 has achieved the milestone of having the new PubGrub resolver and the existing Cargo resolver accept each other's solutions for all crate versions on crates.io, which involved fixing many bugs related to optional dependencies. Significant progress has also been made in speeding up the resolution process, with over 30% improvements to the average performance of the new resolver, and important changes to allow the existing Cargo resolver to run in parallel. They have also addressed some corner cases where the existing resolver would not accept certain records, and added a check for cyclic dependencies. The latest updates focus on further performance improvements, with the new resolver now taking around 3 hours to process all of crates.io, down from 4.3 hours previously, and a 27% improvement in verifying lock files for non-pathological cases.* From b231aeebd2bcde2813c7e8dd4b4a1f3e41223487 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 15:03:11 -0400 Subject: [PATCH 05/11] restructure async paragraph --- posts/2024-09-19-Project-Goals-Sep-Update.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index 1fcfa3f8f..e921d43be 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -39,8 +39,14 @@ Keep in mind, there will be items that are currently tracked for the edition tha [#105]: https://github.com/rust-lang/rust-project-goals/issues/105 [#129629]: https://github.com/rust-lang/rust/issues/129629 -We are generally on track with our marquee features: (1) Support for *async closures* is available on Nightly and the lang team arrived at a tentative consensus to keep the existing syntax (written rationale and formal decision are in progress). We issued a [call for testing](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html) as well which has so far uncovered no issues. (2) Partial support for *Return Type Notation* is available on Nightly with the remainder under review. In addition, *dynamic dispatch for async functions* and *experimental async drop work* both made implementation progress. Async WG reorganization has made no progress. [Read the full details on the tracking issue.](https://github.com/rust-lang/rust-project-goals/issues/105#issuecomment-2361474377) +We are generally on track with our marquee features: +1. Support for *async closures* is available on Nightly and the lang team arrived at a tentative consensus to keep the existing syntax (written rationale and formal decision are in progress). We issued a [call for testing](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html) as well which has so far uncovered no issues. +2. Partial support for *Return Type Notation* is available on Nightly with the remainder under review. + +In addition, *dynamic dispatch for async functions* and *experimental async drop work* both made implementation progress. Async WG reorganization has made no progress. + +[Read the full details on the tracking issue.](https://github.com/rust-lang/rust-project-goals/issues/105#issuecomment-2361474377) ### Stabilize features needed by Rust for Linux (tracked in [#116]) From b6d9d92e22525933be1df2f8fb1314178f75f29e Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Thu, 19 Sep 2024 15:03:59 -0400 Subject: [PATCH 06/11] capitalize consistently --- posts/2024-09-19-Project-Goals-Sep-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index e921d43be..de2c8b44e 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -42,7 +42,7 @@ Keep in mind, there will be items that are currently tracked for the edition tha We are generally on track with our marquee features: 1. Support for *async closures* is available on Nightly and the lang team arrived at a tentative consensus to keep the existing syntax (written rationale and formal decision are in progress). We issued a [call for testing](https://blog.rust-lang.org/inside-rust/2024/08/09/async-closures-call-for-testing.html) as well which has so far uncovered no issues. -2. Partial support for *Return Type Notation* is available on Nightly with the remainder under review. +2. Partial support for *return-type notation* is available on Nightly with the remainder under review. In addition, *dynamic dispatch for async functions* and *experimental async drop work* both made implementation progress. Async WG reorganization has made no progress. From 1074e04361bcafa67d9dbb4a712c6017dd33f526 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 20 Sep 2024 13:11:49 -0400 Subject: [PATCH 07/11] Update posts/2024-09-19-Project-Goals-Sep-Update.md Co-authored-by: Jack Huey <31162821+jackh726@users.noreply.github.com> --- posts/2024-09-19-Project-Goals-Sep-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index de2c8b44e..bcddd4409 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -28,7 +28,7 @@ Over the last month, all the "lang team priority items" have landed and are full Overall: -* [13 items](https://github.com/rust-lang/rust/issues?q=label%3AS-tracking-ready-for-edition+is%3Aclosed) are fully read ready for Rust 2024. +* [13 items](https://github.com/rust-lang/rust/issues?q=label%3AS-tracking-ready-for-edition+is%3Aclosed) are fully ready for Rust 2024. * [10 items](https://github.com/rust-lang/rust/issues?q=label%3AA-edition-2024%20label%3AC-tracking-issue%20-label%3AS-tracking-ready-for-edition%2CS-tracking-impl-incomplete%20-label%3At-libs%20) are fully implemented but still require documentation. * [6 items](https://github.com/rust-lang/rust/issues?q=label%3AA-edition-2024%20label%3AC-tracking-issue%20-label%3AS-tracking-ready-for-edition%20label%3AS-tracking-impl-incomplete%20-label%3At-libs%20) still need implementation work. From ffeafdba8069417af94ada29e131c501479401f7 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 20 Sep 2024 13:13:03 -0400 Subject: [PATCH 08/11] remove italics --- posts/2024-09-19-Project-Goals-Sep-Update.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-19-Project-Goals-Sep-Update.md index bcddd4409..fb5e4b002 100644 --- a/posts/2024-09-19-Project-Goals-Sep-Update.md +++ b/posts/2024-09-19-Project-Goals-Sep-Update.md @@ -64,23 +64,23 @@ RFL on Rust CI is implemented but still waiting on documented policy. The first [#104]: https://github.com/rust-lang/rust-project-goals/issues/104 -*@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the accidental removal of features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates.* +@obi1kenobi has been working on laying the groundwork to enable manifest linting in their project. They have set up the ability to test how CLI invocations are interpreted internally, and can now snapshot the output of any CLI invocation over a given workspace. They have also designed the expansion of the CLI and the necessary Trustfall schema changes to support manifest linting. As of the latest update, they have a working prototype of manifest querying, which enables SemVer lints such as detecting the accidental removal of features between releases. This work is not blocked on anything, and while there are no immediate opportunities to contribute, they indicate there will be some in future updates. ### Expose experimental LLVM features for automatic differentiation and GPU offloading (tracked in [#109]) [#109]: https://github.com/rust-lang/rust-project-goals/issues/104 -*ZuseZ4 has been focusing on automatic differentiation in Rust, with their first two upstreaming PRs for the rustc frontend and backend merged, and a third PR covering changes to rustc_codegen_llvm currently under review. They are especially proud of getting a detailed LLVM-IR reproducer from a Rust developer for an Enzyme core issue, which will help with debugging. On the GPU side, ZuseZ4 is taking advantage of recent LLVM updates to rustc that enable more GPU/offloading work. ZuseZ4 also had a talk about "When unsafe code is slow - Automatic Differentiation in Rust" accepted for the upcoming LLVM dev meeting, where they'll present benchmarks and analysis comparing Rust-Enzyme to the C++ Enzyme frontend.* +@ZuseZ4 has been focusing on automatic differentiation in Rust, with their first two upstreaming PRs for the rustc frontend and backend merged, and a third PR covering changes to rustc_codegen_llvm currently under review. They are especially proud of getting a detailed LLVM-IR reproducer from a Rust developer for an Enzyme core issue, which will help with debugging. On the GPU side, @ZuseZ4 is taking advantage of recent LLVM updates to rustc that enable more GPU/offloading work. @ZuseZ4 also had a talk about "When unsafe code is slow - Automatic Differentiation in Rust" accepted for the upcoming LLVM dev meeting, where they'll present benchmarks and analysis comparing Rust-Enzyme to the C++ Enzyme frontend. ### Extend pubgrub to match cargo's dependency resolution (tracked in [#110]) [#110]: https://github.com/rust-lang/rust-project-goals/issues/110 -*@Eh2406 has achieved the milestone of having the new PubGrub resolver and the existing Cargo resolver accept each other's solutions for all crate versions on crates.io, which involved fixing many bugs related to optional dependencies. Significant progress has also been made in speeding up the resolution process, with over 30% improvements to the average performance of the new resolver, and important changes to allow the existing Cargo resolver to run in parallel. They have also addressed some corner cases where the existing resolver would not accept certain records, and added a check for cyclic dependencies. The latest updates focus on further performance improvements, with the new resolver now taking around 3 hours to process all of crates.io, down from 4.3 hours previously, and a 27% improvement in verifying lock files for non-pathological cases.* +@Eh2406 has achieved the milestone of having the new PubGrub resolver and the existing Cargo resolver accept each other's solutions for all crate versions on crates.io, which involved fixing many bugs related to optional dependencies. Significant progress has also been made in speeding up the resolution process, with over 30% improvements to the average performance of the new resolver, and important changes to allow the existing Cargo resolver to run in parallel. They have also addressed some corner cases where the existing resolver would not accept certain records, and added a check for cyclic dependencies. The latest updates focus on further performance improvements, with the new resolver now taking around 3 hours to process all of crates.io, down from 4.3 hours previously, and a 27% improvement in verifying lock files for non-pathological cases. ### Optimizing Clippy & linting -*@blyxyas has been working on improving Clippy, the Rust linting tool, with a focus on performance. They have completed a medium-sized objective to use ControlFlow in more places, and have integrated a performance-related issue into their project. A performance-focused PR has also been merged, and they are remaking their benchmarking tool (benchv2) to help with ongoing efforts. The main focus has been on resolving rust-lang/rust#125116, which is now all green after some work. Going forward, they are working on moving the declare_clippy_lint macro to a macro_rules implementation, and have one open proposal-level issue with the performance project label. There are currently no blockers to their work.* +@blyxyas has been working on improving Clippy, the Rust linting tool, with a focus on performance. They have completed a medium-sized objective to use ControlFlow in more places, and have integrated a performance-related issue into their project. A performance-focused PR has also been merged, and they are remaking their benchmarking tool (benchv2) to help with ongoing efforts. The main focus has been on resolving rust-lang/rust#125116, which is now all green after some work. Going forward, they are working on moving the declare_clippy_lint macro to a macro_rules implementation, and have one open proposal-level issue with the performance project label. There are currently no blockers to their work. ## Completed goals From 0461e4e3d227a01e388593e4a1132c10ee1a2d58 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 20 Sep 2024 13:19:33 -0400 Subject: [PATCH 09/11] rename to Sep 20 --- ...Goals-Sep-Update.md => 2024-09-20-Project-Goals-Sep-Update.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename posts/{2024-09-19-Project-Goals-Sep-Update.md => 2024-09-20-Project-Goals-Sep-Update.md} (100%) diff --git a/posts/2024-09-19-Project-Goals-Sep-Update.md b/posts/2024-09-20-Project-Goals-Sep-Update.md similarity index 100% rename from posts/2024-09-19-Project-Goals-Sep-Update.md rename to posts/2024-09-20-Project-Goals-Sep-Update.md From 0f6c772ad823b5ee1305a317a05c1f3aad8222e5 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Fri, 20 Sep 2024 13:56:57 -0400 Subject: [PATCH 10/11] Rename 2024-09-20-Project-Goals-Sep-Update.md to 2024-09-23-Project-Goals-Sep-Update.md --- ...als-Sep-Update.md => 2024-09-23-Project-Goals-Sep-Update.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename posts/{2024-09-20-Project-Goals-Sep-Update.md => 2024-09-23-Project-Goals-Sep-Update.md} (99%) diff --git a/posts/2024-09-20-Project-Goals-Sep-Update.md b/posts/2024-09-23-Project-Goals-Sep-Update.md similarity index 99% rename from posts/2024-09-20-Project-Goals-Sep-Update.md rename to posts/2024-09-23-Project-Goals-Sep-Update.md index fb5e4b002..4eb473be1 100644 --- a/posts/2024-09-20-Project-Goals-Sep-Update.md +++ b/posts/2024-09-23-Project-Goals-Sep-Update.md @@ -104,4 +104,4 @@ One goal is still waiting for an owner: This is a brief summary of the progress towards our a subset of the 2024 project goals. There is a [lot more information available on the website](https://rust-lang.github.io/rust-project-goals/2024h2/goals.html), including the motivation for each goal, as well as detailed status updates. If you'd like more detail, please do check it out! You can also subscribe to individual tracking issues (or the entire rust-project-goals repo) to get regular updates. -The current set of goals target the second half of 2024 (2024H2). Next month we also expect to begin soliciting goals for the first half of 2025 (2025H1). \ No newline at end of file +The current set of goals target the second half of 2024 (2024H2). Next month we also expect to begin soliciting goals for the first half of 2025 (2025H1). From eb527531ce593cde3493bfedc3fe4f810372113a Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 23 Sep 2024 12:45:25 -0400 Subject: [PATCH 11/11] Update posts/2024-09-23-Project-Goals-Sep-Update.md Co-authored-by: kamulos --- posts/2024-09-23-Project-Goals-Sep-Update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/posts/2024-09-23-Project-Goals-Sep-Update.md b/posts/2024-09-23-Project-Goals-Sep-Update.md index 4eb473be1..3a8c02763 100644 --- a/posts/2024-09-23-Project-Goals-Sep-Update.md +++ b/posts/2024-09-23-Project-Goals-Sep-Update.md @@ -86,7 +86,7 @@ RFL on Rust CI is implemented but still waiting on documented policy. The first The following goals have been completed: -* [Implement "merged doctests" to save doctest time](https://github.com/rust-lang/rust-project-goals/issues/103) +* [Implement "merged doctests" to save doctest time](https://github.com/rust-lang/rust-project-goals/issues/111) ## Stalled or orphaned goals