owned this note
owned this note
Published
Linked with GitHub
# Lang Team Triage Meeting Minutes
OK, experiment over, let's move back to [Dropbox Paper](https://paper.dropbox.com/doc/T-Lang-Meeting-Current-meeting-nRfrSxCbfeo9q7fEYogZQ)
## Action items
* [ ] propose case-by-case uplift for clippy lints (scottmcm) & cancel FCP
* merge: Uplift lints from clippy to rustc (rust-lang/rust#53224)
* [ ] niko to post summary comment on turbofish RFC and postpone
* update: thought about it, didn't act yet because pondering
* [ ] mem::zeroed/uninit: panic on types that do not permit zero-initialization #66059
* Centril to write a comment
## Design meeting topics
## Scheduler
* Jan 6 -- `Pin` and rogue `DerefMut` impls #66544 (proposed)
### Urgent-ish
* ffi-unwind and the "C" ABI (proposed)
* dyn Trait + coherence interaction #57893
* stacked borrows overview + `&self` in AtomicUsize + maybe the embedded interactions (proposed)
### Speculative
* roadmap + next edition (proposed)
* see also [this list](https://hackmd.io/J8AgNxIeTe69RrpRjaBzAA) which only Niko filled out :)
* unsafe code and `&raw` in next edition (proposed)
## Shepherded item updates
### inline assembly (Amanieu, Josh)
* no update
### safe transmute (Ryan, Josh)
* [x] https://github.com/rust-lang/rfcs/pull/2835#issuecomment-566192688 check your boxes?
* josh, boats, pnkfelix, scott
### const evaluation (ecstatic-morse)
* `&mut` ref types and borrows are on nightly but no RFC -- need one?
* Let's have an RFC.
* We should think more about our story for recursion limits?
* could lift the standard recursion limit for now
* but what about `loop { .. }`
* currently: we have a step counter that overflows at some point (counts terminators)
* tied to an unstable attribute right now
* Erroneous constants & what counts as dead code? (see discussion below).
### ffi-unwind (BatmanAod)
* preparing blog post, have to schedule a meeting
### "dyn Trait" stuff (nikomatsakis)
* Relevant issue: [rust-lang/rust#57893](https://github.com/rust-lang/rust/issues/57893)
* no update
### grammar (qmx)
* no update
### `never_type` (`!`) stabilization (nikomatsakis)
* no update
### or-patterns
* dynamic semantics almost implemented, https://github.com/rust-lang/rust/pull/67668
### bindings after at
* https://github.com/rust-lang/rust/pull/66296 implemented
## Shepherding proposals
None this week
## Triage
### [P-high issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AP-high+label%3AT-lang)
* [ ] [Usage of erroneous constant can be omitted on nightly and beta #67083](https://github.com/rust-lang/rust/issues/67083)
* [x] [Replace our fragile safety scheme around erroneous constants #67191](https://github.com/rust-lang/rust/issues/67191)
* [x] [`Pin` is unsound due to rogue Deref/DerefMut implementations rust-lang/rust#66544](https://github.com/rust-lang/rust/issues/66544)
* Scheduled meeting for Jan 6th
* [ ] Coherence can be bypassed by an indirect impl for a trait object
* (see above)
### [Nominated PRs](https://github.com/rust-lang/rust/pulls?q=is%3Aopen+is%3Apr+label%3AI-nominated+label%3AT-lang)
* [x] [Stabilize `#![feature(slice_patterns)]` in 1.42.0 -- #67712](https://github.com/rust-lang/rust/pull/67712)
* check your boxes :)
* [x] Treat extern statics just like statics in the "const pointer to static" representation [#67630](https://github.com/rust-lang/rust/pull/67630)
* Felix can ask about triggering (new?) UB in user code and whatnot.
* [x] WIP: no longer promote non-pattern const functions [#67531](https://github.com/rust-lang/rust/pull/67531)
* Decided to r+
* [ ] [Expr walking structural match (reopened) #67088](https://github.com/rust-lang/rust/pull/67088)
* MIR version: https://github.com/rust-lang/rust/pull/67343 (WIP)
* short version:
* trying to add a refinement to the type-based check, too conservative, was breaking existing use cases
* alternative: value-based check looking to include things like `None::<IllegalType>`
* some questions arise around `const fn` calls and a few other cases, and of course const generics
* related:
* `[None::<String>; 22]`
* static initializers
* const initializers
* there are two "competing" PRs right now, one based on HIR (maybe HAIR) and one based on MIR
* [ ] [mem::zeroed/uninit: panic on types that do not permit zero-initialization #66059](https://github.com/rust-lang/rust/pull/66059)
* no updates since [last meeting](https://github.com/rust-lang/lang-team/blob/master/minutes/2019-12-19.md)
* TL;DR of what we said before
* Centril thinks it would be good to have the full plan as "prose" and FCP that one so we don't have to re-FCP every step.
* Update: [crater regressions categorized](https://github.com/rust-lang/rust/pull/66059#issuecomment-568445970)
* Who will follow up with Ralf? Maybe centril?
* To land this PR we need: (Centril to leave comment)
* Preliminary write-up of the rules around which types permit zero-initialization
* Something we can point to to help people understand when `mem::zeroed` and `mem::uninitialized` will panic
* (To what extent was this covered in an RFC? Maybe only "suggested"? "Inspired by?")
### [Nominated issues](https://github.com/rust-lang/rust/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+label%3AI-nominated+label%3AT-lang+)
* [ ] (request) Extend `#[must_use]` to Pin [#67387](https://github.com/rust-lang/rust/issues/67387)
* [ ] Niko to summarize their concerns, note the `Deref` trait, and generally encourage doing something for pin now and considering a more general extension separately
* [ ] [Casting or adding type ascription to panic!() triggers unreachable_code](https://github.com/rust-lang/rust/issues/67227)
* deferred till we have more folks
* Centril listed some options
* author gave feedback.
* [ ] [Add configurable, per-item instruction limit for CTFE](https://github.com/rust-lang/rust/issues/67217)
* would prefer if you are able to attach these definitions to the const fn *definition* more than the use, in contrast to with macros --Niko
* current infinite loop detector is very slow
* [ ] [PartialEq implementation for RangeInclusive is unsound](https://github.com/rust-lang/rust/issues/67194)
* [this is due to unsound specialization implementation](https://github.com/rust-lang/rust/issues/67194#issuecomment-565595437)
* maybe a good idea to organize some form of audit
* another question might be how we could try to implement the "always applicable" rules in compiler / chalk, they haven't received much attention
* [x] [`Pin` is unsound due to rogue Deref/DerefMut implementations #66544 ](https://github.com/rust-lang/rust/issues/66544)
* see above
* [ ] [Tracking issue for RFC 2645, "Transparent Unions and Enums" #60405](https://github.com/rust-lang/rust/issues/60405)
* centril is thinking of stabilizing `#[repr(transparent)]` for enums:
* Nice to have univariant enums & structs behave the same way in general as a form of "algebraic data types" are sane.
* `#[repr(transparent)]` applied to a univariant enum behaves as if it were a struct
* defer stablization for unions
* [x] [Arc::drop has a (potentially) dangling shared ref #55005 ](https://github.com/rust-lang/rust/issues/55005)
* still nominated, planning to schedule a meeting
* [ ] [Tracking issue for RFC 2091: Implicit caller location #47809 ](https://github.com/rust-lang/rust/issues/47809)
* just wanted to call attention to this, clear nomination bit after meeting
* [ ] [floating point to integer casts can cause undefined behaviour #10184 ](https://github.com/rust-lang/rust/issues/10184)
* [last time we talked](https://github.com/rust-lang/rust/issues/10184#issuecomment-559538629), we concluded that it made sense to
* adopt saturated semantics as the default
* maybe offer a `-Z` flag to opt out for a time
* there has been plenty of discussion in the meantime
* how do we go forward here?
* a summary might be an amazing contribution --niko
### [Nominated RFCs](https://github.com/rust-lang/rfcs/pulls?q=is%3Aopen+is%3Apr+label%3AI-nominated+label%3AT-lang)
* [ ] [Calling methods on generic parameters of const fns](https://github.com/rust-lang/rfcs/pull/2632)
* We can continue with nightly experimentation without the RFC merged.
* Niko will comment that we are OK with ^---.
* Want another meeting? (Monday, 17/18:00 PM)
* [ ] [Make the turbofish syntax redundant](https://github.com/rust-lang/rfcs/pull/2544)
* [ ] [target_feature 1.1](https://github.com/rust-lang/rfcs/pull/2396)
### [rfcbot pending list](https://rfcbot.rs/)
* [ ] Some older items that haven't moved in a while, can we do something?
* [ ] [RFC: Elide Array Size](https://github.com/rust-lang/rfcs/pull/2545)
* It seems like maybe we just want to close this?
* There is a problem here, do we want to take another stab at reaching consensus?
* [ ] [Tracking issue for RFC 2046, label-break-value #48594](https://github.com/rust-lang/rust/issues/48594)
* Some recent additions:
* [ ] [Make `handle_alloc_error` default to panic (for no_std + liballoc)](https://github.com/rust-lang/rust/issues/66741#issuecomment-558184215)
* [ ] [Stabilize the `#[alloc_error_handler]` attribute (for no_std + liballoc) #66740](https://github.com/rust-lang/rust/issues/66740)
* Recap:
* [ ] [Uplift lints from clippy to rustc (rust-lang/rust#53224)](https://github.com/rust-lang/rust/issues/53224#issuecomment-415097721)
- Scott to close? What's up with that?
## Future meeting proposals
- dereference with ralfjung / compiler’s llvm-wg / ucg wg?