You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/Project-Goals-2025-July-Update.md
+19-20Lines changed: 19 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -141,8 +141,8 @@ I'm excited by the lineup of goals we have for this next cycle. See you on the o
141
141
142
142
**What has happened?**
143
143
144
-
*[@Ding](https://github.com/dingxiangfei2009) opened a [PR#142518](https://github.com/rust-lang/rust/pull/142518) that implements the [in-place initialization experiment](https://github.com/rust-lang/lang-team/issues/336).
145
-
*@Ding is working on an experimental implementation ([PR#143527](https://github.com/rust-lang/rust/pull/143527)) for `arbitrary_self_types`.
144
+
*[Ding](https://github.com/dingxiangfei2009) opened a [PR#142518](https://github.com/rust-lang/rust/pull/142518) that implements the [in-place initialization experiment](https://github.com/rust-lang/lang-team/issues/336).
145
+
* Ding is working on an experimental implementation ([PR#143527](https://github.com/rust-lang/rust/pull/143527)) for `arbitrary_self_types`.
146
146
* Ding opened a PR to Clang (a C frontend for LLVM): [Queries on GCC-style inline assembly statements](https://github.com/llvm/llvm-project/pull/143424) and got it merged.
147
147
*[@ojeda](https://github.com/ojeda) opened two Rust for Linux goals for the next period:
<!-- this comment helps to convince the markdown parser to do the right thing -->
605
605
606
606
Current status:
607
-
-@joshtriplett authored RFCs for both [attribute macros](https://github.com/rust-lang/rfcs/pull/3697) and [derive macros](https://github.com/rust-lang/rfcs/pull/3698).
608
-
- After some further iteration with the lang team, both RFCs were accepted and merged.
607
+
-@joshtriplett authored RFCs for both [attribute macros](https://github.com/rust-lang/rfcs/pull/3697) and [derive macros](https://github.com/rust-lang/rfcs/pull/3698). Both were accepted and merged.
609
608
-@joshtriplett, @eholk, and @vincenzopalazzo did some successful group-spelunking into the implementation of macros in rustc.
610
609
-@joshtriplett[rewrote the `macro_rules!` parser](https://github.com/rust-lang/rust/pull/143070/), which enabled future extensibility *and* resulted in better error messages. This then enabled several follow-up refactors and simplifications.
611
610
-@joshtriplett wrote a PR implementing attribute macros (review in progress).
@@ -755,18 +754,18 @@ The last update for this project-goal period! I have continued to work on the gp
755
754
756
755
**Key developments:**
757
756
758
-
1) My memory-movement PR got reviewed and after a few iterations landed in nightly. That means you can now don't even have to build your own rustc to move data to and from a GPU (with the limitations mentioned in my previous post). As part of my PR, I also updated the rustc-dev-guide: https://rustc-dev-guide.rust-lang.org/offload/installation.html
757
+
1) My memory-movement PR got reviewed and after a few iterations landed in nightly. That means you now don't even have to build your own rustc to move data to and from a GPU (with the limitations mentioned in my previous post). As part of my PR, I also updated the rustc-dev-guide: <https://rustc-dev-guide.rust-lang.org/offload/installation.html>.
759
758
760
-
2) Now that the host (CPU) code landed, I looked into compiling rust kernels to GPUs. When experimenting with the amdgcn target for rustc I noticed a regression, due to which all examples for that target failed. I submitted a small patch to fix it. It landed a few days ago, and prevents rustc from generating f128 types on AMD GPUs: https://github.com/rust-lang/rust/pull/144383
759
+
2) Now that the host (CPU) code landed, I looked into compiling rust kernels to GPUs. When experimenting with the amdgcn target for rustc I noticed a regression, due to which all examples for that target failed. I submitted a small patch to fix it. It landed a few days ago, and prevents rustc from generating f128 types on AMD GPUs: <https://github.com/rust-lang/rust/pull/144383>.
761
760
762
-
3) I looked into HIP and OpenMP (managed/kernel-mode) examples to see what's needed to launch the kernels. I should already have most of the code upstream, since it landed as part of my host PR, so I think I should soon be able to add the remaining glue code to start running Rust code on GPUs. https://github.com/rust-lang/rust/pull/142696.
761
+
3) I looked into HIP and OpenMP (managed/kernel-mode) examples to see what's needed to launch the kernels. I should already have most of the code upstream, since it landed as part of my host PR, so I think I should soon be able to add the remaining glue code to start running Rust code on GPUs. <https://github.com/rust-lang/rust/pull/142696>.
763
762
764
-
4) The main PR of @KMJ-007 is up, to start generating typetrees for Enzyme, the backend of our std::autodiff module. Enzyme sometimes wants more information about a type than it can get from LLVM, so it either needs to deduce it (slow), or it will fail to compile (bad). In the future we hope to lower MIR information to Enzyme, and this is the first step for it. I just submitted the first round of reviews: https://github.com/rust-lang/rust/pull/142640
763
+
4) The main PR of @KMJ-007 is up, to start generating typetrees for Enzyme, the backend of our std::autodiff module. Enzyme sometimes wants more information about a type than it can get from LLVM, so it either needs to deduce it (slow), or it will fail to compile (bad). In the future we hope to lower MIR information to Enzyme, and this is the first step for it. I just submitted the first round of reviews: <https://github.com/rust-lang/rust/pull/142640>
765
764
766
765
5) The main PR of @Sa4dUs is up, it replaces my historically grown middle-end with a proper rustc-autodiff-intrinsic. This allows us to remove a few hacks and thus makes it easier to maintain. It will also handle more corner-cases, and reduces the amount of autodiff related code in rustc by ~400 lines. I also gave it a first review pass.
767
766
768
767
769
-
I also submitted an updated project-goal to finish the `std::offload` module, to the point where we can write an interesting amount of kernels in pure (nightly) Rust and launch them to GPUs. All new project goals are supposed to have "champions" from the teams they are related to, which in the case of my autodiff/batching/offload work would be t-compiler and t-lang (see Niko's blog post for more details). Since I joined the compiler team a while ago I can now champion for it myself on the compiler side, and @traviscross volunteered to continue the support on the language side, thank you!
768
+
I also submitted an updated project-goal to finish the `std::offload` module, to the point where we can write an interesting amount of kernels in pure (nightly) Rust and launch them to GPUs. All new project goals are supposed to have "champions" from the teams they are related to, which in the case of my autodiff/batching/offload work would be t-compiler and t-lang (see [Niko's blog post for more details](/inside-rust/2025/06/23/project-goals-2025h2-call-for-submissions/)). Since I joined the compiler team a while ago I can now champion for it myself on the compiler side, and @traviscross volunteered to continue the support on the language side, thank you!
770
769
771
770
772
771
<!-- markdown separator -->
@@ -1285,9 +1284,9 @@ Key developments: https://github.com/rust-lang/rust/issues/143352 proposes an ex
1285
1284
1286
1285
**Final monthly update!**
1287
1286
1288
-
- Even more optimizations have been achieved on the documentation lints front. https://github.com/rust-lang/rust-clippy/pull/15030. (-6.7% on `bumpalo`).
1287
+
- Even more optimizations have been achieved on the documentation lints front. <https://github.com/rust-lang/rust-clippy/pull/15030> (-6.7% on `bumpalo`).
1289
1288
1290
-
- The 3rd heaviest function was optimized away by 99.75%, along with the [`strlen_on_c_strings`](https://rust-lang.github.io/rust-clippy/master/index.html#strlen_on_c_strings) lint. This gives us about a 15% optimization on `tokio`. https://github.com/rust-lang/rust-clippy/pull/15043
1289
+
- The 3rd heaviest function was optimized away by 99.75%, along with the [`strlen_on_c_strings`](https://rust-lang.github.io/rust-clippy/master/index.html#strlen_on_c_strings) lint. This gives us about a 15% optimization on `tokio`. <https://github.com/rust-lang/rust-clippy/pull/15043>.
1291
1290
1292
1291
- As a minor improvement, we now instantiate a lot less types on `unit_return_expecting_ord` (89% less calls in some benchmarks). This saves us a lot of locks on the type interner.
1293
1292
@@ -1494,7 +1493,7 @@ Key developments:
1494
1493
1495
1494
Key Developments: **Goal Complete.**
1496
1495
1497
-
The FLS is now an independent repository within the Rust Project, not relying on imported Ferrocene packages for building (we have brought them in locally). A version of the FLS has been published at https://rust-lang.github.io/fls using the new build process. The content changes were mostly non-normative at this point, but we have officially published the first rust-lang owned release of the FLS.
1496
+
The FLS is now an independent repository within the Rust Project, not relying on imported Ferrocene packages for building (we have brought them in locally). A version of the FLS has been published at <https://rust-lang.github.io/fls> using the new build process. The content changes were mostly non-normative at this point, but we have officially published the first rust-lang owned release of the FLS.
1498
1497
1499
1498
Next steps: Continue adding/modifying appropriate content for the FLS moving forward. Determine any potential H2 2025 spec-related project goals.
1500
1499
@@ -1537,9 +1536,10 @@ Next steps: Continue adding/modifying appropriate content for the FLS moving for
1537
1536
<!-- markdown separator -->
1538
1537
1539
1538
1540
-
We're almost done with the refactoring thanks again to @makai410 who is part of the GSoC. We are now considering renaming the crate before publishing, if you have any suggestion, please post it in https://rust-lang.zulipchat.com/#narrow/channel/320896-project-stable-mir/topic/Renaming.20StableMIR/with/520505712.
1541
1539
1542
-
Finally, we're designing the test and release automation.
1540
+
We're almost done with the refactoring thanks again to @makai410 who is part of the GSoC.
1541
+
1542
+
The `stable_mir` crate is now `rustc_public`. We are now finalizing the infrastructure and working on a compiler MCP. We should be ready to publish version 0.1 in the second half of the year. Thanks to everyone who helped, especially @makai410, who did most of the work.
1543
1543
1544
1544
1545
1545
<!-- markdown separator -->
@@ -1558,10 +1558,9 @@ Finally, we're designing the test and release automation.
1558
1558
<blockquote>
1559
1559
1560
1560
<!-- this comment helps to convince the markdown parser to do the right thing -->
1561
+
We're almost done with the refactoring thanks again to @makai410 who is part of the GSoC. We are now considering renaming the crate before publishing, if you have any suggestion, please post it in https://rust-lang.zulipchat.com/#narrow/channel/320896-project-stable-mir/topic/Renaming.20StableMIR/with/520505712.
1561
1562
1562
-
We're almost done with the refactoring thanks again to @makai410 who is part of the GSoC.
1563
-
1564
-
The `stable_mir` crate is now `rustc_public`. We are now finalizing the infrastructure and working on a compiler MCP. We should be ready to publish version 0.1 in the second half of the year. Thanks to everyone who helped, especially @makai410, who did most of the work.
1563
+
Finally, we're designing the test and release automation.
1565
1564
1566
1565
<!-- this comment helps to convince the markdown parser to do the right thing -->
1567
1566
@@ -1652,9 +1651,9 @@ The `stable_mir` crate is now `rustc_public`. We are now finalizing the infrastr
1652
1651
We made further progress on the new benchmarking scheme. The side of the website is nearing MVP status, currently we are switching focus on the side of the collector tha truns the benchmarks.
1653
1652
1654
1653
Some notable PRs:
1655
-
- Benchmark request queue for try builds and release artifacts (https://github.com/rust-lang/rustc-perf/pull/2166, https://github.com/rust-lang/rustc-perf/pull/2192, https://github.com/rust-lang/rustc-perf/pull/2197, https://github.com/rust-lang/rustc-perf/pull/2201).
1656
-
- Splitting of benchmark requests into benchmark jobs, including backfilling (https://github.com/rust-lang/rustc-perf/pull/2207).
0 commit comments