Open
Description
Metadata | |
---|---|
Point of contact | @nikomatsakis |
Team(s) | cargo, clippy, compiler, rustdoc |
Goal document | 2025h1/rfl |
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
- Overall program management (@nikomatsakis)
Finalizing 2024h2 goals
- Stabilize
derive(CoercePointee)
(blocked on #136764 / #136776)Stabilize arbitrary self types v2 (blocked on #136764 / #136776)stabilize asm-goto (blocked on reference PR)support for pointers withasm_const
Support for pointers with asm_const rust#128464
ABI-modifying compiler flags
Configure no-std externally
Rustdoc features to extract doc tests
Clippy configuration
- RFC text (pre-RFC draft)Stabilization decision (clippy
)
-Zsanitize-kcfi-arity
- Tracking issue: Tracking Issue for
-Zsanitize-kcfi-arity
rust#138311Implementation (KCFI: Add KCFI arity indicator support rust#138368, already reviewed by davidtwco)Stabilization
Metadata
Metadata
Assignees
Type
Projects
Status
Project goal
Relationships
Development
No branches or pull requests
Activity
nikomatsakis commentedon Jul 25, 2024
This issue is intended for status updates only.
For general questions or comments, please contact the owner(s) directly.
nikomatsakis commentedon Aug 30, 2024
Key developments:
offset_of
syntax is stable on nightly! 🎉 Credit to @dingxiangfei2009 for driving this.all@
and post an Inside Rust blog post.Next steps
inline_asm!(..., exit1 = { ... }, exit2 = { ... })
, in which the assembly code can jump toexit1
orexit2
. The problem is that, sinceinline_asm!
must be in anunsafe
block, this implies the blocks associated with those labels will be allowed to use unsafe code. To circumvent this, the RFL team is having those blocks simply break from an outer block with afalse
return value, and then branching on that if value outside. That's the same as the C code does, as it happens, but. it's not as nice nor efficient as it could be. Discussion in the meeting suggested that the block bodies should be limited to safe code unless marked asunsafe
. @joshtriplett to follow-up.-Zfixed-x18
flag as a first step. @Darksonn to start drafting a stabilization report, possibly delegating some questions to @nikomatsakis.nikomatsakis commentedon Oct 26, 2024
Key developments:
#[derive(CoercePointee)]
. @dingxiangfei2009 prepared PR #131284 to do the rename and is preparing a patch and PR to the rust-for-linux repository.const
to support embedded pointers (Support for pointers with asm_const rust#128464).Next steps:
SmartPointer
toCoercePointee
rust#131284 and port code in the Rust-for-Linux repo to use it. Author stabilization report.asm
goto should default to safe rust#132078, review and merge Make asm label blocks safe context rust#131544 making asm-goto target blocks safe-by-default.const
to support embedded pointers (Support for pointers with asm_const rust#128464).nikomatsakis commentedon Nov 6, 2024
Brief updates from today's meeting (minutes):
30 remaining items