Skip to content

When do change unstable feature to stable? #711

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
k-nasa opened this issue Feb 20, 2020 · 5 comments
Open

When do change unstable feature to stable? #711

k-nasa opened this issue Feb 20, 2020 · 5 comments

Comments

@k-nasa
Copy link
Member

k-nasa commented Feb 20, 2020

Now, async-std have many unstable function and module.
When do change unstable feature to stable?

@yoshuawuyts
Copy link
Contributor

@k-nasa that's an excellent question! -- There's no concrete plan in place, but I think we can review it on a case by case basis. In general I'd think we could do the following:

  • Stream combinators: we can probably stabilize most, if not all of these
    • We can probably stabilize more of streams as well. Probably the only things we'd need @stjepang to take a look at are FromStream / IntoStream since those have some rough edges.
  • Print macros: we should probably remove all of these. They're not safe, and not very useful either.
  • Pin submodule: we should remove this.
  • Process submodule: the new runtime would resolve this. Probably keep this as unstable? We can also remove, and later decide to add back.

How does this sound? If you'd like to make PRs for this, I'd be happy to review. It'd be great to put out a new async-std release this month, and stabilizing things sounds like a great idea!

@k-nasa
Copy link
Member Author

k-nasa commented Mar 2, 2020

@yoshuawuyts

  • I agree with the stream combinator. Almost stable.
  • I think too print macro delete
  • I think unnecessary re-export std module. So I think it should delete.

I'll submit remove macro and re-export std module. Please review!

@yoshuawuyts
Copy link
Contributor

@k-nasa sounds great; will do!

@taiki-e
Copy link
Contributor

taiki-e commented Mar 10, 2020

@yoshuawuyts @k-nasa:

I have some concerns about traits stabilized in #719:

  • Known issue of FromStream (StreamExt::collect does not preserve Send #639): Fixing this may require breaking changes.

  • Other traits that use dyn trait need to consider similar issues to FromStream. (Extend, Sum, Product)

  • (AFAIK) async-std's FusedStream does not work without specialization, unlike futures's FusedStream. And, currently, async-std doesn't provide support for specialization. So, I don't think this needs to be stabilized immediately.

  • DoubleEndedStream does not use extension trait pattern, unlike existing traits. This is a small trait, but note that this may prevent providing more granular options in the future. (e.g., provide only traits without providing utilities. This is what futures and tokio currently do.)

These seem to be stabilized with little discussion in #719 and this issue. So, I suggest that we revert the stabilization of these traits (or all traits stabilized in #719. there may be more issues, given that I haven't spent much time looking for this...).

@skade
Copy link
Collaborator

skade commented Mar 10, 2020

@taiki-e thanks! I think these concerns should block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants