[all-commits] [llvm/llvm-project] e38b9d: [libc++][ranges] implement `std::ranges::inplace_m...

Tom Stellard via All-commits all-commits at lists.llvm.org
Tue Aug 2 21:50:14 PDT 2022


  Branch: refs/heads/release/15.x
  Home:   https://github.com/llvm/llvm-project
  Commit: e38b9de601b36b26754854fda60b11817fd54b17
      https://github.com/llvm/llvm-project/commit/e38b9de601b36b26754854fda60b11817fd54b17
  Author: Hui Xie <hui.xie1990 at gmail.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/docs/Status/RangesAlgorithms.csv
    M libcxx/include/CMakeLists.txt
    A libcxx/include/__algorithm/algorithm_family.h
    M libcxx/include/__algorithm/inplace_merge.h
    M libcxx/include/__algorithm/ranges_inplace_merge.h
    M libcxx/include/__algorithm/stable_sort.h
    M libcxx/include/algorithm
    M libcxx/include/module.modulemap.in
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
    M libcxx/test/libcxx/private_headers.verify.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.merge/ranges_inplace_merge.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_nonbool_predicates.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_omitting_invoke.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] implement `std::ranges::inplace_merge`

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

(cherry picked from commit 8a61749f767e9af773051fc4f6dc99276fe189e3)


  Commit: 9e126d6fd2628b187ee356e66694df686817e125
      https://github.com/llvm/llvm-project/commit/9e126d6fd2628b187ee356e66694df686817e125
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__algorithm/copy.h
    A libcxx/include/__algorithm/unwrap_range.h
    M libcxx/include/module.modulemap.in
    M libcxx/test/libcxx/private_headers.verify.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/ranges.copy.pass.cpp

  Log Message:
  -----------
  [libc++] Fix unwrapping ranges with different iterators and sentinels

Reviewed By: ldionne, huixie90, #libc

Spies: arichardson, sstefan1, libcxx-commits, mgorny

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

(cherry picked from commit e01b4fe956dd038fed71cf3c552d3383905d022a)


  Commit: b55abcf777c97ab0fb056191ca6a6efdc9e329ce
      https://github.com/llvm/llvm-project/commit/b55abcf777c97ab0fb056191ca6a6efdc9e329ce
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/.clang-format

  Log Message:
  -----------
  [libc++] Fix merge-conflict in .clang-format

(cherry picked from commit d5a3cc1d88d888e38633eb55e2afadb4cf788000)


  Commit: c9905b8cb0139f410ce63081989a328559e11374
      https://github.com/llvm/llvm-project/commit/c9905b8cb0139f410ce63081989a328559e11374
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/include/__algorithm/iterator_operations.h
    A libcxx/test/libcxx/algorithms/bad_iterator_traits.verify.cpp

  Log Message:
  -----------
  [libc++] Make `_IterOps::__iter_move` more similar to `std::ranges::iter_move`.

Avoid relying on `iterator_traits` and instead deduce the return type of
dereferencing the iterator. Additionally, add a static check to reject
iterators with incorrect `iterator_traits` at compile time.

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

(cherry picked from commit b3afea1ce0bd3c9293edae67c1839318eecdd7bf)


  Commit: 6ba660d17410d02f5fa71d878ac49e2fdee4169f
      https://github.com/llvm/llvm-project/commit/6ba660d17410d02f5fa71d878ac49e2fdee4169f
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/src/assert.cpp

  Log Message:
  -----------
  [libc++] Properly log crashes with the assertion handler on older Androids

This reintroduces the same workaround we have in libc++abi for older
Androids based on https://reviews.llvm.org/D130507#inline-1255914.

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

(cherry picked from commit 1422a9689d7907a4561da7b906ec392840d9e635)


  Commit: 62f1e6638158d8848777a29d9d142bb5481c7b67
      https://github.com/llvm/llvm-project/commit/62f1e6638158d8848777a29d9d142bb5481c7b67
  Author: Hui Xie <hui.xie1990 at gmail.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/docs/Status/RangesAlgorithms.csv
    M libcxx/include/__algorithm/adjacent_find.h
    M libcxx/include/__algorithm/iterator_operations.h
    M libcxx/include/__algorithm/ranges_unique.h
    M libcxx/include/__algorithm/ranges_unique_copy.h
    M libcxx/include/__algorithm/unique.h
    M libcxx/include/__algorithm/unique_copy.h
    M libcxx/include/algorithm
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/ranges_unique.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/ranges_unique_copy.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/unique_copy.pass.cpp
    M libcxx/test/std/algorithms/ranges_result_alias_declarations.compile.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_nonbool_predicates.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_omitting_invoke.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] implement `std::ranges::unique{_copy}`

implement `std::ranges::unique` and `std::ranges::unique_copy`

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

(cherry picked from commit 72f57e3a30d597346feec74cf626796b0055680f)


  Commit: 3a55353fc6f941394e6532b8ef5e59924e1ba899
      https://github.com/llvm/llvm-project/commit/3a55353fc6f941394e6532b8ef5e59924e1ba899
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/docs/UsingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__assert
    M libcxx/include/__availability
    A libcxx/include/__verbose_abort
    M libcxx/include/module.modulemap.in
    M libcxx/lib/abi/CHANGELOG.TXT
    M libcxx/lib/abi/arm64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/powerpc64-ibm-aix.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-apple-darwin.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.exceptions.nonew.abilist
    M libcxx/lib/abi/x86_64-unknown-linux-gnu.libcxxabi.v1.stable.noexceptions.nonew.abilist
    M libcxx/src/CMakeLists.txt
    R libcxx/src/assert.cpp
    A libcxx/src/verbose_abort.cpp
    R libcxx/test/libcxx/assertions/customize_handler.backdeployment.pass.cpp
    R libcxx/test/libcxx/assertions/customize_handler.pass.cpp
    A libcxx/test/libcxx/assertions/customize_verbose_abort.backdeployment.pass.cpp
    A libcxx/test/libcxx/assertions/customize_verbose_abort.pass.cpp
    M libcxx/test/libcxx/assertions/debug_mode_compatibility.pass.cpp
    R libcxx/test/libcxx/assertions/default_handler.abort.pass.cpp
    R libcxx/test/libcxx/assertions/default_handler.availability.verify.cpp
    A libcxx/test/libcxx/assertions/default_verbose_abort.availability.verify.cpp
    A libcxx/test/libcxx/assertions/default_verbose_abort.pass.cpp
    R libcxx/test/libcxx/assertions/headers_declare_assertion_handler.sh.cpp
    A libcxx/test/libcxx/assertions/headers_declare_verbose_abort.sh.cpp
    M libcxx/test/support/check_assertion.h
    M libcxx/utils/generate_header_tests.py

  Log Message:
  -----------
  [libc++] Rename __libcpp_assertion_handler to __libcpp_verbose_abort

With the goal of reusing that handler to do other things besides
handling assertions (such as terminating when an exception is thrown
under -fno-exceptions), the name `__libcpp_assertion_handler` doesn't
really make sense anymore.

Furthermore, I didn't want to use the name `__libcpp_abort_handler`,
since that would give the impression that the handler is called
whenever `std::abort()` is called, which is not the case at all.

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

(cherry picked from commit 507125af3d0b953cb56bce2e5b8000249fe1ef53)


  Commit: 36fb543094a5a39e099eae96ab8b213cd8288f1a
      https://github.com/llvm/llvm-project/commit/36fb543094a5a39e099eae96ab8b213cd8288f1a
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/include/__iterator/reverse_iterator.h
    M libcxx/test/std/iterators/predef.iterators/reverse.iterators/types.compile.pass.cpp
    M libcxx/test/support/test_iterators.h

  Log Message:
  -----------
  [libc++] Fix reverse_iterator::iterator_concept

Fixes https://github.com/llvm/llvm-project/issues/56504

Reviewed By: ldionne, Mordante, huixie90, #libc

Spies: libcxx-commits, hewillk

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

(cherry picked from commit 7912b1f8e7c845a97411cbfc176db56861cdf116)


  Commit: 2c766efc7d8c2706f4f6dc05e17c45f51f7acb1a
      https://github.com/llvm/llvm-project/commit/2c766efc7d8c2706f4f6dc05e17c45f51f7acb1a
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/docs/Status/RangesAlgorithms.csv
    M libcxx/include/__algorithm/make_heap.h
    M libcxx/include/__algorithm/make_projected.h
    M libcxx/include/__algorithm/partial_sort.h
    M libcxx/include/__algorithm/partial_sort_copy.h
    M libcxx/include/__algorithm/pop_heap.h
    M libcxx/include/__algorithm/push_heap.h
    M libcxx/include/__algorithm/ranges_inplace_merge.h
    M libcxx/include/__algorithm/ranges_is_heap.h
    M libcxx/include/__algorithm/ranges_is_heap_until.h
    M libcxx/include/__algorithm/ranges_make_heap.h
    M libcxx/include/__algorithm/ranges_nth_element.h
    M libcxx/include/__algorithm/ranges_partial_sort.h
    M libcxx/include/__algorithm/ranges_partial_sort_copy.h
    M libcxx/include/__algorithm/ranges_partition.h
    M libcxx/include/__algorithm/ranges_pop_heap.h
    M libcxx/include/__algorithm/ranges_push_heap.h
    M libcxx/include/__algorithm/ranges_sort.h
    M libcxx/include/__algorithm/ranges_sort_heap.h
    M libcxx/include/__algorithm/ranges_stable_partition.h
    M libcxx/include/__algorithm/ranges_stable_sort.h
    M libcxx/include/__algorithm/ranges_unique.h
    M libcxx/include/__algorithm/ranges_unique_copy.h
    M libcxx/include/__algorithm/sift_down.h
    M libcxx/include/__algorithm/sort_heap.h
    M libcxx/include/algorithm
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_comparators.pass.cpp
    M libcxx/test/libcxx/algorithms/ranges_robust_against_copying_projections.pass.cpp
    M libcxx/test/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/ranges_partial_sort_copy.pass.cpp
    M libcxx/test/std/algorithms/ranges_result_alias_declarations.compile.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_dangling.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_differing_projections.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_nonbool_predicates.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_omitting_invoke.pass.cpp
    M libcxx/test/std/algorithms/ranges_robust_against_proxy_iterators.pass.cpp
    M libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp

  Log Message:
  -----------
  [libc++][ranges] Implement `std::ranges::partial_sort_copy`.

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

(cherry picked from commit db7d7959787ed68f037e2a6e5a70bb0d8c17ab27)


  Commit: 509569419abd7df44fcaab959d48b574045dc81e
      https://github.com/llvm/llvm-project/commit/509569419abd7df44fcaab959d48b574045dc81e
  Author: Konstantin Varlamov <varconst at apple.com>
  Date:   2022-08-02 (Tue, 02 Aug 2022)

  Changed paths:
    M libcxx/docs/Status/RangesAlgorithms.csv

  Log Message:
  -----------
  [libc++][ranges][NFC] Fix a few links on the Ranges status page.

(cherry picked from commit c64c3d31c42869c258ad174d9a754279ef4aa07d)


Compare: https://github.com/llvm/llvm-project/compare/96a26d96c7d4...509569419abd


More information about the All-commits mailing list