Arthur O'Dwyer
38812f4ac1
[libc++] [P1614] Implement std::compare_three_way_result.
...
Differential Revision: https://reviews.llvm.org/D103581
2021-08-18 10:01:24 -04:00
zoecarver
df324bba5c
[libcxx][ranges] Add `ranges::join_view`.
...
Differential Revision: https://reviews.llvm.org/D107671
2021-08-13 11:31:08 -07:00
zoecarver
7b20e05c71
[libcxx][ranges] Add `ranges::iota_view`.
...
Differential Revision: https://reviews.llvm.org/D107396
2021-08-13 11:31:08 -07:00
zoecarver
4ac87e3378
[libcxx][ranges] Add `unreachable_sentinel`.
...
Differential Revision: https://reviews.llvm.org/D107920
2021-08-12 10:11:27 -07:00
Louis Dionne
89a7bdb1f3
[libc++] Add the __bind_back and __compose helpers
...
Those are going to be used to implement range adaptors,
see D107098 for details.
Differential Revision: https://reviews.llvm.org/D107785
2021-08-11 10:08:20 -04:00
Arthur O'Dwyer
58915667d0
[libc++][modularisation] Split up <concepts> into granular headers.
...
This is the complete split of <concepts>, with nothing left in the main header.
Differential Revision: https://reviews.llvm.org/D107584
2021-08-10 22:02:41 -04:00
zoecarver
f9e58f35e9
[libcxx][ranges] Add `views::counted` CPO.
...
Differential Revision: https://reviews.llvm.org/D106923
2021-08-10 16:42:28 -07:00
zoecarver
9d982c67ba
[libcxx][ranges] Add `ranges::reverse_view`.
...
Differential Revision: https://reviews.llvm.org/D107096
2021-08-09 15:09:59 -07:00
zoecarver
481ad59b9f
[libcxx][ranges] Add `std::ranges::single_view`.
...
Differential Revision: https://reviews.llvm.org/D106840
2021-07-30 10:53:20 -07:00
Ruslan Arutyunyan
61c35fb0c2
[libc++][modularisation] Split <compare> into internal headers.
...
Differential Revision: https://reviews.llvm.org/D106107
2021-07-28 22:28:26 -04:00
zoecarver
0f4b41e038
[libcxx][ranges] Add ranges::take_view.
...
Differential Revision: https://reviews.llvm.org/D106507
2021-07-28 12:14:21 -07:00
zoecarver
8a48e6dda9
[libcxx][ranges] Add `counted_iterator`.
...
Differential Revision: https://reviews.llvm.org/D106205
2021-07-27 15:50:11 -07:00
zoecarver
e5d8b93e5a
[libcxx][ranges] Add `ranges::common_view`.
...
Differential Revision: https://reviews.llvm.org/D105753
2021-07-23 09:08:49 -07:00
Louis Dionne
3959c95deb
[libc++] Add helper type non-propagating-cache
...
Differential Revision: https://reviews.llvm.org/D102121
2021-07-22 14:30:16 -04:00
Christopher Di Bella
74fd3cb8cd
[libcxx][ranges] implements dangling, borrowed_iterator_t, borrowed_subrange_t
...
* Implements part of P0896 'The One Ranges Proposal'
* Implements http://wg21.link/range.dangling
Reviewed By: zoecarver
Differential Revision: https://reviews.llvm.org/D105205
2021-07-21 21:34:13 +00:00
zoecarver
1a29403d2f
[libcxx][ranges] Add common_iterator.
...
Differential Revision: https://reviews.llvm.org/D103335
2021-07-20 08:12:44 -07:00
zoecarver
0e09a41b41
[libcxx][ranges] Add `ranges::transform_view`.
...
Reviewed By: cjdb, ldionne, #libc
Differential Revision: https://reviews.llvm.org/D103056
2021-07-09 10:13:57 -07:00
Mark de Wever
321c2ea91c
[libc++][NFC] Move monostate to its own header.
...
The format library uses `std::monostate`, but not a `std::variant`.
Moving `std::monostate` to its own header allows the format library to
reduce the amount of included code.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D105582
2021-07-08 17:35:26 +02:00
Louis Dionne
6829db727e
[libc++] Implement copyable-box from Ranges
...
Differential Revision: https://reviews.llvm.org/D102135
2021-07-07 06:14:24 -04:00
Louis Dionne
5d2511c389
[libc++] NFC: Sort header lists and remove outdated comments in modulemap
2021-07-06 14:45:52 -04:00
Christopher Di Bella
8517a26d44
[libcxx][modularisation] splices `<iterator>` into individual headers
...
Differential Revision: https://reviews.llvm.org/D105076
2021-07-06 17:59:21 +00:00
Louis Dionne
681aa574c0
[libc++] NFC: Sort headers in CMakeLists.txt
2021-07-05 09:25:15 -04:00
Christopher Di Bella
050b064f15
[libcxx][functional][modular] splices <functional> into modular headers
...
Differential Revision: https://reviews.llvm.org/D104942
2021-07-01 14:01:49 -04:00
Louis Dionne
d03aa7d6b6
[libc++] NFCI: Remove __functional/search.h
...
The __search helper function was once split into __functional for circular
dependency reasons, however this is not an issue anymore now that we have
finer grained headers.
2021-06-29 11:40:47 -04:00
Louis Dionne
f32f3db9fc
[libc++] Split the various iterator types out of <iterator>
...
Differential Revision: https://reviews.llvm.org/D104669
2021-06-28 12:25:40 -04:00
Christopher Di Bella
69d5a66621
[libcxx][modularisation] splits `<utility>` into self-contained headers
...
* moves `std::hash` and `std::unary_function` into `__functional`
* Everything else goes into `__utility/${NAME}.h`
Differential Revision: https://reviews.llvm.org/D104002
2021-06-25 00:29:01 +00: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
zoecarver
560170fa2d
[libcxx][views] Add drop_view.
...
The first view in the libc++ ranges library 🚀
Differential Revision: https://reviews.llvm.org/D102037
2021-06-23 10:10:50 -07:00
zoecarver
40d6d2c49d
[libcxx][ranges] Add `ranges::iter_swap`.
...
Differential Revision: https://reviews.llvm.org/D102809
2021-06-22 09:52:40 -07: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
zoecarver
c820b494d6
[libcxx][ranges] Implement views::all.
...
Differential Revision: https://reviews.llvm.org/D102028
2021-06-14 10:41:00 -04:00
zoecarver
7eba4856c7
[libcxx][ranges] Add class ref_view.
...
Differential Revision: https://reviews.llvm.org/D102020
2021-06-11 11:02:39 -07:00
Louis Dionne
c54d3050f7
[libc++] NFC: Move indirect_concepts.h to __iterator/concepts.h
...
There's no fundamental reason to separate those from the other iterator
concepts.
Differential Revision: https://reviews.llvm.org/D104048
2021-06-11 12:57:04 -04:00
zoecarver
9106047ee3
[libcxx][ranges] Add range.subrange.
...
Basically the title.
Differential Revision: https://reviews.llvm.org/D102006
2021-06-11 09:34:41 -07:00
Christopher Di Bella
bbb3d03f93
[libcxx][ranges][nfc] moves view concepts into `__ranges/concepts.h`
2021-06-10 19:35:00 +00: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
d31a2e7554
[libcxx][ranges] Add `ranges::empty_view`.
...
Differential Revision: https://reviews.llvm.org/D103208
2021-06-04 09:38:49 -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
zoecarver
065cf3f9d7
[libcxx][ranges] Add `default_sentinel` and `default_sentinel_t`.
...
Refs https://eel.is/c++draft/default.sentinel and https://eel.is/c++draft/iterator.synopsis
Differential Revision: https://reviews.llvm.org/D103487
2021-06-01 14:03:54 -07:00
zoecarver
5671ff20d9
[libcxx] Implement view.interface.
...
This will unblock work on ranges::view. Based on D101396.
Refs http://eel.is/c++draft/view.interface .
Differential Revision: https://reviews.llvm.org/D101737
2021-06-01 12:34:47 -07: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
Louis Dionne
9968896cd6
[libc++] NFC: Move unwrap_iter to its own header
2021-05-28 12:42:07 -04:00
Louis Dionne
58b29a4efc
[libc++] Add all indirect callable concepts and projected
...
Differential Revision: https://reviews.llvm.org/D101277
2021-05-28 10:10:44 -04:00
Christopher Di Bella
0dc7fd1bc1
[libcxx][iterator] adds `std::ranges::prev`
...
Implements part of P0896 'The One Ranges Proposal'.
Implements [range.iter.op.prev].
Depends on D102563.
Differential Revision: https://reviews.llvm.org/D102564
2021-05-27 04:41:27 +00:00
Christopher Di Bella
857fa7b7b1
[libcxx][iterator] adds `std::ranges::next`
...
Implements part of P0896 'The One Ranges Proposal'.
Implements [range.iter.op.next].
Depends on D101922.
Differential Revision: https://reviews.llvm.org/D102563
2021-05-27 04:41:26 +00:00
Mark de Wever
de9df3f5b9
[libc++][NFC] Move basic_format_parse_context to its own header.
...
This is a preparation to split the format header in smaller parts for the
upcoming patches.
Depends on D101723
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D102703
2021-05-26 17:50:09 +02:00
Mark de Wever
16342e3994
[libc++][NFC] Move format_error to its own header.
...
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D101723
2021-05-26 17:43:23 +02:00
Christopher Di Bella
36d0fdf9ac
[libcxx][iterator] adds `std::ranges::advance`
...
Implements part of P0896 'The One Ranges Proposal'.
Implements [range.iter.op.advance].
Differential Revision: https://reviews.llvm.org/D101922
2021-05-26 04:27:30 +00:00