Skip to content

Latest commit

 

History

History
261 lines (156 loc) · 9.18 KB

2021-10-12.md

File metadata and controls

261 lines (156 loc) · 9.18 KB
title tags
Triage meeting 2021-10-12
triage-meeting

T-lang meeting agenda

  • Meeting date: 2021-10-12

Attendance

  • Team members: nikomatsakis, pnkfelix
  • Others: Mara, Mark

Meeting roles

  • Action item scribe: Mark
  • Note-taker: Felix

Scheduled meetings

Need to close these issues:

Action item review

Pending lang team project proposals

"negative impls integrated into coherence" lang-team#96

Link: #96

  • spastorino is picking this up
  • creating a repo

"Deprecate target_vendor " lang-team#102

Link: #102

"Async fundamentals initiative" lang-team#116

Link: #116

"Attribute for trusted external static declarations" lang-team#118

Link: #118

"Prototype Sync & Async Iterator Items (Minimal generators)" lang-team#121

Link: #121

"Enum Variant Types" lang-team#122

Link: #122

PRs on the lang-team repo

"Initial draft of copy ergonomics design note" lang-team#62

Link: #62

"Add draft of variadic notes" lang-team#76

Link: #76

"consensus decision making" lang-team#113

Link: #113

RFCs waiting to be merged

None.

Proposed FCPs

Check your boxes!

"RFC: Add target configuration" rfcs#2991

Link: rust-lang/rfcs#2991

Leave a comment seeing if someone wants to take this work over:

  • Amend RFC
  • Attempt to implement

Niko to comment

"Tracking issue for RFC 2523, #[cfg(version(..))]" rust#64796

Link: rust-lang/rust#64796

  • blocked on some change to cfg(accessible)
  • proposal: cancel FCP
  • Niko to cancel FCP

"Tracking Issue for destructuring_assignment" rust#71126

Link: rust-lang/rust#71126

"Tracking issue for #![feature(const_precise_live_drops)]" rust#73255

Link: rust-lang/rust#73255

"Proposal: Change syntax of where clauses on type aliases" rust#89122

Link: rust-lang/rust#89122

  • has design meeting, canceling FCP

Active FCPs

"Make all proc-macro back-compat lints deny-by-default" rust#88041

Link: rust-lang/rust#88041

"Stabilize unreachable_unchecked as const fn" rust#89509

Link: rust-lang/rust#89509

"negative impls integrated into coherence" lang-team#96

Link: #96

P-critical issues

None.

Nominated RFCs, PRs and issues

"Tracking issue for #![feature(const_precise_live_drops)]" rust#73255

Link: rust-lang/rust#73255

  • Pending FCP

"Tracking Issue for relaxed struct unsizing rules" rust#81793

Link: rust-lang/rust#81793

"Tracking Issue for const-initialized thread locals" rust#84223

Link: rust-lang/rust#84223

  • What is the change?
    • Macro looks for const { expr } and changes the code that gets generated
      • gets generated to static FOO: ... = <expr>
  • Why this change?
    • Codegen improvement: the initial value of a thread-local is constant and not re-evaluated per thread
  • Expected outcome?
    • We stabilize the macro and eventually move it to use inline constants
  • What is the risk?
    • Currently accepts const { ... } syntax but desugars to a static
    • If set of expressions accepted as initial value for a static diverged from set that can appear in const { ... } this would be weird
  • Niko to start FCP and summarize the above

"Stabilize built-in attribute macro #[cfg_eval]" rust#87221

Link: rust-lang/rust#87221

// `cfg_attr` is evaluated first, and written second so the lint is reported
// however, we cannot reorder the attributes because `my_trait_helper` is not in scope before `#[derive(MyTrait)]`
// but we can use `cfg_eval` to both evaluate `cfg_attr` and keep relative order of `MyTrait` and `my_trait_helper`
#[cfg_eval]
#[derive(MyTrait)]
#[cfg_attr(my_feature, my_trait_helper)]
struct S;
  • Niko to leave a comment explaining why it seems like there isn't really a motivation:
    • For derive, we are still going to have it, so it's just a workarond for a dumb lint? Why not make lint smarter?
    • For other users, maybe they'd prefer to have the expansion occur in the lint, like derive, as that is more convenient?
    • What exactly is the proposed lint?
  • Wait! We misunderstood. Felix clarifies that the goal here is to move towards a future where things are "fully configured by default".
    • And this is an "eager opt-in" in advance of the new edition.
    • But that design isn't baked: it needs opt-out.
      • So are we ready to be stabilizing?
  • Niko to write a comment and reach out to petrochenkov to understand what's the plan here

"Port clippy lint redundant_field_names to compiler" rust#87512

Link: rust-lang/rust#87512

  • Niko to fcp close as this is not a "bug fix"-oriented lint.

"Which patterns on union fields should be considered safe?" rust#87520

Link: rust-lang/rust#87520

  • Someone needs to look really close

"Make all proc-macro back-compat lints deny-by-default" rust#88041

Link: rust-lang/rust#88041

Nothing to discuss.

"Unactionable "field is never read" warning for printed structs with the Debug derive" rust#88900

Link: rust-lang/rust#88900

  • Discussed before, Niko left a comment
  • Action item: Close issue as no change is expected

"Stabilize const_raw_ptr_deref for *const T" rust#89551

Link: rust-lang/rust#89551

Questions to be raised on thread:

  • WWRD? (What Would Ralf Do?)
    • We should document:
      • My only concern with const raw pointer deref is how and where to document that type-punning loads (i.e., raw-ptr-based transmutes) of pointers to integers are considered UB during CTFE.
    • Answer
      • But just from an implementation perspective I can't think of any reason how raw ptr deref could screw us now that we have stabilized transmutes and union field accesses. The reason we only stabilized unions and transmute first is that those were already allowed in const (outside const fn).
  • Why separate *const from *mut? Do we expect a difference in semantics, or is this just being very cautious?
    • Ah, this was discussed, but what is the "backdoor"?
      • The reason I split it is because mutable references are unstable. If mutable pointer dereferencing is stabilized, doesn't that effectively open a back door?
    • Is it "you could coerce a &mut to a *mut and dereference that?"
  • Niko would like to request a pointer to documentation about the limits of UB in const code (per Ralf's comment here); in general, we need edits to the reference for what you can and can't do in const code

"Document using liveness to infer auto traits for async blocks" reference#1088

Link: rust-lang/reference#1088

  • We discussed this before and requested a PR describing current state
  • This can be un-nominated, as eholk and I discussed this PR and felt like it might not be the right approach anyhow
  • Felix to review rust-lang/reference#1093