After the release of v5.8.6, I am returning to suspended work on adding C++20 coroutine support to SObjectizer-5. I hope to complete my experiments within two months (or so) and want to release this functionality in version 5.8.7.
But there is a small problem: SObjectizer-5.8 was a C++17 project, and support for coroutines requires updating the standard to C++20. So, I see several possibilities here:
1. SO-5.8 remains a C++17 project. Coroutines support will only be enabled if a user chooses C++20 or newer. This means that part of the code will be covered with `#if` statements to enable coroutines after C++17. I don't like this approach because it requires extra work and testing.
2. A new branch, 5.9, will be started with an update to C++. This is a slightly better approach, but it also has some minor drawbacks. Releasing SO-5.9 would require copying and pasting a bunch of documents in the wiki, and I want to avoid that boring work. Also, I have no plans to convert SObjectizer into C++ modules this year, because I still don't think module support is sufficiently mature (in compilers, CMake, Doxygen, and so on). Therefore, I think it's not a good idea to launch branch 5.9 without properly modularizing SObjectizer.
3. Switch to C++20 in the 5.8 branch, if this doesn't break source code compatibility with code written for SO-5.8. This approach is the simplest for me because it doesn't involve any additional work.
For the moment, I'm using approach #3, but all the experiments are separated into isolated branches and do not affect the main development branch (or the master branch).
If you have concerns about switching to C++20 for version 5.8.7, please let me know. It would be great if you could tell me what approach would be most suitable for your needs.
--
Вы получили это сообщение, поскольку подписаны на группу "SObjectizer".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес sobjectizer...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/sobjectizer/909110b7-ebc5-4515-bc88-1872b812440cn%40googlegroups.com.
Hi Yauheni!Personally, I have no problems with any of your proposals. The simplest is fine for me (switching in 5.8.7).
I am already on C++20 for all the projects using SObjectizer.
I am just wondering if you use semver. In this case, I think you should do the switch in 6.0.0 :-| (as it's a breaking change).