Rust: Re-land "add IntoFuture trait and support for await"

Created on 7 Jan 2020  路  11Comments  路  Source: rust-lang/rust

65244 was reverted in https://github.com/rust-lang/rust/pull/67768 for performance reasons (see https://github.com/rust-lang/rust/issues/67706). This issue tracks re-landing the support in a more performant way.

Tracking issue for IntoFuture trait: https://github.com/rust-lang/rust/issues/67644

cc @seanmonstar @wesleywiser


A-async-await AsyncAwait-OnDeck AsyncAwait-Triaged C-enhancement T-compiler T-lang T-libs

Most helpful comment

The linked PR has been merged and it looks like the async/await benchmark received quite a nice boost.

Is it blocked on https://github.com/rust-lang/rust/issues/68864 to make progress?

All 11 comments

Sorry for my lack of rustc internal knowledge, is there any hint or guess at why it was slower?

I don't think anyone knows for sure at this point. https://github.com/rust-lang/rust/issues/67706 mentions normalize_ty_after_erasing_regions as the query that regressed.

cc @rust-lang/wg-traits

In the @rust-lang/wg-async-await meeting we agreed that this was a nice to have, but would be good to get it over the finish line. Tagging this as OnDeck, because we'd like to look into it while people still remember the implementation details.

The same query regressed by 10% in https://github.com/rust-lang/rust/pull/68524, also without being invoked more often.

68606 alleges to unblock this issue, would anyone like to benchmark an un-reversion to see whether or not that's true?

I made further perf improvements in https://github.com/rust-lang/rust/pull/68672, so we can also wait until that lands.

The linked PR has been merged and it looks like the async/await benchmark received quite a nice boost.

Is it blocked on https://github.com/rust-lang/rust/issues/68864 to make progress?

I don't think it would be blocked on #68864, but maybe I'm missing something. Seems like we should re-open the PR and then maybe do some perf comparisons.

It has been reopened as https://github.com/rust-lang/rust/pull/68811. According to perf there's still a compile time regression of up to ~6% present.

@rustbot assign @yoshuawuyts

Who was interested in getting at least the (unstable) trait merged. It'd be nice to do another perf run with the async/await integration, also.

@rustbot release-assignment

The trait has been merged in #72459, so this issue remains to track actual integration with .await.

Was this page helpful?
0 / 5 - 0 ratings