Skip to content

0.3 alpha burndown issue #1033

Closed
Closed
@aturon

Description

@aturon

This issue is for tracking/mentoring the steps needed to get a complete 0.3 branch together.

These issues are listed in roughly order of increasing difficulty, and in the most natural order for completion.

  • Remove futures-stable

    • This should no longer be relevant
  • Switch 0.3 branch to use task system from std. Now that the core task definitions have landed in std, the 0.3 branch should be switched over to use these definitions from nightly. That means:

    • Removing the various task/executor definitions in the futures crate and replacing them with re-exports
    • Similarly for the Future trait itself
  • Update futures-executor in 0.3. Right now, this crate is not part of the 0.3 branch, and needs to be updated:

    • Its Cargo.toml should be updated to use 0.3.0-alpha throughout
    • All uses of Future should be updated to work with the new definitions (which means dealing with pinning, etc). E.g. the Spawn future.
    • The unsafe_* macros are really useful for working with pinned data. A good example of using these macros is the Map combinator.
    • The various spawn functions will have to be updated to make the 0.3 revisions (with TaskObj etc)
  • Reinstate the prelude

  • Get the futures top-level crate compiling

  • Get tests working

    • Start with futures-core, then move to futures-util
  • Reinstate the Future::join combinator

  • Reinstate the Future::select combinator

  • Reinstate the join_all, select_all, select_ok combinators

    • This will require some design work to re-think these combinators given our new error handling approach -- i.e. how to divide with the ones here
  • Reinstate the Future::shared combinator

  • Reinstate the missing Stream combinators

  • Reinstate with_flat_map

  • Figure out how to update the async/await macro code

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions