|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
| #
a73632cf |
| 10-Aug-2022 |
Louis Dionne <[email protected]> |
[libc++] Add missing includes of <cstddef>
(cherry picked from commit b1009bbd9e3d5acd85e92cb7f9a1109d2e72967c)
|
|
Revision tags: llvmorg-15.0.0-rc2 |
|
| #
80f03ecb |
| 04-Aug-2022 |
Nikolas Klauser <[email protected]> |
[libc++][ranges] Implement `ranges::is_permutation`
Co-authored-by: Konstantin Varlamov <[email protected]>
Differential Revision: https://reviews.llvm.org/D127194
(cherry picked from commit 4038
[libc++][ranges] Implement `ranges::is_permutation`
Co-authored-by: Konstantin Varlamov <[email protected]>
Differential Revision: https://reviews.llvm.org/D127194
(cherry picked from commit 4038c859e58c12e997041927a87e880f2f3ef883)
show more ...
|
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
20a11cb5 |
| 24-Jul-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Fix algorithms which use reverse_iterator
This adds a C++20-version of `reverse_iterator` which doesn't SFINAE away the operators for use inside the classic STL algorithms. Pre-C++20 `_AlgR
[libc++] Fix algorithms which use reverse_iterator
This adds a C++20-version of `reverse_iterator` which doesn't SFINAE away the operators for use inside the classic STL algorithms. Pre-C++20 `_AlgRevIter` is just an alias for `reverse_iterator`.
Reviewed By: var-const, #libc
Spies: huixie90, libcxx-commits
Differential Revision: https://reviews.llvm.org/D128864
show more ...
|
| #
101d1e9b |
| 13-Jul-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Implement ranges::find_end, ranges::search{, _n}
Reviewed By: var-const, #libc, huixie90
Spies: thakis, h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews
[libc++] Implement ranges::find_end, ranges::search{, _n}
Reviewed By: var-const, #libc, huixie90
Spies: thakis, h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124079
show more ...
|
| #
1f047593 |
| 13-Jul-2022 |
Nikolas Klauser <[email protected]> |
Revert "[libc++] Implement ranges::find_end, ranges::search{, _n}"
This reverts commit 76a76518507ccc59ccdad5b83f44dc8c3d9593c7.
|
| #
76a76518 |
| 12-Jul-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Implement ranges::find_end, ranges::search{, _n}
Reviewed By: var-const, #libc, huixie90
Spies: h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.or
[libc++] Implement ranges::find_end, ranges::search{, _n}
Reviewed By: var-const, #libc, huixie90
Spies: h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124079
show more ...
|
| #
00927334 |
| 04-Jul-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Use __is_exactly_{input, forward}_iterator
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D128646
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5 |
|
| #
13558334 |
| 10-Jun-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Remove uses of __two in type_traits
Reviewed By: ldionne, #libc
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D127483
|
| #
ef8e9182 |
| 03-Jun-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Forward more often to memmove in copy
In D122982 I accidentally disabled the memmove optimization. This re-enables it and adds more cases where copy forwards to memmove. Fixes https://githu
[libc++] Forward more often to memmove in copy
In D122982 I accidentally disabled the memmove optimization. This re-enables it and adds more cases where copy forwards to memmove. Fixes https://github.com/llvm/llvm-project/issues/33687
Reviewed By: var-const, #libc, ldionne
Spies: pkasting, ayzhao, dcheng, xbolva00, libcxx-commits
Differential Revision: https://reviews.llvm.org/D124328
show more ...
|
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
658957c7 |
| 18-Mar-2022 |
Konstantin Varlamov <[email protected]> |
[libc++][ranges] Implement changes to reverse_iterator from One Ranges Proposal.
Changes in [P0896](https://wg21.link/p0896): - add `disable_sized_sentinel_for`; - add `iter_move` and `iter_swap`; -
[libc++][ranges] Implement changes to reverse_iterator from One Ranges Proposal.
Changes in [P0896](https://wg21.link/p0896): - add `disable_sized_sentinel_for`; - add `iter_move` and `iter_swap`; - add a `requires` clause to the `operator->`; - add `iterator_concept`; - check that the `Iterator` template parameter is a bidirectional iterator; - add constraints to all comparison operators; - change the definitions of `iterator_category`, `value_type`, `difference_type` and `reference` (changes to `iterator_category` were already implemented).
Also add a few forgotten things to the `reverse_iterator` synopsis (notably the spaceship operator).
Differential Revision: https://reviews.llvm.org/D120180
show more ...
|
|
Revision tags: llvmorg-14.0.0 |
|
| #
d2baefae |
| 12-Mar-2022 |
Joe Loser <[email protected]> |
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.
All supported compilers that support C++20 now support concepts. So, remove `_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBC
[libc++] Replace _LIBCPP_HAS_NO_CONCEPTS with _LIBCPP_STD_VER > 17. NFCI.
All supported compilers that support C++20 now support concepts. So, remove `_LIB_LIBCPP_HAS_NO_CONCEPTS` in favor of `_LIBCPP_STD_VER > 17`. Similarly in the tests, remove `// UNSUPPORTED: libcpp-no-concepts`.
Differential Revision: https://reviews.llvm.org/D121528
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
bd441745 |
| 03-Mar-2022 |
Nikolas Klauser <[email protected]> |
[libc++] Use -I instead of -isystem to include headers in the test suite
Using -isystem marks the headers as system headers, which means that we don't actually get all the warnings that we'd normall
[libc++] Use -I instead of -isystem to include headers in the test suite
Using -isystem marks the headers as system headers, which means that we don't actually get all the warnings that we'd normally get if we included the headers as user headers.
The goal of the test suite is normally to mirror as closely as possible how users would use the library. Technically, this change goes against that philosophy, since users should be using `-isystem` (if they ever need to specify the libc++ path explicitly, which should be a rare occurence). However, I believe fishing out additional warnings from the headers provides more value, hence this change. Ideally, we'd be able to still use `-isystem`, but instruct Clang to still emit warnings from the libc++ headers (e.g. we could tell Clang to emit warnings in any file inside `<...>/usr/include/c++/v1`).
Reviewed By: #libc, ldionne, #libc_abi
Spies: Mordante, EricWF, mstorsjo, mgorny, aheejin, arichardson, philnik, jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D118616
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2 |
|
| #
368faaca |
| 28-Feb-2022 |
Louis Dionne <[email protected]> |
[libc++] Revert "Protect users from relying on detail headers" & related changes
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit).
[libc++] Revert "Protect users from relying on detail headers" & related changes
This commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9, which were related to the original commit). As landed, 5aaefa51 had unintended consequences on some downstream bots and didn't have proper coverage upstream due to a few subtle things. Implementing this is something we should do in libc++, however we'll first need to address a few issues listed in https://reviews.llvm.org/D106124#3349710.
Differential Revision: https://reviews.llvm.org/D120683
show more ...
|
| #
5aaefa51 |
| 25-Feb-2022 |
Christopher Di Bella <[email protected]> |
[libcxx][modules] protects users from relying on detail headers
libc++ has started splicing standard library headers into much more fine-grained content for maintainability. It's very likely that ou
[libcxx][modules] protects users from relying on detail headers
libc++ has started splicing standard library headers into much more fine-grained content for maintainability. It's very likely that outdated and naive tooling (some of which is outside of LLVM's scope) will suggest users include things such as <__ranges/access.h> instead of <ranges>, and Hyrum's law suggests that users will eventually begin to rely on this without the help of tooling. As such, this commit intends to protect users from themselves, by making it a hard error for anyone outside of the standard library to include libc++ detail headers.
Differential Revision: https://reviews.llvm.org/D106124
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
fa6b9e40 |
| 02-Feb-2022 |
Arthur O'Dwyer <[email protected]> |
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.
Now we'll notice if a header forgets to include this magic phrase.
Differential Revision: https://reviews.llvm.org/D1188
[libc++] Normalize all our '#pragma GCC system_header', and regression-test.
Now we'll notice if a header forgets to include this magic phrase.
Differential Revision: https://reviews.llvm.org/D118800
show more ...
|
| #
0b5fb7c6 |
| 01-Feb-2022 |
Arthur O'Dwyer <[email protected]> |
[libc++] [NFC] s/__referenceable/__can_reference/
The Standard name for this exposition-only concept is _can-reference_.
Differential Revision: https://reviews.llvm.org/D118726
|
| #
2eb2ff2a |
| 31-Jan-2022 |
Arthur O'Dwyer <[email protected]> |
[libc++] Merge _LIBCPP_HAS_NO_RANGES into _LIBCPP_HAS_NO_CONCEPTS. NFC.
The macro that opts out of `std::ranges::` functionality is called `_LIBCPP_HAS_NO_INCOMPLETE_RANGES`, and is unrelated to thi
[libc++] Merge _LIBCPP_HAS_NO_RANGES into _LIBCPP_HAS_NO_CONCEPTS. NFC.
The macro that opts out of `std::ranges::` functionality is called `_LIBCPP_HAS_NO_INCOMPLETE_RANGES`, and is unrelated to this macro which is specifically about _compiler_ support for the _syntax_.
The only non-mechanical diff here is in `<__config>`.
Differential Revision: https://reviews.llvm.org/D118507
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
| #
b4e88d4d |
| 08-Sep-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Rename _EnableIf to __enable_if_t for consistency
In other places in the code, we use lowercase spelling for things that are not available in prior standards.
Differential Revision: h
[libc++][NFC] Rename _EnableIf to __enable_if_t for consistency
In other places in the code, we use lowercase spelling for things that are not available in prior standards.
Differential Revision: https://reviews.llvm.org/D109435
show more ...
|
| #
64184b4a |
| 26-Aug-2021 |
Louis Dionne <[email protected]> |
[libc++][NFC] Remove useless _LIBCPP_PUSH_MACROS
Only files that actually use min/max are required to do this dance.
Differential Revision: https://reviews.llvm.org/D108778
|
|
Revision tags: llvmorg-13.0.0-rc2 |
|
| #
01666904 |
| 17-Aug-2021 |
Louis Dionne <[email protected]> |
[libc++] Remove workarounds for the lack of deduction guides in C++17
All supported compilers have supported deduction guides in C++17 for a while, so this isn't necessary anymore.
Differential Rev
[libc++] Remove workarounds for the lack of deduction guides in C++17
All supported compilers have supported deduction guides in C++17 for a while, so this isn't necessary anymore.
Differential Revision: https://reviews.llvm.org/D108213
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2 |
|
| #
85966df3 |
| 07-Jun-2021 |
Louis Dionne <[email protected]> |
[libc++] Rename 'and' to '&&'
|
| #
89599e8b |
| 01-Jun-2021 |
zoecarver <[email protected]> |
[libcxx][ranges] Add concepts in range.utility.helpers.
There are no changes to public APIs.
Differential Revision: https://reviews.llvm.org/D103493
|
|
Revision tags: llvmorg-12.0.1-rc1 |
|
| #
fc924887 |
| 19-May-2021 |
Arthur O'Dwyer <[email protected]> |
[libc++] Assume that __wrap_iter always wraps a fancy pointer.
Not only do we conscientiously avoid using `__wrap_iter` for non-contiguous iterators (in vector, string, span...) but also we make the
[libc++] Assume that __wrap_iter always wraps a fancy pointer.
Not only do we conscientiously avoid using `__wrap_iter` for non-contiguous iterators (in vector, string, span...) but also we make the assumption (in regex) that `__wrap_iter<_Iter>` is contiguous for all `_Iter`.
So `__wrap_iter<reverse_iterator<int*>>` should be considered IFNDR, and every `__wrap_iter` should correctly advertise contiguity in C++20.
Drive-by simplify some type traits.
Reviewed as part of https://reviews.llvm.org/D102781
show more ...
|
| #
8110a731 |
| 21-May-2021 |
zoecarver <[email protected]> |
[libcxx][gardening] Re-order includes across libcxx.
This commit alphabetizes all includes in libcxx. This is a NFC.
This can also serve as a pseudo "announcement" for how we should order these hea
[libcxx][gardening] Re-order includes across libcxx.
This commit alphabetizes all includes in libcxx. This is a NFC.
This can also serve as a pseudo "announcement" for how we should order these headers going forward (note: double underscores go before other headers).
Differential Revision: https://reviews.llvm.org/D102941
show more ...
|
| #
57ebf3d0 |
| 22-Apr-2021 |
Louis Dionne <[email protected]> |
[libc++] Re-apply `std::indirectly_readable` and `std::indirectly_writable`
That was originally committed in 04733181b513 and then reverted in a9f11cc0d965 because it broke several people.
The prob
[libc++] Re-apply `std::indirectly_readable` and `std::indirectly_writable`
That was originally committed in 04733181b513 and then reverted in a9f11cc0d965 because it broke several people.
The problem was a missing include of __iterator/concepts.h, which has now been fixed.
Differential Revision: https://reviews.llvm.org/D100073
show more ...
|