---
title: Triage meeting 2022-01-18
tags: triage-meeting
---
# T-lang meeting agenda
* Meeting date: 2022-01-18
## Attendance
* Team members: Josh, pnkfelix
* Others: Mark, dbarsky, Mara
## Meeting roles
* Action item scribe: Mark
* Note-taker: Felix
## Scheduled meetings
- "Structural equality" [lang-team#94](https://github.com/rust-lang/lang-team/issues/94)
- "Never allow unwinding from Drop impls" [lang-team#97](https://github.com/rust-lang/lang-team/issues/97)
- "Dyn upcasting, safety considerations" [lang-team#119](https://github.com/rust-lang/lang-team/issues/119)
- "Const eval overview" [lang-team#131](https://github.com/rust-lang/lang-team/issues/131)
## Announcements or custom items
(Meeting attendees, feel free to add items here!)
- Team roadmaps
- Companies are interested in contributing to Rust in high-impact ways; they want to see team roadmaps, and then make contributions that align with those roadmaps. So, compared to previous years, where a roadmap is read-only output describing plan based on team's own resources, it would be useful this year to have a road map that includes items that we *do not* have resources for (and explicitly tagged as such). expectation is that T-lang, T-libs, and T-compiler are the biggest likely targets/beneficiaries of this.
- May want to do a design meeting on this
## Action item review
* [Action items list](https://hackmd.io/gstfhtXYTHa3Jv-P_2RK7A)
## Pending lang team project proposals
### "Deprecate target_vendor " lang-team#102
**Link:** https://github.com/rust-lang/lang-team/issues/102
### "Async fundamentals initiative" lang-team#116
**Link:** https://github.com/rust-lang/lang-team/issues/116
### "Attribute for trusted external static declarations" lang-team#118
**Link:** https://github.com/rust-lang/lang-team/issues/118
### "Prototype Sync & Async Iterator Items (Minimal generators)" lang-team#121
**Link:** https://github.com/rust-lang/lang-team/issues/121
### "Support platforms with size_t != uintptr_t" lang-team#125
**Link:** https://github.com/rust-lang/lang-team/issues/125
### "Positional Associated Types" lang-team#126
**Link:** https://github.com/rust-lang/lang-team/issues/126
### "Heap allocations in constants" lang-team#129
**Link:** https://github.com/rust-lang/lang-team/issues/129
### "Interoperability With C++ Destruction Order" lang-team#135
**Link:** https://github.com/rust-lang/lang-team/issues/135
## PRs on the lang-team repo
None.
## RFCs waiting to be merged
None.
## Proposed FCPs
**Check your boxes!**
None.
## Active FCPs
### "Change location of where clause on GATs" rust#90076
**Link:** https://github.com/rust-lang/rust/pull/90076
### "Positional Associated Types" lang-team#126
**Link:** https://github.com/rust-lang/lang-team/issues/126
### "Interoperability With C++ Destruction Order" lang-team#135
**Link:** https://github.com/rust-lang/lang-team/issues/135
## P-critical issues
None.
## Nominated RFCs, PRs and issues
### "Tracking issue for #[cfg(target_has_atomic = ...)]" rust#32976
**Link:** https://github.com/rust-lang/rust/issues/32976
* Last lang discussion [here](https://github.com/rust-lang/rust/issues/32976#issuecomment-716787769)
* current interface is to feed in a given size (e.g. `target_has_atomic="16"`). Do we need to be able to specify any other capabilities, e.g. pnkfelix sees mention of `target_has_atomic_load_store`
* but we can extend system with such extra functionality later. We don't need to let that block stabilization of this functionality.
* Q: are people going to actually want target_has_atomic_equal_alignment?
* the latter provides the guarantee that normal `i8` etc can be turned into `&AtomicI8` via the `from_mut` method.
* the `from_mut` method is currently unstable (nightly only)
* team consensus (among present members) is that just `target_has_atomic` is likely to match what people want.
* Q: shouldn't we be striving to support `cfg(accessible)` instead?
* `cfg(accessible)` is not necessarily the ideal API for this, and it will take much longer to stabilize
* Q: should we just pump up `target_has_atomic` to have the stronger semantics of `target_has_atomic_equal_alignment`?
* a big problem with pumping it up is that then you cannot support it for i64/u64 on Intel, which seems like a common case of interest.
* Q: a review of the tier 2 and maybe tier 3 platforms to check that we're not making a mistake
* what kind of mistake?
* e.g. a target that has only partial support for some parts of the API.
* in other words, we should try to check that we've identified a good common denominator between the API's supported by our set of targets
* the current system leverages compare-exchange as *the* common API. Everything else can be implemented in terms of compare-exchange.
* technically there is the *other* guarantee, to support `get_mut` method, that the data can be reinterpreted as a non-atomic. I.e. that `&mut AtomicI16` can be converted into a `&mut i16`.
### "Formally implement let chains" rust#88642
**Link:** https://github.com/rust-lang/rust/pull/88642
* Current belief: This seems to match behavior we want eventually
* no one sees breaking change here, though we would not be able to revert this without breaking change, so we still need to get buy-in
* there is concern that the MIR change should not be necessary to implement let-chains.
* mark will post feedback asking if this can be implemented without the changes to MIR building.
### "Make `unused_lifetimes` lint warn-by-default" rust#92386
**Link:** https://github.com/rust-lang/rust/pull/92386
* impact was widespread, but few unexpected cases arose
* a leading underscore does not currently silence the lint, e.g. for `'_a'`.
* on public traits, lifetime is part of semver exposed surface area.
* so we might consider making the lint not flag that case
* and maybe is useful even if not mentioned in the trait declaration