`STDEXEC_ENABLE_EXTRA_TYPE_CHECKING` no longer checks senders in `connect` (since #1809)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- cmake, cpp
- Domaine
- build-system, devtools
Piste de recherche
The check lives in connect_t::operator() and the debug receiver __debug::__receiver. The any_sender failure is in test/exec/test_any_sender.cpp, at the __nothrow_move_constructible assert in __fwd in __env.hpp. The CMake SYSTEM include setting is the other part. First the maintainers must decide whether the flag should keep working. If it should, done means the mismatched-completion case warns through connect, the any_sender test compiles with the flag on, and a build-failure test exists.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
With STDEXEC_ENABLE_EXTRA_TYPE_CHECKING, connect used to instantiate completion_signatures_of_t for the sender it connects, so __debug_sender warned when a sender completes with something it did not declare. That came from #1070 (for #1065). The new connect from #1809 no longer does this, so now only code that names completion_signatures_of_t gets the check.
Example: a sender that declares set_value_t(int) but completes with set_value(std::move(rcvr), v), where v is an int lvalue. Compiled with -I<stdexec>/include -DSTDEXEC_ENABLE_EXTRA_TYPE_CHECKING, with GCC 12 and Clang 21:
sync_wait(sndr) |
let_value(sndr, f) |
completion_signatures_of_t<Sndr> |
|
|---|---|---|---|
| before #1809 (6d568715~1) | warning | warning | warning |
| #1809 and main (e780d360) | no warning | no warning | warning |
I tried to put the check back into connect_t::operator(), and found two more things:
- With the flag on, that breaks
test/exec/test_any_sender.cppwith GCC 12 and Clang 21.when_anyinside anany_senderthen gets connected to__debug::__receiver, andstatic_assert(__nothrow_move_constructible<_Env>)in__fwd(__env.hpp) fails for the type-erased receiver environment. Main compiles that file with the flag on. - Since ca3797c3, the CMake target adds the include directory as
SYSTEM. GCC and Clang don't report warnings from system headers, so with-isysteminstead of-Inone of the cases above warn, also before #1809. So CMake users don't see these warnings at all.
Is the flag still meant to work? If yes, I'd be happy to make a PR that restores the check in connect, makes it work with any_sender, and adds a build-failure test. For the SYSTEM part, one option is to not mark the include directory SYSTEM when STDEXEC_ENABLE_EXTRA_TYPE_CHECKING is ON. If you'd rather drop the flag, that's fine too.
Claude (Anthropic) was used as assistant.
- Langage dominant
- C++
- Étoiles
- 2.5k
- Forks
- 284
- Merge moyen
- 2 j 32 min
- PR mergées (30 j)
- 88
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NVIDIA/stdexec
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
NVIDIA/stdexec#1751 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
exec::start_now: request_stop() on the storage does not reach the sendersPeut-être pris @Nas01010101 l’a pris aujourd’hui. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 1-2 jours Accessibilité débutants 45/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 Plus d'une semaine Accessibilité débutants 18/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 18/100
NVIDIA/stdexec#2402 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de NVIDIA/stdexec
Issues similaires
-
documentation enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
QuantStack/git2cpp#203 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
BaptisteHudyma/Lamp-Da#588 ·
Les mainteneurs répondent en général sous 1 jour
-
bug macOS networking
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
docling-project/docling-parse#448 ·
Les mainteneurs répondent en général sous 5 jours