The abysmal diagnostic message problem and the lack of proper documentation making this library extremely unfriendly to newcomers #1479
SidneyCogdill
started this conversation in
General
Replies: 2 comments 2 replies
-
thank you for raising this issue, you're absolutely right. this should have a better diagnostic that guides the user to toward writing a correct sender. I have converted this discussion into an issue to track it: #1480 |
Beta Was this translation helpful? Give feedback.
0 replies
-
i think #1504 improved the situation. can you give it a shot and let me know if there are additional diagnostic improvements you'd like to see? |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
If I were to write a new coroutine primitive type, I can start with the following prototype code:
This won't work, but the compiler will happily point out the missing piece:
This function cannot be a coroutine: 'std::coroutine_traits<A>' has no member named 'promise_type'
. I add thepromise_type
and the error message changes toNo member named 'return_void' in 'A::promise_type'
and etc. I fix all the compile time errors and I already got a bare minimal working coroutine primitive type, without needing to resort to documentation once:It's definitively still a long way from being actually useful, but the bootstrap parts can be mostly guided by the diagnostic messages.
This is not the case with stdexec. If I write prototype code in the same way:
I get completely nonsense and useless diagnostic messages:
It doesn't tell me what is missing at all. And I don't see a proper documentation properly specifying it either.
the proxy library by Mingxin recently got a new PR which greatly improved the diagnostic messages: microsoft/proxy#262. Perhaps stdexec could use a similar improvement?
Beta Was this translation helpful? Give feedback.
All reactions