wg-async-foundations post-stable triage
Agenda for this meeting
- What to prioritize over the next N weeks
- What about beyond that
- How to triage and track things now that async-await is stable
Niko’s random idea
- Two questions, really:
- What new lang/lib features should we be looking at and in what order?
- Not what I think we should answer in this meeting
- Probably good to give a bit of time to think this over
- I would like to maybe do a series of “educate Niko” videos
- where I (or others…) interview folks who know things, like cramertj, carl, etc about what they think would be good, their voice of async I/O
- “workarounds you should know and love”
- Future strangelove: how I learned to stop worrying and love the workaround
- Sep 26 — beta branches that carries async-await, last chance to affect stable
- back-compat makes sense
- diagnostics and shorter term fixes
- cramertj: “return type”
- nikomatsakis: overapproximation of what cross an await
- drop(foo); doesn’t matter
- comes up a lot with std::mutex and futures code
- but this is something of a gotcha, would prefer a futures-aware mutex is you’re going to use them
- alternative: “surprisingly hard things” chapter?
- or update the chapter on shared state
- inline on fn — should just be an error for now
- Centril: Why that? #[inline] is a hint and may not have any effects at all but I’d like to not add more special rules in the static semantics if avoidable.
- mark async constructors as inline
- “Late diagnostics” or “error at point of use”
- When a future is not send but must be, can we point into the source of the future and not just at the site of use?
- Overapproximation: where the “pre-MIR” analysis determines that we will capture, but we do not
- Overcapture: the MIR actually does capture, but shouldn’t
- Short-term fixes:
- Improve diagnostics
- Improve documentation
- UCG interactions
- “lifetime of underlying stack slots”
- if you make a raw ptr to a local variable, then move from that variable, can the raw ptr still be used?
- what if the variable is dead but not moved from? (#63768)