--- title: WG-async planning meeting 2024-05-02 tags: ["WG-async", "planning-meeting", "minutes"] date: 2024-05-02 discussion: https://rust-lang.zulipchat.com/#narrow/stream/187312-wg-async/topic/Planning.20meeting.202024-05-02 url: https://hackmd.io/gqt-5xxwRjmrqJPJF61ELg --- # WG-async meeting agenda - Meeting date: 2024-05-02 ## Attendance - People: TC, Daria, tmandry, eholk ## Meeting roles - Minutes: TC ## Scheduled meetings None. Update these [here](https://github.com/orgs/rust-lang/projects/40/views/1). ## Proposed meetings None. Update these [here](https://github.com/orgs/rust-lang/projects/40/views/1). ## Availability - 9th: `poll_progress` (or similar) - This week is RustNL, but maybe none of us are going there. - 16th: Project goals - 23rd: Unforgettable types - 30th: Open discussion Topics for next month: - Drop and keyword generics ## Proposed topics - Project goals - It'd be good if Niko could join us. - "A Rose by Any Other Name" - https://theincredibleholk.org/blog/2024/04/19/a-rose-by-any-other-name/ - "The destruction guarantee and linear types formulation" - https://zetanumbers.github.io/book/myosotis.html - Keyword generics drop trait - `poll_progress` - RTN? ## `poll_progress` tmandry: If we had unforgettable types, maybe we could have futures spawn futures within them soundly. That would allow us to address, e.g., the embedded use case. TC: Another way around is to push forward on general coroutines. Then this could be expressed in a library. TC: Separately, if we did `poll_progress`, it seems desirable if it could be expressed in the surface syntax. (This also helps to draw out the connection to general coroutines.) E.g. (not a real syntax proposal): ```rust async gen { loop { let mut plates = spin_the_plates(); if $make_progress_only { yield_progress; } else { yield plates.pop(); } }} ``` (Here, the `$make_progress_only` is analogous to the implicit `Context` that we thread through `async` for the `.await` desugaring.) TC: This of course raises the question of what to do if we try to `yield` when only progress was requested. ## Unforgettable types Daria: We may need coinduction for this, and we may need the new trait solver for this. (Discussion of how we need to ensure T-types involvement and buy-in here.) eholk: There's an open PL research question of whether linear types can be made ergonomic. tmandry: If we had an owner for unforgettable types who was committed to work on it, we could add a project goal for this. Daria, are you and team continuing to work on this? Daria: We are, but it's going to be much more in the background. Daria: My manager has a meeting soon with the Huawei directors. We'll see what comes of that. I'll keep you informed. We made so much progress up to this point, I'd really like to see this happen.