Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								43bc1e5600 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement Ranges changes to `istream{,buf}_iterator`.  
							
							 
							
							... 
							
							
							
							The changes from the One Ranges Proposal amount to adding:
- a constructor that takes a `default_sentinel_t` and is equivalent to
  the default constructor;
- an `operator==` that compares the iterator to `default_sentinel_t`.
The original proposal defined two overloads for `operator==` (different
argument order) as well as `operator!=`. This has been removed by
[P1614](https://wg21.link/p1614 ).
Differential Revision: https://reviews.llvm.org/D119620  
							
						 
						
							2022-02-15 16:59:42 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								55bd22f853 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement rbegin, rend, crbegin and crend.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D119057  
							
						 
						
							2022-02-14 03:29:59 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								aff115420d 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Fix a typo in links on the Ranges status page.  
							
							 
							
							
							
						 
						
							2022-02-10 20:55:27 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								2151b3d093 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Update the status of predefined iterators.  
							
							 
							
							... 
							
							
							
							`{back,front}_insert_iterator` and `ostream{,buf}_iterator` effectively
fully implement the One Ranges Proposal already, so mark them as done:
- the change to `difference_type` was made by D103273;
- default constructors and the associated default member initializers
  were removed by wg21.link/P2325 (implemented by D102468).
Also fix a stale template signature in the `<iterator>` synopsis. 
							
						 
						
							2022-02-10 18:49:52 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								8f1d8785df 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `permutable`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D119222  
							
						 
						
							2022-02-09 20:34:20 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								254ee89c7a 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] On the Ranges status page, fix some broken links.  
							
							 
							
							
							
						 
						
							2022-02-04 11:58:35 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								823fa098aa 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Test the specializations of `tuple_{size,element}` for ranges.  
							
							 
							
							... 
							
							
							
							Also update the synopsis in `<ranges>` to mention the specializations.
Differential Revision: https://reviews.llvm.org/D118686  
							
						 
						
							2022-02-02 22:58:33 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								7e9d19016e 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Small updates to the Ranges status page:  
							
							 
							
							... 
							
							
							
							- note that `split_view` has been renamed to `lazy_split_view`.
- fix formatting. 
							
						 
						
							2022-02-02 13:33:15 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								e65d3760a3 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `indirectly_copyable{,_storable}`.  
							
							 
							
							... 
							
							
							
							Also refactor tests for `indirectly_movable{,_storable}`.
Differential Revision: https://reviews.llvm.org/D118432  
							
						 
						
							2022-02-02 13:27:44 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								a37a05d0dc 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] In the Ranges status, mark move_sentinel as "in progress"  
							
							 
							
							
							
						 
						
							2022-02-02 13:15:54 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								298331f14d 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Test new requirements for `basic_string_view` and `span` iterators.  
							
							 
							
							... 
							
							
							
							Note that most changes to `strings` and `views.span` from the One Ranges
Proposal are no longer applicable:
- free `begin` and `end` functions taking `basic_string_view` and `span`
  were removed by [P1870](http://wg21.link/p1870 );
- `span::const_iterator` was removed by [LWG3320](https://cplusplus.github.io/LWG/lwg-defects.html#3320 ).
Reviewed By: #libc, Quuxplusone, ldionne
Differential Revision: https://reviews.llvm.org/D118687  
							
						 
						
							2022-02-02 12:54:39 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								f681d7d558 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Add contiguous_iterator_tag to the <iterator> synopsis  
							
							 
							
							... 
							
							
							
							It was previously implemented by commit [45d048c20 ](https://reviews.llvm.org/rG45d048c20440989df2b4e1be1f9343225e7741ab ).
Reviewed By: #libc, Quuxplusone, philnik, ldionne
Differential Revision: https://reviews.llvm.org/D118751  
							
						 
						
							2022-02-02 12:53:15 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								e1f7edb64b 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Fix an inconsistent patch link on the Ranges status page.  
							
							 
							
							
							
						 
						
							2022-02-01 16:50:33 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								039e55d618 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] In the Ranges status, list the changes to stream.iterators  
							
							 
							
							
							
						 
						
							2022-02-01 14:41:09 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								d5ce90f414 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] In the Ranges status, list the changes to predef.iterators  
							
							 
							
							
							
						 
						
							2022-02-01 14:34:40 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								85dae4c11e 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Fix formatting on newly-added links on the Ranges status page.  
							
							 
							
							
							
						 
						
							2022-01-31 14:45:21 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								7c89c2ac6f 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Add some missing links to the Ranges status page.  
							
							 
							
							
							
						 
						
							2022-01-31 11:23:40 -08:00  
						
					 
				
					
						
							
							
								 
								Arthur O'Dwyer
							
						 
						
							 
							
							
							
							
								
							
							
								c965d5448e 
								
							 
						 
						
							
							
								
								[libc++] [ranges] Implement std::ranges::distance  
							
							 
							
							... 
							
							
							
							This includes an experimental workaround for
LWG3664 "LWG3392 broke std::ranges::distance(a, a+3)",
but the workaround may be incomplete, I'm not sure.
This should be re-audited when LWG3664 is actually adopted,
to see if we need to change anything about our implementation.
See also https://github.com/microsoft/STL/pull/2500 
Differential Revision: https://reviews.llvm.org/D117940  
							
						 
						
							2022-01-31 12:23:10 -05:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								46283589ef 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Small cleanup to the Ranges status page.  
							
							 
							
							... 
							
							
							
							- add a few missing links to code reviews;
- reorder the views to follow the same order as in the Standard. 
							
						 
						
							2022-01-28 22:40:07 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								c38c134b62 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Update and slightly cleanup Ranges status page.  
							
							 
							
							... 
							
							
							
							- add missing links to sections of the Standard and to patches;
- update the status on a couple of items. 
							
						 
						
							2022-01-28 20:15:36 -08:00  
						
					 
				
					
						
							
							
								 
								Arthur O'Dwyer
							
						 
						
							 
							
							
							
							
								
							
							
								483f7f5536 
								
							 
						 
						
							
							
								
								[libc++] [ranges] Implement ranges::cdata.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D117044  
							
						 
						
							2022-01-12 22:07:13 -05:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								b9bc3c107c 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `construct_at` and `destroy{,_at}`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D116078  
							
						 
						
							2022-01-12 16:01:04 -08: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  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								6d722801d1 
								
							 
						 
						
							
							
								
								[libc++][ranges] Add indirectly_comparable concept  
							
							 
							
							... 
							
							
							
							Add `indirectly_comparable` concept
Reviewed By: Quuxplusone, Mordante, #libc
Spies: mgorny, libcxx-commits
Differential Revision: https://reviews.llvm.org/D116268  
							
						 
						
							2022-01-04 23:40:57 +01:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								754ea6fd4d 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `uninitialized_value_construct{,_n}` and `uninitialized_fill{,_n}`.  
							
							 
							
							... 
							
							
							
							Also:
- refactor out `__voidify`;
- use the `destroy` algorithm internally;
- refactor out helper classes used in tests for `uninitialized_*`
  algorithms.
Differential Revision: https://reviews.llvm.org/D115626  
							
						 
						
							2021-12-20 00:24:27 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								3f630cff65 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement ranges::uninitialized_default_construct{,_n}.  
							
							 
							
							... 
							
							
							
							Defined in [`specialized.algorithms`](wg21.link/specialized.algorithms).
Also:
- refactor the existing non-range implementation so that most of it
  can be shared between the range-based and non-range-based algorithms;
- remove an existing test for the non-range version of
  `uninitialized_default_construct{,_n}` that likely triggered undefined
  behavior (it read the values of built-ins after default-initializing
  them, essentially reading uninitialized memory).
Reviewed By: #libc, Quuxplusone, ldionne
Differential Revision: https://reviews.llvm.org/D115315  
							
						 
						
							2021-12-14 14:11:46 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								2d9efcfeec 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement [special.mem.concepts].  
							
							 
							
							... 
							
							
							
							Implement the exposition-only concepts specified in
`[special.mem.concepts]`. These are all thin wrappers over other
concepts.
Reviewed By: #libc, Quuxplusone, ldionne
Differential Revision: https://reviews.llvm.org/D114761  
							
						 
						
							2021-12-02 17:58:04 -08:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								3b463c4528 
								
							 
						 
						
							
							
								
								[libc++][NFC] Assign some Ranges tasks to varconst.  
							
							 
							
							... 
							
							
							
							Specifically:
- [special.mem.concepts];
- [specialized.algorithms]. 
							
						 
						
							2021-11-18 15:15:21 -08:00  
						
					 
				
					
						
							
							
								 
								Louis Dionne
							
						 
						
							 
							
							
							
							
								
							
							
								1295694364 
								
							 
						 
						
							
							
								
								[libc++][NFC] Add missing link to a ranges review  
							
							 
							
							
							
						 
						
							2021-09-24 11:37:38 -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
							
						 
						
							 
							
							
							
							
								
							
							
								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
							
						 
						
							 
							
							
							
							
								
							
							
								3df649e619 
								
							 
						 
						
							
							
								
								[libcxx][docs] Take locks on the last three views.  
							
							 
							
							
							
						 
						
							2021-07-30 15:08:01 -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  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								Louis Dionne
							
						 
						
							 
							
							
							
							
								
							
							
								7b28c5d376 
								
							 
						 
						
							
							
								
								[libc++] Implement the output_iterator and output_range concepts  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D106704  
							
						 
						
							2021-07-26 15:05:17 -04:00  
						
					 
				
					
						
							
							
								 
								Louis Dionne
							
						 
						
							 
							
							
							
							
								
							
							
								fbaf7f0bc7 
								
							 
						 
						
							
							
								
								[libc++] Add range_size_t  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D106708  
							
						 
						
							2021-07-26 12:19:26 -04:00  
						
					 
				
					
						
							
							
								 
								zoecarver
							
						 
						
							 
							
							
							
							
								
							
							
								e5d8b93e5a 
								
							 
						 
						
							
							
								
								[libcxx][ranges] Add `ranges::common_view`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D105753  
							
						 
						
							2021-07-23 09:08:49 -07:00  
						
					 
				
					
						
							
							
								 
								zoecarver
							
						 
						
							 
							
							
							
							
								
							
							
								6f5064cd0c 
								
							 
						 
						
							
							
								
								[libc++][docs] Take lock for range.single.view.  
							
							 
							
							... 
							
							
							
							Mark this item as in progress and assigned to me. 
							
						 
						
							2021-07-22 11:15:24 -07: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  
						
					 
				
					
						
							
							
								 
								Louis Dionne
							
						 
						
							 
							
							
							
							
								
							
							
								3001b48d76 
								
							 
						 
						
							
							
								
								[libc++] Implement views::all_t and ranges::viewable_range  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D105816  
							
						 
						
							2021-07-15 07:54:33 -04:00  
						
					 
				
					
						
							
							
								 
								zoecarver
							
						 
						
							 
							
							
							
							
								
							
							
								e5e291e135 
								
							 
						 
						
							
							
								
								[libcxx][docs] Update the ranges status document to reflect the current state of the world.  
							
							 
							
							... 
							
							
							
							Marks a few things as done. Marks a few things as in progress. Assigns a few things to me. 
							
						 
						
							2021-07-12 13:11:17 -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  
						
					 
				
					
						
							
							
								 
								Louis Dionne
							
						 
						
							 
							
							
							
							
								
							
							
								cf005c4c50 
								
							 
						 
						
							
							
								
								[libc++] NFC: Move the status docs to their own subdirectory  
							
							 
							
							... 
							
							
							
							This cleans up the libcxx/doc directory quite a bit and will avoid the
proliferation of status files in that directory as new standards are voted. 
							
						 
						
							2021-07-06 09:48:34 -04:00