owned this note
owned this note
Published
Linked with GitHub
---
title: "Lang/RfL meeting 2025-02-12"
tags: ["T-lang", "design-meeting", "minutes"]
date: 2025-02-12
discussion: https://rust-lang.zulipchat.com/#narrow/channel/410673-t-lang.2Fmeetings/topic/RfL.20meeting.202025-02-12
url: https://hackmd.io/AkNBW942SoacLayPXHthCg
---
# Lang/RfL meeting 2025-02-12
## Attendance
People: Miguel Ojeda, Alice Ryhl, TC, Josh, David Wood, Wesley Wiser, Gary Guo, Boqun Feng, Benno Lossin
## Linux drama
Miguel: We wrote up a new policy document / explainer to help people:
https://rust-for-linux.com/rust-kernel-policy
There's a write-up on LWN:
https://lwn.net/SubscriberLink/1007921/9020dbb12585d48f/
## Tracking
[Tracking issue](https://github.com/rust-lang/rust-project-goals/issues/116)
[Project goal](https://rust-lang.github.io/rust-project-goals/2024h2/rfl_stable.html)
### "Make `ptr_cast_add_auto_to_object` lint into hard error" rust#136764
**Link:** https://github.com/rust-lang/rust/pull/136764
This found its way into the critical path of arbitrary self types and `derive(CoercePointee)`.
On the lang side, we're FCP merging this.
### "[WIP] Forbid object lifetime changing pointer casts" rust#136776
**Link:** https://github.com/rust-lang/rust/pull/136776
This found its way into the critical path of arbitrary self types and `derive(CoercePointee)`.
On the lang side, we're seeing what to do about this, or whether to just say this shouldn't be in the critical path.
### Arbitrary self types v2
This is hung on the things above.
### Blog post about how the RfL project goal has gone
How can we present the progress that we've made in the first iteration of the goal?
In the first iteration, we mostly did the lang items. In the second iteration, we're doing more compiler items, so we could break it down that way.
### Anyone going to RustNation?
(Discussion.)
Just David and Alice?
### Derive smart pointer
This one too is hung mostly on the items above, but there are other concerns that are also being worked through on this one.
There was an issue with leaking unstable implementations of `Unsize`. Ding worked on a PR related to this that inserts some new checks. Alice will be checking with Ding about whether that solves the `Unsize` impl.
Alice is working on rewriting the `derive(CoercePointee)` stabilization report in terms of the new template.
### asm_goto
This one has been hung on documentation for the Reference. Gary put up a revision for this recently, and we'll be reviewing that soon so as to unblock the stabilization.
### 2025 goals
https://rust-lang.github.io/rust-project-goals/2025h1/rfl.html
### ABI-modifying compiler flags
The RFC was accepted by T-compiler:
https://github.com/rust-lang/rfcs/pull/3716
There's a PR that started work on this:
https://github.com/rust-lang/rust/pull/133138
We'll create a tracking issue for this when merging the RFC.
### Extract dependency information, configure no-std externally
Miguel is planning to look into this flag, and then discuss with everyone here.
One of the questions is whether we could skip `core` and do it only for the non-sysroot crates.
We last discussed it in:
https://hackmd.io/Jq3Xo0ZARAKNsRBC3lXkEA
tmandry had said:
> tmandry: Do you want toolchain runtimes (libstd, compiler-rt) in your dep info? In my experience this features does 90% of what I want it to do, but removing the inclusion of runtimes is the only question I have before stabilizing. (we don't understand this point)
This is part of what Miguel is looking into.
### Rustdoc features to extract doc tests
We understand this to be implemented. Miguel talked with Guilliaume at FOSDEM, and he's interested in implementing this in the kernel. He's looking into that.
### Clippy configuration
There's a discussion involving flip1995:
https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/stablization.20of.20clippy.2Etoml.20a/near/486169617
Nothing has happened here since 2025-02-03.
### Blessed way to rebuild std
https://rust-lang.github.io/rust-project-goals/2025h1/build-std.html
David's team at ARM has talked through a document about how to go about this. The next step is putting out a kind of vision document about what we should be doing. The immediate goal will be the parts of it that are needed for RfL.
Wesley, Josh, and some others on the Cargo team have reviewed the document and are giving feedback. It's in the pre-pre-RFC stage.
There's still a lot of iterating on the right design.
### What kind of compiler flags will Rust-for-Linux need?
https://github.com/Rust-for-Linux/linux/issues/2
Miguel is planning to send a PR to add `-Zdwarf-version`.
https://github.com/rust-lang/rust/pull/136926
Wesley has proposed FCP merge here and is enthusiastic about doing it. If there's a bug here, it'd be in LLVM. This is leaned on heavily in other places.
### `cfg(no_fp_fmt_parse)`
https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/no_global_oom_handling.20removal/near/498600545
RfL doesn't use this any more, but it's still in the code for Linux 6.12 which is an LTS kernel.
We could backport the commit that removes the use. Otherwise, this caps the maximum Rust version (which would not be a great look).
### Disabling the orphan rule
In RfL, we don't care about the protections that the orphan rule provides (except against `core`).
The plan is to split the `kernel` crate: currently essentially all of our abstractions are in that single crate, but eventually each subsystem will have their own crate(s).
It may be useful to have a lint that shows what would have been disallowed without the unstable feature flag.
Benno will write up an issue with context about what RfL needs here and lang nominate it for us.