-
Notifications
You must be signed in to change notification settings - Fork 478
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cppcoro development seems pretty dead #170
Comments
Yes, I agree. Lewis seems to not have the time at the moment. At the moment every second pull request is solving the same problems again. Just yesterday I started an effort to channel all the good contributions from the pull requests in https://github.com/andreasbuhr/cppcoro, creating one branch for every problem. See the README.md, first section, for a detailed explanation. |
+1 here, I'm currently using (my fork of) cppcoro in some of my projects, and I'd like to see it maintained in the future. Compared to the other mentioned projects, cppcoro is a small project solely focusing on coroutines. @lewissbaker if you do not have the time to maintain the project, maybe it would be better to move the cppcoro repository into an organization, where we could have multiple maintainers? The fork created by @andreasbuhr is already a step into this direction, and by making it into an organization, the development wouldn't stall because one of us doesn't have free time to spend on the project. I'm also willing to be a part of this, as I'd like to see this project improved. As the owner of the current "official" repository, you could even transfer the current repo into this organization. That way anybody who has a current checkout would automatically receive updates from the new location. |
Hi, |
I think the main issue is no compilers is mature enough for coroutines and other c++20 features. You can easily run into lots of weird compiler bugs using them. |
You are right, C++-20 support is not mature yet. But coroutines support is pretty good in the latest releases. And even if there are compiler bugs, we can still fix the problems for which fixes exit. |
Hi, has anyone removed the ::experimental namespace and tested with more recent compilers? |
Hi @rimmartin , in the pull request #171 is a proposal for that. |
ah thanks |
Hi ! Many of us are maintaining our own version of cppcoro for our needs and not sharing this is a mess. I would suggest to create a new project (eg.: opencoro or somthing like this) starting from cppcoro, and, as proposed before to create an organization with anyone wants to maintain the project. Other things I'd like by diverging from cppcoro is that we could use newer standard stuff (eg.: concepts, and later modules) since coroutine are not supposed to be available before c++20. What do you think about this ? |
The king is dead, long live the king! |
Isn't Lewis working on libunifex now? Does libunifex have its own coroutine implementation? You still need a working stackless coroutine implementation to replace cppcoro. Does GCC 11 alpha and Clang 11 (not yet released) have one, with symmetric transfer? Also, since you seem to be familiar with libunifex: if I may ask, how do you actually use it? The examples have no comments saying what they're doing and why the APIs are being composed as they are in those examples, and the API descriptions are, to say the least, sorely lacking in explaining what you do with them. The explanation of what they do doesn't explain what problem "doing that" solves. They say libunifex can be used to build executor and I/O systems (basically, if you wanted, write something like ASIO in libunifex) but offer no examples or their own high level equivalent. The deep call-sequence composed function call style looks cool, but I don't see how real-world logic can be done like that. Things like "do rpc. no response? ok call the backup. still nothing? ok, mark as dead, report problem to monitoring system for human followup, then return an error". |
You may be interested in lewissbaker/generator@a44c0a8 |
I want to get started using coroutines and since unfortunately a bit of boilerplate is required to use them at all, I wanted to use a library. Is there a maintained de-facto alternative to this library now? If so, could someone link it please? |
I've used a lot of languages, java, kotlin, csharp, golang, python, js, cpp, and now all of them have a coroutine mode (java is my own implementation). But c++'s coroutine is really bad (both complex and rudimentary, with the name of flexibility). I've found that this library meets the vast majority of my needs for coroutine, but asio is much more widely used. The worst part is that this library is not compatible with asio. I can't co_await cppcoro's task in asio's coroutine. Does anyone know how to make them work well together? |
Maybe you could test this library |
If @lewissbaker decide to stop actively maintain this repo, anyone would like to keep it going?
This is the most promising coro library till now I have seen, thanks for the great work!
I saw new PR's for cmake/gcc/network support, it'll never get merged if no experts are actively taking in charge of this repo.
What I searched from reddit:
[fake_ben] cppcoro development seems pretty dead, wouldn't recommend that one. The only thing I'm able to use it for is generators.
[lewissbaker] My apologies, I haven't been spending a lot of time on cppcoro lately.
I'm glad at least the generators is useful for you :)
I still try to merge contributions where possible.
Most of my more recent coroutine developments have been in folly::coro (the coroutine support parts of folly) and more recently in libunifex, which I believe has some better foundations for an async framework than cppcoro.
The text was updated successfully, but these errors were encountered: