---
# System prepended metadata

title: Triage meeting 2025-09-17
tags: [triage-meeting, T-lang, minutes]

---

---
title: Triage meeting 2025-09-17
tags: ["T-lang", "triage-meeting", "minutes"]
date: 2025-09-17
discussion: https://rust-lang.zulipchat.com/#narrow/channel/410673-t-lang.2Fmeetings/topic/Triage.20meeting.202025-09-17/
url: https://hackmd.io/LHZJblC1Ri2-8UA5TXrmQw
---

# T-lang meeting agenda

- Meeting date: 2025-09-17

## Attendance

- People: Josh, TC, tmandry, nikomatsakis, scottmcm, Folkert de Vries, RustyYato, Amanieu, Yosh

## Meeting roles

- Driver: TC
- Minutes: TC

## Scheduled meetings

- 2025-09-17: "Design meeting: Unsafe fields RFC review" [#344](https://github.com/rust-lang/lang-team/issues/344)
- 2025-09-24: "Design meeting: `cfg_version`" [#337](https://github.com/rust-lang/lang-team/issues/337)
- 2025-10-01: "Design meeting: Wasmtime team sync" [#342](https://github.com/rust-lang/lang-team/issues/342)
- 2025-10-08: "Design meeting: Review RFC 3848 (Pass pointers to `const` in assembly)" [#347](https://github.com/rust-lang/lang-team/issues/347)

Edit the schedule here: https://github.com/orgs/rust-lang/projects/31/views/7.

## Announcements or custom items

(Meeting attendees, feel free to add items here!)

### Guest attendee items

TC: For any guests who are present, please note in this section if you're attending for the purposes of any items on (or off) the agenda in particular.

### Moving right along

TC: As we've been doing recently, due to the impressive backlog, I'm going to push the pace a bit.  If it's ever too fast or you need a moment before we move on, please raise a hand and we'll pause.

### Design meeting at 12:30 EST / 09:30 PST / 17:30 CET

TC: Remember that we have a design/planning meeting that starts half an hour after this call ends.

### Next meeting with RfL

We're next meeting with RfL on 2025-09-24 to review the status of RfL project goals.

https://github.com/rust-lang/rfcs/pull/3614

### Nominations for PDs

Josh: We need to decide about nominations for PDs tomorrow.

## Nominated RFCs, PRs, and issues

### "Use const generics for array `Default` impl" rust#61415

**Link:** https://github.com/rust-lang/rust/issues/61415

TC: The question here is whether we're willing to accept some amount of magic in the standard library so as to finally add the `Default` impl for non-zero arrays.  lcnr and Boxy put forward that the amount of magic required here is tolerable.

tmandry: I feel comfortable that there's some way we could generalize this in the future, but I'm not sure about that.

tmandry: It seems there are multiple ways that this could work going forward, and one of the options is it always being a special case.  So to approve this we need to accept that it could always be a special case.

NM: We already have special magic around zero length arrays, with respect to const and `Copy`.  This seems in line with that.

NM: My vibe here is +1.

TC: +1.

Josh: Broadly speaking, +1, with some trepidation if it involves specialization rather than another proposed approach.

NM: In the limit, we have some special trait that identifies the zero value.

tmandry: If we're framing this in terms of specialization, the question is what's the likelihood of that subset being able to be stabilized.

NM: We could say, e.g.:

```rust
impl<const N: usize> Default for [T; N]
where
    if N != 0 { T: Default }
{
    // Josh: and a body that looks something like this:
    fn default() -> T {
        const if N != 0 {
            [T::default(); N]
        } else {
            []
        }
    }
}
```

NM: There are many routes.  I'm not concerned about us being able to find coherent designable options.  We might not ever think any of them carry their weight as compared to a special case, but they might.  What I sketched above doesn't seem too hard to do.

tmandry: I'm not sure we should go there, but I feel maybe comfortable saying yes here for now.

NM: Not handling zero-length arrays is very irritating. The lack thereof increases pressure to adopt these more complex proposals, also. I think we should just make it work given that we have precedent.

tmandry: So the argument is that if your language can't express this it should find a way to express it. Ok.

TC: OK, we're all +1 then, so we'll leave a comment expressing appetite and ask for a PR to be nominated for us.

### "Allow borrowing array elements from packed structs with ABI align <= packed align" rust#145419

**Link:** https://github.com/rust-lang/rust/pull/145419

TC: FCP has been proposed; it needs Niko's checkbox and has concerns from scottmcm (listing exact rules, which has been done) and from tmandry (semver hazard, which RalfJ has addressed).

NM: Checked.

tmandry: OK, so this is purely about making it work for const generic arrays.  I'll resolve the concern.

TC: Then we'll need scottmcm to resolve the other concern.

---

TC: scottmcm is here now, discussing again.

TC: Have a look at the Reference PR here for the rules:

https://github.com/rust-lang/reference/pull/1984/files

tmandry: I don't love that we added a SemVer hazard here, but it seems that ship has sailed.

scottmcm: I'll resolve the concern; I don't like the implementation, but it's not a lang problem.

### "Prevent downstream `impl DerefMut for Pin<LocalType>`" rust#145608

**Link:** https://github.com/rust-lang/rust/pull/145608

TC: We need a checkbox from scottmcm here.  It's a dual FCP, so we need everyone to check off.

### "Stabilize s390x `vector` target feature and `is_s390x_feature_detected!` macro" rust#145656

**Link:** https://github.com/rust-lang/rust/pull/145656

TC: This one needs a checkbox from scottmcm; no concerns are filed.

### "the `#[track_caller]` shim should not inherit `#[no_mangle]`" rust#145724

**Link:** https://github.com/rust-lang/rust/pull/145724

tmandry: We need to propose FCP?

TC: Right.

Folkert: This goes against the RFC, so we need to confirm the behavior here.

NM: I'd be curious to know how we made the decision, but I can see a rationale for it.

scottmcm: Do we need to allow this combination.

NM: That'd be my inclination, but it is available on stable, for better or worse.

Folkert: It'd be weird for it to not work in a program, because the behavior here is creating a function pointer.

Folkert: The shim gets the location of where you turned the function into a function pointer.

scottmcm: I agree that's the only thing it could possibly do, but I'm not sure that's what anyone is expecting.  It wouldn't be surprising if you had to make a lambda that called it.

NM: Is the thing you're concerned about that it will lose the `track_caller` information?

scottmcm: It's the parameter mismatch that's funky.

NM: I could see it surprising people, but there's a method to the madness.  I like that it can be desugared -- if you think of `fn` pointers as a `dyn Fn`.

NM: I'll propose FCP.  I feel strongly that the behavior in the RFC is correct.

TC: Folkert; that make sense to you?

Folkert: Yes, I think that's the only thing that makes sense.

### "Having made lint `ambiguous_glob_imports` deny-by-default and report-in-deps" rust#146651

**Link:** https://github.com/rust-lang/rust/issues/146651

TC: This went in without us, so we're confirming retroactively that this was OK.

Josh: Has the process failure been dealt with separately?

TC: No.  I'd like us to reaffirm in our reply here that all changes to lint levels need a lang FCP.

(The meeting ended here.)

---

### "Decide about future of `rustc_legacy_const_generics`" rust#146613

**Link:** https://github.com/rust-lang/rust/issues/146613

### "Stabilize 29 RISC-V target features (`riscv_ratified_v2`)" rust#145948

**Link:** https://github.com/rust-lang/rust/pull/145948

### "Add the `cpuid` target feature" rust#146560

**Link:** https://github.com/rust-lang/rust/pull/146560

### "Allow specifying multiple bounds for same associated item, except in trait objects" rust#146593

**Link:** https://github.com/rust-lang/rust/pull/146593

### "`dangerous_implicit_autorefs` suggestion is wrong" rust#140721

**Link:** https://github.com/rust-lang/rust/issues/140721

### "error out when `repr(align)` exceeds COFF limit" rust#142638

**Link:** https://github.com/rust-lang/rust/pull/142638

### "Tracking Issue for `darwin_objc`" rust#145496

**Link:** https://github.com/rust-lang/rust/issues/145496

### "Tracking Issue for Reborrow trait lang experiment" rust#145612

**Link:** https://github.com/rust-lang/rust/issues/145612

### "Uplifts and extends `clippy::needless-maybe-sized` into rustc" rust#145924

**Link:** https://github.com/rust-lang/rust/pull/145924

### "compiler and language documentation disagree on lifetime extension for array expressions" rust#146092

**Link:** https://github.com/rust-lang/rust/issues/146092

### "Add a new lint `UNCONSTRUCTABLE_PUB_STRUCT` to detect unconstructable public structs" rust#146440

**Link:** https://github.com/rust-lang/rust/pull/146440

### "Add lint about redefining runtime symbols" rust#146505

**Link:** https://github.com/rust-lang/rust/pull/146505

### "Result/Option layout guarantee clarifications" rust#146509

**Link:** https://github.com/rust-lang/rust/pull/146509

### "Extend format_args implicit arguments to allow field access" rfcs#3626

**Link:** https://github.com/rust-lang/rfcs/pull/3626

### "repr(ordered_fields)" rfcs#3845

**Link:** https://github.com/rust-lang/rfcs/pull/3845

### "Match guard can both move and static-promote a single constant" rust#145237

**Link:** https://github.com/rust-lang/rust/issues/145237

### "`ref` patterns can const-promote a single constant more than once" rust#145555

**Link:** https://github.com/rust-lang/rust/issues/145555

### "Tracking Issue for enum access in offset_of" rust#120141

**Link:** https://github.com/rust-lang/rust/issues/120141

### "Stabilize the `breakpoint` function" rust#142325

**Link:** https://github.com/rust-lang/rust/pull/142325
