NVIDIA / NVIDIA/stdexec

[sequence_senders] item_types_of_t probes sequence item senders with the regular __debug_sender when STDEXEC_ENABLE_EXTRA_TYPE_CHECKING=ON

Open
#2,273 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
2.4k
Forks
270
Avg merge
3d 6h
Merged PRs (30d)
39

Description

Requested by @ericniebler in #2271 — follow-up found while verifying that PR with -DSTDEXEC_ENABLE_EXTRA_TYPE_CHECKING=ON. Fails on pristine main, so it is separate from the fix in #2271.

Description

With extra type checking enabled, item_types_of_t (and its __item_types_of helpers) still route sequence item senders through the regular debug sender machinery (__debug_sender), which calls connect() on them. Sequence senders are not regular senders, so compilation fails with:

no matching function for call to object of type 'stdexec::connect_t'

#2271 fixed the analogous paths (__sequence_receiver_from, subscribe_t::__type_check_arguments) by switching to __sequence_completion_signatures_of_t; the item-type probing paths need the same sequence-aware treatment (or a sequence-aware equivalent of __debug_sender).

Reproduction

Compose an exec::any_sequence_sender pipeline and build with the flag enabled. After #2271, the remaining sequence-test errors under the flag largely come from this path (error counts across the sequence test files drop from 20/58/66 on main to 4/6/16 with #2271).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing item_types_of_t and the __item_types_of helpers, then compare their regular __debug_sender path with the sequence-aware paths named in the issue. Reproduce an exec::any_sequence_sender pipeline with STDEXEC_ENABLE_EXTRA_TYPE_CHECKING=ON and run the sequence test files; done means those probes compile without the connect() error.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
66/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.