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
Uh oh!
There was an error while loading. Please reload this page.
-
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