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: src/2025h1/rfl.md
+73-4Lines changed: 73 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,27 @@ We also began work on tooling stabilization with an [RFC proposing an approach t
59
59
60
60
### The next six months
61
61
62
-
Over the next six months our goal is to stabilize the major bits of tooling used by the Rust for Linux project...
62
+
Over the next six months our goal is to stabilize the major bits of tooling used by the Rust for Linux project. Some of these work items are complex enough to be tracked independently as their own project goals, in which case they are linked.
63
+
64
+
* implementing RFC #3716 to stabilize ABI-modifying compiler flags to control code generation, sanitizer integration, and so forth:
* x86 32-bit: `-Zregparm=3`, `-Zreg-struct-return`.
68
+
* LoongArch: `-Zdirect-access-external-data`.
69
+
* production sanitizer flags: `-Zsanitizer=shadow-call-stack`, `-Zsanitizer=kcfi`, `-Zsanitizer-cfi-normalize-integer`.
70
+
* the ability to extract dependency info and to configure no-std without requiring it in the source file:
71
+
* currently using `-Zbinary_dep_depinfo=y` and `-Zcrate-attr`
72
+
* stable rustdoc features allowing the RFL project to extract and customize rustdoc tests:
73
+
* clippy configuration (`.clippy.toml` in particular and `CLIPPY_CONF_DIR`);
74
+
*[a blessed way to rebuild std](./build-std.md): RFL needs a way to rebuild the standard library using stable calls to rustc. Currently building the standard library with rustc is not supported. This is a precursor to what is commonly called `-Zbuild-std`; it is also a blocker to making full use of API-modifying compiler flags and similar features, since they can't be used effectively unless the kernel is rebuilt.
75
+
76
+
In addition, as follow-up from 2024H2, we wish to complete [arbitrary self types v2][astv2] stabilization.
77
+
78
+
### The "shiny future" we are working towards
79
+
80
+
The ultimate target for this line of work is that Rust code in the Linux kernel builds on stable Rust with a Minimum Supported Rust Version (MSRV) tied to some external benchmark, such as Debian stable. This is the minimum requirement for Rust integration to proceed from an "experiment" so something that could become a permanent part of Linux.
81
+
82
+
Looking past the bare minimum, the next target would be making "quality of life" improvements that make it more ergonomic to write Rust code in the kernel (and similar codebases). One such example is the proposed experiment for [field projections](./field-projections.md).
63
83
64
84
## Design axioms
65
85
@@ -72,10 +92,59 @@ Here is a detailed list of the work to be done and who is expected to do it. Thi
72
92
73
93
* The ![Team][] badge indicates a requirement where Team support is needed.
Goal: support extraction of dependency information (similar to `-Zbinary_dep_depinfo=y` today) and ability to write crates without explicit, per-crate `![no_std]` (achieved via `-Zcrate-attr` today).
115
+
116
+
Right now there is no plan for how to approach this. This task needs an owner to pick it up, make a plan, and execute.
Goal: stabilized approach to customizing clippy (like `.clippy.toml` and `CLIPPY_CONF_DIR` today).
78
140
141
+
As discussed on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/stablization.20of.20clippy.2Etoml.20a), the relevant policy is already correct, but documentation is needed.
0 commit comments