`STDEXEC_ENABLE_EXTRA_TYPE_CHECKING` no longer checks senders in `connect` (since #1809)
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- cmake, cpp
- Área
- build-system, devtools
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 2.5k
- Forks
- 285
- Merge medio
- 2 d 5 h
- PR fusionados (30 d)
- 85
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA/stdexec
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
NVIDIA/stdexec#1751 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 Más de una semana Aptitud para principiantes 18/100
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 18/100
NVIDIA/stdexec#2402 · 3 comentarios ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-3 horas Aptitud para principiantes 25/100
NVIDIA/stdexec#2400 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
sequence: missing transition (?)Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
NVIDIA/stdexec#2344 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
Todos los issues de NVIDIA/stdexec
Issues similares
-
bug libcudf
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
level/task module/cloud monitoring type/maintenance
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
LadybirdBrowser/ladybird#13809 ·
Los mantenedores suelen responder en 1 día
-
bug module:nodes tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
rocketride-org/rocketride-server#3020 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 9 días