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

Convert std::execution functionality to use member functions instead of tag_invoke #1204

Open
6 tasks
msimberg opened this issue Jul 24, 2024 · 0 comments
Open
6 tasks
Labels
category: senders/receivers P2300 effort: 3 A few days of work. effort: 4 A few weeks of work. priority: medium This should be done sooner or later. type: cleanup type: refactoring

Comments

@msimberg
Copy link
Contributor

msimberg commented Jul 24, 2024

Later versions of stdexec support both tag_invoke and member functions, but the standard will use member functions only. We should try to migrate to use member functions only where it makes sense with reasonable backwards compatibility to the old C++17 implementation in pika.

The following CPOs and customizations can be translated quite simply:

Sender adaptor customization we currently still do with tag_invoke, but this is not an as straightforward translation. E.g. tag_invoke(bulk_t, thread_pool_scheduler, ...) would need to be translated to transform_sender(thread_pool_scheduler_domain, bulk_sender). We don't have domains implemented for schedulers yet, so we'd need that before tackling this.

@msimberg msimberg added effort: 3 A few days of work. effort: 4 A few weeks of work. priority: medium This should be done sooner or later. type: refactoring category: senders/receivers P2300 type: cleanup labels Jul 24, 2024
@msimberg msimberg added this to the 0.29.0 milestone Sep 4, 2024
@msimberg msimberg moved this from Backlog to Todo in pika planning board Sep 4, 2024
@msimberg msimberg removed this from the 0.29.0 milestone Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: senders/receivers P2300 effort: 3 A few days of work. effort: 4 A few weeks of work. priority: medium This should be done sooner or later. type: cleanup type: refactoring
Projects
Development

No branches or pull requests

1 participant