[PATCH] D108697: [libc++] Remove <experimental/coroutine>

Louis Dionne via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 29 06:19:26 PST 2021


ldionne added a comment.

In D108697#3205928 <https://reviews.llvm.org/D108697#3205928>, @ChuanqiXu wrote:

> @ldionne hi, @Quuxplusone mentioned that <coroutine> would only work under C++20, while there are people who use C++17/C++14 and -fcoroutines-ts combination in practice now. It implies that they have to upgrade to c++20 if they update the libcxx with <experimental/coroutine> removed. I am wondering if this is OK? Or do we need to remove <experimental/coroutine> later? (I guess it would be really long time until the primary user update to C++20.)

We have a policy of removing TSes two releases after we ship the "real" feature. If someone has been writing production code against something in `std::experimental`, they need to be ready to upgrade. So, generally speaking, my stance here would be that these users indeed need to move to C++20 an adopt the real feature. In practice, we can try to accommodate some users by keeping it around for a bit longer, but I wouldn't do that unless someone explicitly requests it and can provide a justification + timeline for moving off. At the end of the day, keeping the experimental version around is not good for anyone, it just delays work that needs to happen nonetheless.

Also note that one thing we should look into is guarding uses of any experimental feature with some compiler flag like `-fexperimental`, which would be documented to make it clear that production code is not to be written with that flag enabled. That would make the contract between us and our users more clear.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D108697/new/

https://reviews.llvm.org/D108697



More information about the llvm-commits mailing list