[all-commits] [llvm/llvm-project] 2e6ae1: [libcxx] [Coroutine] Conform Coroutine Implementation

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Mon Nov 15 22:15:39 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 2e6ae1d3f2de1aa96ace695ddd6dc58ef259e248
      https://github.com/llvm/llvm-project/commit/2e6ae1d3f2de1aa96ace695ddd6dc58ef259e248
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2021-11-16 (Tue, 16 Nov 2021)

  Changed paths:
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/docs/Status/Cxx20Issues.csv
    M libcxx/docs/Status/SpaceshipProjects.csv
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__config
    A libcxx/include/__coroutine/coroutine_handle.h
    A libcxx/include/__coroutine/coroutine_traits.h
    A libcxx/include/__coroutine/noop_coroutine_handle.h
    A libcxx/include/__coroutine/trivial_awaitables.h
    A libcxx/include/coroutine
    M libcxx/include/experimental/__config
    M libcxx/include/experimental/coroutine
    M libcxx/include/module.modulemap
    M libcxx/include/version
    A libcxx/test/libcxx/diagnostics/detail.headers/coroutine/coroutine_handle.module.verify.cpp
    A libcxx/test/libcxx/diagnostics/detail.headers/coroutine/coroutine_traits.module.verify.cpp
    A libcxx/test/libcxx/diagnostics/detail.headers/coroutine/noop_coroutine_handle.module.verify.cpp
    A libcxx/test/libcxx/diagnostics/detail.headers/coroutine/trivial_awaitables.module.verify.cpp
    M libcxx/test/libcxx/double_include.sh.cpp
    A libcxx/test/libcxx/inclusions/coroutine.inclusions.compile.pass.cpp
    M libcxx/test/libcxx/min_max_macros.compile.pass.cpp
    M libcxx/test/libcxx/no_assert_include.compile.pass.cpp
    M libcxx/test/std/experimental/language.support/support.coroutines/end.to.end/generator.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.capacity/operator_bool.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.compare/equal_comp.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.compare/less_comp.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.completion/done.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.con/assign.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.con/construct.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.export/address.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.export/from_address.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.noop/noop_coroutine.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.prom/promise.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.resumption/destroy.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/coroutine.handle.resumption/resume.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.handle/void_handle.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.traits/promise_type.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.trivial.awaitables/suspend_always.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/coroutine.trivial.awaitables/suspend_never.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/await_result.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/bool_await_suspend.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/expected.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/fullexpr-dtor.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/generator.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/go.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/multishot_func.pass.cpp
    A libcxx/test/std/language.support/support.coroutines/end.to.end/oneshot_func.pass.cpp
    A libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
    R libcxx/test/support/coroutine_types.h
    M libcxx/utils/generate_feature_test_macro_components.py
    M libcxx/utils/generate_header_inclusion_tests.py
    M libcxx/utils/generate_header_tests.py
    M libcxx/utils/libcxx/test/features.py

  Log Message:
  -----------
  [libcxx] [Coroutine] Conform Coroutine Implementation

Since coroutine is merged in C++ standard and the support for coroutine
seems relatively stable. It's the time to move the implementation of
coroutine out of the experimental directory and the std::experimental
namespace. This patch creates header <coroutine> with conformed
implementation with C++ standard. To avoid breaking user's code too
fast, the <experimental/coroutine> header is remained. Note that
<experimental/coroutine> is deprecated and it would be removed in
LLVM15.

Reviewed By: Quuxplusone, ldionne

Differential Revision: https://reviews.llvm.org/D109433




More information about the All-commits mailing list