Skip to content
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

Async project goal #3657

Closed
wants to merge 19 commits into from

Conversation

nikomatsakis
Copy link
Contributor

@nikomatsakis nikomatsakis commented Jun 12, 2024

This is a proposed flagship goal for 2024h2 covering async Rust. You can read more about the project goal slate and its associated process here. This RFC is prepared using the project goal template, which differs from the typical RFC template.

The overall goal is bringing the Async Rust experience closer to parity with sync Rust. We have identified three high-priority goals that we believe would do the most to improve async over the long term:

  • resolving the "send bound problem", thus enabling foundational, generic traits like Tower's Service trait;
  • stabilizing async closures, thus enabling richer, combinator APIs like sync Rust's Iterator;
  • reorganizing the async WG, so the project can benefit from a group of async rust experts with deep knowledge of the space that can align around a shared vision;

We have also identified two "stretch goals":

  • stabilizing a trait in libstd for async iteration, thus enabling the ecosystem to build atop a stable foundation;
  • completing the async drop experiments proposed in MCP 727, laying the groundwork for resolving the the next major gap in language feature support.

Approving this goal implies agreement from the Lang, Libs, and Libs-API teams to the items marked as Team in the table of work items, along with potentially other design meetings as needed.

Rendered

@nikomatsakis nikomatsakis added T-lang Relevant to the language team, which will review and decide on the RFC. T-libs-api Relevant to the library API team, which will review and decide on the RFC. labels Jun 12, 2024
@nikomatsakis nikomatsakis changed the title first draft of async project goal Async project goal Jun 13, 2024
@nikomatsakis
Copy link
Contributor Author

@rfcbot fcp merge

This project goal has been under development and discussion for some time. Since discussion on the thread has been relatively quiet, I'm going to go ahead and propose to merge it now. There will be a long list of checkboxes regardless so I want to get that discussion up and going.

@rfcbot
Copy link
Collaborator

rfcbot commented Jun 17, 2024

Team member @nikomatsakis has proposed to merge this. The next step is review by the rest of the tagged team members:

No concerns currently listed.

Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up!

cc @rust-lang/lang-advisors: FCP proposed for lang, please feel free to register concerns.
See this document for info about what commands tagged team members can give me.

@rfcbot rfcbot added proposed-final-comment-period Currently awaiting signoff of all team members in order to enter the final comment period. disposition-merge This RFC is in PFCP or FCP with a disposition to merge it. labels Jun 17, 2024
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
Copy link
Contributor Author

@nikomatsakis nikomatsakis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the edits. Will respond now to the more thoughtful questions.

text/0000-async-project-goal-2024h2.md Outdated Show resolved Hide resolved
@nikomatsakis
Copy link
Contributor Author

After discussion with @tmandry I have made two major updates to the goal structure

  • First, we removed the async vision doc, which seemed a bit premature and overly ambitious. We have replaced it with the goal to reorganize the async WG.
  • Second, I added more explicit prioritization, clarifying the async iteration + async drop are "stretch goals". The prioritization is based on what will set us up for long-term success.

@nikomatsakis
Copy link
Contributor Author

Upon reflection, I've decided to change the process for approving project goals. I'm going to close this RFC, but the content is still correct.

@rfcbot rfcbot removed proposed-final-comment-period Currently awaiting signoff of all team members in order to enter the final comment period. disposition-merge This RFC is in PFCP or FCP with a disposition to merge it. labels Jun 26, 2024
@bew
Copy link

bew commented Jun 26, 2024

Hello, I was following this rfc (was probably mentioned in TWiR), is there a new/different issue/object to follow? 🤔

@clarfonthey
Copy link
Contributor

I shared a similar question on the other RFC that was closed relating to project goals; might be worth centralising the discussion there: #3658 (comment)

Although presumably an alternative link to follow this specific goal will be provided here once that discussion has finished.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T-lang Relevant to the language team, which will review and decide on the RFC. T-libs-api Relevant to the library API team, which will review and decide on the RFC.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants