This is the doc for open discussion within wg-async about various design questions and other topics. Please feel free to propose a topic below.
On the day of the meeting, we'll do a quick poll to sort the topics by interest and then go through them one by one. If you have a brief (under 5 min) introduction prepared for the group, we'll take that into account as we prioritize the topics.
open-discussion
Leave discussion topics below.
#[refine]
macros. Would it be possible to provide a brief introduction to them?#[refine]
macros. Would it be possible to provide a brief introduction to them?Canonical example is a trait like this:
trait IntoIter {
type Item;
fn into_iter(self) -> impl Iterator<Item = Self::Item>;
}
impl<T> IntoIter for MyVec<T> {
type Item = T;
fn into_iter(self) -> impl Iterator<Item = T> { ... }
}
Let's say you want to add new details; the RFC proposes adding an attribute called #[refine]
for that..
impl<T> IntoIter for MyVec<T> {
type Item = T;
#[refine]
fn into_iter(self) -> impl DoubleEndedIterator<Item = T> { ... }
}
let's look at an example user of this trait…
fn process_container<C: IntoIter>(input: C) {
...
}
they might want RTN…
fn process_container<
C: IntoIter<into_iter(): DoubleEndedIterator>
>(input: C) {
...
}
But auto traits still leak, even without #[refine]
. :(
tmandry also wants to add a lint against (implicit) auto trait leakage on pub
functions/methods.
eholk:
tmandry: The only problem is we don't have a way to be explicit with async fn
. Some ideas:
async(Send)
#[refine(Send)]
..nevermind, that only makes sense in the context of a trait impl#[async(Send)]
(Vincent): I came across Niko's post discussing async stabilization. It would be helpful to identify the specific issues we need to address before entering the freeze period. Are there any particular polishing tasks or issues that we should focus on?
https://github.com/rust-lang/rust/labels/F-return_position_impl_trait_in_trait
https://github.com/rust-lang/rust/labels/F-async_fn_in_trait
Blockers for stabilization:
https://github.com/rust-lang/rust/issues/74497 – playground
https://rust-lang.github.io/wg-async/triage.html
eholk: Should we update the triage instructions to reflect reality?
https://forge.rust-lang.org/compiler/prioritization/priority-levels.html
Let's start assigning priorities, focus the purpose of the meeting on prioritization, not debugging.
Do we still want the project board?
https://github.com/orgs/rust-lang/projects/29/views/1
vincent: We can use for categorizing issues. I also find it useful for keeping track myself.
tmandry: Feel free to try adding a custom field for categorizing
name: prompt
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing