Nikolas Klauser
3cd4531b9b
[libc++] Granularize <iterator> includes
...
Reviewed By: ldionne, #libc
Spies: libcxx-commits, wenlei
Differential Revision: https://reviews.llvm.org/D127445
2022-06-10 22:43:57 +02:00
Nikolas Klauser
ff6d5dee71
[libc++] Implement ranges::replace{, _if}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D126283
2022-06-10 11:54:46 +02:00
Nikolas Klauser
916e9052ba
[libc++] Implement ranges::adjacent_find
...
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D126610
2022-06-08 12:15:03 +02:00
Nikolas Klauser
b79b2b6772
[libc++] Implement ranges::find_first_of
...
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D126529
2022-06-06 22:29:02 +02:00
Nikolas Klauser
8171586176
[libc++][ranges] Implement ranges::binary_search and ranges::{lower, upper}_bound
...
Reviewed By: Mordante, var-const, ldionne, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121964
2022-06-06 13:33:18 +02:00
Nikolas Klauser
11e3ad299f
[libc++] Implement ranges::is_sorted{, _until}
...
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D125608
2022-05-27 10:28:44 +02:00
Nikolas Klauser
0e3dc1a52f
[libc++] Implement ranges::{all, any, none}_of
...
Reviewed By: ldionne, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123016
2022-05-26 16:50:08 +02:00
Nikolas Klauser
569d663020
[libc++] Implement ranges::equal
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123681
2022-05-26 10:46:54 +02:00
Nikolas Klauser
7af89a379c
[libc++] Implement ranges::fill{, _n}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123462
2022-05-25 10:27:13 +02:00
Nikolas Klauser
1d1a191edc
[libc++] Implement ranges::reverse
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D125752
2022-05-24 10:33:57 +02:00
Nikolas Klauser
40f7fca3d9
[libc++] Add ranges::max_element to the synopsis and ADL-proof the __min_element_impl calls
...
Reviewed By: ldionne, #libc
Spies: sstefan1, libcxx-commits
Differential Revision: https://reviews.llvm.org/D126167
2022-05-23 20:50:04 +02:00
Nikolas Klauser
37ba1b9d1a
[libc++] Implement ranges::is_partitioned
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124440
2022-05-06 13:02:38 +02:00
Nikolas Klauser
80045e9afa
[libc++] Implement ranges::for_each{, _n}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124332
2022-05-04 20:28:01 +02:00
Nikolas Klauser
a83f4b9cda
[libc++] Remove <functional> includes
...
Reviewed By: var-const, #libc, ldionne
Spies: #libc_vendors, ldionne, libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D124123
2022-04-26 08:54:37 +02:00
Nikolas Klauser
faef447e72
[libc++] Granularize <functional> includes
...
Reviewed By: Mordante, #libc
Spies: libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D123912
2022-04-20 22:49:18 +02:00
Nikolas Klauser
1d83750f63
[libc++] Implement ranges::copy{, _n, _if, _backward}
...
Reviewed By: Mordante, var-const, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122982
2022-04-15 13:44:11 +02:00
Nikolas Klauser
58d9ab70ae
[libc++][ranges] Implement ranges::minmax and ranges::minmax_element
...
Reviewed By: var-const, #libc, ldionne
Spies: sstefan1, ldionne, BRevzin, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D120637
2022-04-14 15:37:22 +02:00
Nikolas Klauser
1306b1025c
[libc++][ranges] Implement ranges::count{, _if}
...
Reviewed By: var-const, Mordante, ldionne, #libc
Spies: tcanens, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121523
2022-04-07 15:18:14 +02:00
Nikolas Klauser
3ba8548c8e
[libc++][ranges] Implement ranges::transform
...
Reviewed By: ldionne, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122173
2022-04-05 11:06:28 +02:00
Nikolas Klauser
e476df5629
[libc++][ranges] Implement ranges::max
...
Reviewed By: Mordante, var-const, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122002
2022-04-03 17:04:56 +02:00
Louis Dionne
385cc25a53
[libc++] Ensure that all public C++ headers include <__assert>
...
This patch changes the requirement for getting the declaration of the
assertion handler from including <__assert> to including any public
C++ header of the library. Note that C compatibility headers are
excluded because we don't implement all the C headers ourselves --
some of them are taken straight from the C library, like assert.h.
It also adds a generated test to check it. Furthermore, this new
generated test is designed in a way that will make it possible to
replace almost all the existing test-generation scripts with this
system in upcoming patches.
Differential Revision: https://reviews.llvm.org/D122506
2022-03-30 15:05:31 -04:00
Nikolas Klauser
f83d833e41
[libc++][ranges] Implement ranges::min
...
Reviewed By: var-const, Mordante, #libc
Spies: jwakely, ldionne, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D119589
2022-03-18 12:52:21 +01:00
Nikolas Klauser
1458458b55
[libc++] Remove <utility> includes
...
Reviewed By: ldionne, Quuxplusone, #libc
Spies: libcxx-commits, arphaman
Differential Revision: https://reviews.llvm.org/D121054
2022-03-17 00:12:33 +01:00
Nikolas Klauser
ee0f8c4010
[libc++][ranges] Implement ranges::find{, _if, _if_not}
...
Reviewed By: var-const, #libc, ldionne
Spies: ldionne, tcanens, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121248
2022-03-12 01:46:02 +01:00
Nikolas Klauser
c2cd15a665
[libc++][ranges] Implement ranges::mismatch
...
Implement `ranges::mismatch`
Reviewed By: Quuxplusone, ldionne, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117817
2022-03-08 23:20:40 +01:00
Nikolas Klauser
205557c908
[libc++][ranges] Implement ranges::max_element
...
Implement ranges::max_element
Reviewed By: Quuxplusone, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117523
2022-03-07 17:11:23 +01:00
Nikolas Klauser
52915d78f4
[libc++] Granularize <utility> includes
...
Reviewed By: ldionne, #libc
Spies: EricWF, libcxx-commits, arphaman
Differential Revision: https://reviews.llvm.org/D120466
2022-03-05 19:31:46 +01:00
Nikolas Klauser
68f4131c94
[libc++][ranges] Add ranges::in_found_result
...
Reviewed By: Quuxplusone, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D119763
2022-02-21 23:08:14 +01:00
Nikolas Klauser
807766be3a
[libc++][ranges] Add ranges::min_max_result
...
Reviewed By: Quuxplusone, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D119751
2022-02-21 22:52:01 +01:00
Nikolas Klauser
3b470d1ce9
[libc++][ranges] Implement ranges::min_element
...
Implement ranges::min_element
Reviewed By: Quuxplusone, Mordante, #libc
Spies: miscco, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117025
2022-02-11 17:20:27 +01:00
Nikolas Klauser
1e77b396ff
[libc++] Add ranges::in_fun_result
...
Add `ranges::in_fun_result`
Reviewed By: Quuxplusone, #libc, var-const
Spies: CaseyCarter, var-const, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D116974
2022-02-11 17:10:29 +01:00
Nikolas Klauser
9d90531904
[libc++][ranges] Implement std::ranges::swap_ranges()
...
Implement `std::ranges::swap_ranges()`
Reviewed By: Quuxplusone, #libc, ldionne
Spies: ldionne, mgorny, jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D116303
2022-02-10 16:01:45 +01:00
Arthur O'Dwyer
ea2206d70d
[libc++] Replace includes of <utility> with specific detail headers
...
Basically a rebase of D104980; most of that patch had already happened
via gradual drive-by changes, but this finishes it up.
Don't touch the inclusions from `<__functional_base>`, `<__hash_table>`,
or `<__locale>`; those could be removed if we propagated the
inclusions up to the includers of those files, but there are lots
of those includers.
`<algorithm>`, `<functional>`, and `<memory>` already include `<utility>`
at the top level. `<iterator>` did not, so I've added it there.
Differential Revision: https://reviews.llvm.org/D119020
2022-02-04 17:08:32 -05:00
Arthur O'Dwyer
fa6b9e4010
[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
2022-02-04 12:27:19 -05:00
Nikolas Klauser
610979b301
[libc++][ranges] Add ranges::in_out_out_result
...
Add `ranges::in_out_out_result`
Reviewed By: Quuxplusone, Mordante, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D118634
2022-02-03 02:17:48 +01:00
Nikolas Klauser
f3514af492
[libc++][ranges] Add ranges::in_in_out_result
...
Add `ranges::in_in_out_result`
Reviewed By: Quuxplusone, Mordante, #libc
Spies: CaseyCarter, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117512
2022-01-31 16:33:45 +01:00
Nikolas Klauser
d3729bb384
[libc++][ranges] Add ranges::in_in_result
...
Add `std::ranges::in_in_result`
Reviewed By: Quuxplusone, Mordante, #libc
Spies: ldionne, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D116278
2022-01-14 02:56:33 +01:00
Konstantin Varlamov
8d23b7420c
[libc++][ranges] Implement `uninitialized_copy{,_n}` and `uninitialized_move{,_n}`.
...
Also implement `in_out_result` which is a prerequisite.
Differential Revision: https://reviews.llvm.org/D116023
2022-01-10 22:49:50 -08:00
Arthur O'Dwyer
4d81a46f7f
[libc++] Alphabetize header #includes. NFCI.
...
The NFC part of D116809. We still want to enforce this in CI,
but the mechanism for that is still to-be-determined.
Differential Revision: https://reviews.llvm.org/D116809
2022-01-10 16:30:38 -05:00
Nikolas Klauser
cf54cb2e03
[libc++][NFC] Remove duplicate header includes from <algorithm> and reorder them
...
Remove duplicate header includes from `<algorithm>` and reorder the includes
Reviewed By: Quuxplusone, ldionne, Mordante, #libc, jloser
Spies: jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D116507
2022-01-05 09:06:53 +01:00
Louis Dionne
eb8650a757
[runtimes][NFC] Remove filenames at the top of the license notice
...
We've stopped doing it in libc++ for a while now because these names
would end up rotting as we move things around and copy/paste stuff.
This cleans up all the existing files so as to stop the spreading
as people copy-paste headers around.
2021-11-17 16:30:52 -05:00
Louis Dionne
64184b4af0
[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
2021-08-27 12:41:55 -04:00
Christopher Di Bella
6adbc83ee9
[libcxx][modularisation] moves <utility> content out of <type_traits>
...
Moves:
* `std::move`, `std::forward`, `std::declval`, and `std::swap` into
`__utility/${FUNCTION_NAME}`.
* `std::swap_ranges` and `std::iter_swap` into
`__algorithm/${FUNCTION_NAME}`
Differential Revision: https://reviews.llvm.org/D103734
2021-06-24 17:57:29 +00:00
Louis Dionne
134723edd5
[libcxx] Move all algorithms into their own headers
...
This is a fairly mechanical change, it just moves each algorithm into
its own header. This is intended to be a NFC.
This commit re-applies 7ed7d4ccb8
, which was reverted in 692d7166f7
because the Modules build got broken. The modules build has now been
fixed, so we're re-committing this.
Differential Revision: https://reviews.llvm.org/D103583
Attribution note
----------------
I'm only committing this. This commit is a mix of D103583, D103330 and
D104171 authored by:
Co-authored-by: Christopher Di Bella <cjdb@google.com>
Co-authored-by: zoecarver <z.zoelec2@gmail.com>
2021-06-19 07:49:06 -04:00
Petr Hosek
692d7166f7
Revert "[libcxx][gardening] Move all algorithms into their own headers."
...
This reverts commit 7ed7d4ccb8
as it
uncovered a Clang bug PR50592.
2021-06-07 17:15:20 -07:00
zoecarver
7ed7d4ccb8
[libcxx][gardening] Move all algorithms into their own headers.
...
This is a fairly mechanical change, it just moves each algorithm into its own header. This is a NFC.
Note: during this change, I burned down all the includes, so this follows "include only and exactly what you use."
Differential Revision: https://reviews.llvm.org/D103583
2021-06-04 09:37:12 -07:00
Louis Dionne
05d164b25c
Revert "[libc++] NFC: Move unwrap_iter to its own header"
...
This reverts commit 924ea3bb53
*again*, this time because it broke the
LLDB build with modules. We need to figure out what's up with the libc++
modules build once and for all.
Differential Revision: https://reviews.llvm.org/D103369
2021-06-02 15:58:27 -04:00
Louis Dionne
924ea3bb53
[libc++] NFC: Move unwrap_iter to its own header
...
This re-applies 9968896cd6
, which was reverted in b13edf6e90
because
it broke the build.
Differential Revision: https://reviews.llvm.org/D103369
2021-06-01 21:46:59 -04:00
Arthur O'Dwyer
bfbd73f87d
[libc++] Alphabetize and include-what-you-use. NFCI.
...
Differential Revision: https://reviews.llvm.org/D102781
2021-05-29 19:54:48 -04:00
Mark de Wever
b13edf6e90
Revert "[libc++] NFC: Move unwrap_iter to its own header"
...
This reverts commit 9968896cd6
.
This commit seems to cause the build failures of main.
2021-05-29 09:50:26 +02:00