pika-org / pika

pika is a C++ tasking library built on std::execution with fibers, CUDA, HIP, and MPI support.
https://pikacpp.org
Boost Software License 1.0
63 stars 10 forks source link

Update stdexec integration with `transfer` renames and `ensure_started`/`start_detached` from pika #1235

Closed msimberg closed 1 month ago

msimberg commented 2 months ago

This PR:

I've kept the transfer and transfer_just tests unchanged still using transfer* so that the aliases are tested. The deprecation warnings are ignored for those tests.

codacy-production[bot] commented 2 months ago

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
:white_check_mark: +0.04% (target: -1.00%) :white_check_mark: 91.67% (target: 90.00%)
Coverage variation details | | Coverable lines | Covered lines | Coverage | | ------------- | ------------- | ------------- | ------------- | | Common ancestor commit (42b27fa3d827b622bf8a0b990859ba29b5a125fa) | 18358 | 13714 | 74.70% | | | Head commit (2d56c1418456bd8ae6e98182668667364ad4986e) | 18356 (-2) | 13719 (+5) | 74.74% (**+0.04%**) | **Coverage variation** is the difference between the coverage for the head and common ancestor commits of the pull request branch: ` - `
Diff coverage details | | Coverable lines | Covered lines | Diff coverage | | ------------- | ------------- | ------------- | ------------- | | Pull request (#1235) | 12 | 11 | **91.67%** | **Diff coverage** is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: `/ * 100%`

See your quality gate settings    Change summary preferences

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

msimberg commented 2 months ago

Original PR description:

Draft. For now I've simply updated the existing configurations to use stdexec but ideally we'd have separate configurations.

Opened because the GCC 14 configuration with stdexec has had some failures recently on split_continuation_clear (https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/479009878135925/5304355110917878/-/jobs/7723123972#L165, https://gitlab.com/cscs-ci/ci-testing/webhook-ci/mirrors/479009878135925/5304355110917878/-/jobs/7680430741#L134; added to #191). The sanitizer configurations use clang so may not reproduce the failure, but testing anyway...

I couldn't really make heads or tails of the sanitizer failure. Since it involves ensure_started and ensure_started has been removed in the latest P2300 revisions, I've stopped investigating the cause and changed the focus of this PR to use pika's implementation of ensure_started instead. Thread sanitizer does not report issues with that implementation.

msimberg commented 1 month ago

LGTM, maybe update the description to just | transfer or transfer(just()) cause it seems to be the other way around :)

Thanks. Indeed just | transfer is what I meant. Updated the description.