-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stabilize tooling needed by Rust for Linux #116
Comments
This issue is intended for status updates only. For general questions or comments, please contact the owner(s) directly. |
Key developments:
Next steps
|
Key developments:
Next steps:
|
Brief updates from today's meeting (minutes):
|
Summary of meeting from Nov 20, prepared by @traviscross: we went through a number of items proposed as 2025H1 project goals. The lang ones all seemed reasonable and achievable project goals. (We didn't get through all the non-lang items, so there's more to cover in the next meeting.) Wesley mentioned that @adetaylor may not be available to continue pursuing arbitrary self types in 2025, so he's been prioritizing reviews on those to get things in this year, and that we may have to find someone to push this forward if it goes beyond that. Alice mentioned that CoercePointee may be blocked on arbitrary self types, but wanted to think more about how fundamental that blockage is. There was a lot of discussion about how to rebuild core in a stable way. Wesley mentioned an interesting thing, which is that the Cargo team would like rustc to support passing a compressed crate file to rustc, and that if we could do that, then we could distribute a core.crate via rustup. Kind of interesting. There are also some items that the RfL folks want to get into unstable by Rust 1.85 as they may be stuck on that version for a long time. The main one for us is some way to relax the orphan rule. I suggested they file and nominate an ask for a lang experiment here. |
November updates:
|
FCP on rust-lang/rfcs#3716 has been proposed. |
Summary from today's meeting: we've completed all language items but arbitrary self types, and the heavy lifting there is done. We have diagnostic work to do and then we want to get some feedback but we expect to be able to move to stabilization soon. Arbitrary self typesThe bulk of the impl work has landed, crater run showed no fallout. The only known outstanding work is improving diagnostics. After that the next step will be stabilization. The main blocker is having some folks to play around with it and ensuring that it meets all the use cases it was meant to meet. Derive smart pointer
|
In our meeting today we reviewed the plans for the 2025H1 project goal... "Almost done" stuff from before
ABI-modifying flags The rust-lang/rfcs#3716 is now in Final Comment Period (FCP). There is a preliminary implementation in #133138 that @petrochenkov is going to be reviewing. Some more work will be needed to test, cleanup, etc after that lands. Other flags from RFL#2 We went through a series of flags from that RFL uses and looking into what might be blocking each of them. The process to stabilize one of these is basically to prepare the stabilization PR (minimal, but we need to rename the flag from
stable rustdoc features allowing the RFL project to extract and customize rustdoc tests ( @imperio authored rust-lang/rust#134531, which is now up for review. Once PR lands, RFL will validate the design, and it can proceed to stabilization. clippy configuration (possibly We discussed with clippy team, seems like this is not a big deal, mostly a doc change, one concern was whether clippy should accept options it doesn't recognize (because they may come from some future version of clippy). Not a big deal as of now, RFL only uses (msrv, check-private-items=true, disallowed-macros). rebuild libcore ARM team is working on this as part of this project goal, expect updates. 🎉 |
Updates: 2024H2 cleanup
2025H1
Publicizing this workWe discussed briefly how to better get the word out about this collaboration. Some points:
general-regs-onlyWe discussed the possibility of a flag to avoid use of floating point registers, no firm conclusion yet reached. |
This is a continuing project goal, and the updates below this comment will be for the new period 2025h1 |
Updates from our 2025-02-12 meeting: Given the recent controversy about Rust usage in the Kernel, the RFL group wrote up a policy document explainer to explain the policy, and there was a write-up on LWN. Regarding arbitary self types and coerce pointee, we are waiting on rust-lang/rust#136764 and rust-lang/rust#136776. The former is on lang team FCP. The latter has received approval from lang team and is awaiting further impl work by @BoxyUwU. @ojeda is looking into how to manage dependency information and configure no-std externally. @GuillaumeGomez's impl of rustdoc features has landed and we are waiting on RFL to experiment with it. @davidtwco's team at ARM has authored a document regarding a blessed way to build-std and are collecting feedback. @wesleywiser is preparing a PR to add There is an annoying issue related to As a set of "leaf crates" that evolve together in a mono-repo-like fashion, RFL would like to have a solution for disabling the orphan rule. |
TL;DR: We established the precise set of 2025H1 deliverables and we have been tracking them and have begun making progress towards them. Rustdoc has been updated to support extracting doc tests so that the Kernel can execute them in a special environment (this was previously done with a big hack) and RFL is in the process of trying to us that new support. The first PR towards the implementation of RFC #3716 has landed and the ARM team has begun reading early drafts of the design doc for We are also working to finalize the stabilization of the language features that were developed in 2024H2, as two late-breaking complications arose. The first (an interaction between casting of raw pointers and arbitrary self types) is expected to be resolved by limiting the casts of raw pointers, which previously accepted some surprising code. We identified that only a very small set of crates relied on this bug/misfeature; we expect nonetheless to issue a forwards compatibility warning. We are also resolving an issue where |
Update from our 2025-03-12 meeting (full minutes):
|
TL;DR: Most of the major items are in an iteration phase. The rustdoc changes for exporting doctests are the furthest along, with a working prototype; the RFL project has been integrating that prototype and providing feedback. Clippy stabilization now has a pre-RFC and there is active iteration towards support for build-std. Other areas of progress:
|
Updates from today's meeting: Finalizing 2024h2 goals
ABI-modifying compiler flags
Extract dependency information, configure no-std externally (-Zcrate-attr)
Rustdoc features to extract doc tests
Clippy configuration
Build-std (#274)
|
Summary
Continue working towards Rust for Linux on stable, turning focus to compiler and tooling.
Why this goal?
This goal continues our work from 2024H2 in supporting the experimental support for Rust development in the Linux kernel. Whereas in 2024H2 we were focused on stabilizing required language features, our focus in 2025H1 is stabilizing compiler flags and tooling options. We will (1) implement RFC #3716 which lays out a design for ABI-modifying flags; (2) take the first step towards stabilizing
build-std
by creating a stable way to rebuild core with specific compiler options; (3) extending rustdoc, clippy, and the compiler with features that extract metadata for integration into other build systems (in this case, the kernel's build system).Tasks and status
Finalizing 2024h2 goals
derive(CoercePointee)
(blocked on #136764 / #136776)asm_const
Support for pointers with asm_const rust#128464ABI-modifying compiler flags
Configure no-std externally
Rustdoc features to extract doc tests
Clippy configuration
-Zsanitize-kcfi-arity
-Csanitize-kcfi-arity
support inrustc
rust#138311The text was updated successfully, but these errors were encountered: