diff --git a/libcxx/docs/Status/Cxx17.rst b/libcxx/docs/Status/Cxx17.rst --- a/libcxx/docs/Status/Cxx17.rst +++ b/libcxx/docs/Status/Cxx17.rst @@ -43,6 +43,7 @@ .. [#note-P0067] P0067: ``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``. .. [#note-P0607] P0607: The parts of P0607 that are not done are the ```` bits. .. [#note-P0154] P0154: This is currently not implemented for clang because clang does not implement the required macros. + .. [#note-P0452] P0452: The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented. .. _issues-status-cxx17: diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -162,7 +162,7 @@ "`2685 `__","shared_ptr deleters must not throw on move construction","Oulu","|Complete|","" "`2687 `__","{inclusive,exclusive}_scan misspecified","Oulu","","" "`2688 `__","clamp misses preconditions and has extraneous condition on result","Oulu","|Complete|","" -"`2689 `__","Parallel versions of std::copy and std::move shouldn't be in order","Oulu","","" +"`2689 `__","Parallel versions of std::copy and std::move shouldn't be in order","Oulu","|Nothing to do|","" "`2698 `__","Effect of assign() on iterators/pointers/references","Oulu","|Complete|","" "`2704 `__","recursive_directory_iterator's members should require '``*this`` is dereferenceable'","Oulu","|Complete|","" "`2706 `__","Error reporting for recursive_directory_iterator::pop() is under-specified","Oulu","|Complete|","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv --- a/libcxx/docs/Status/Cxx17Papers.csv +++ b/libcxx/docs/Status/Cxx17Papers.csv @@ -25,7 +25,7 @@ "`P0074R0 `__","LWG","Making ``std::owner_less``\ more flexible","Kona","|Complete|","3.8" "`P0013R1 `__","LWG","Logical type traits rev 2","Kona","|Complete|","3.8" "","","","","","" -"`P0024R2 `__","LWG","The Parallelism TS Should be Standardized","Jacksonville","","" +"`P0024R2 `__","LWG","The Parallelism TS Should be Standardized","Jacksonville","|Partial|","" "`P0226R1 `__","LWG","Mathematical Special Functions for C++17","Jacksonville","","" "`P0220R1 `__","LWG","Adopt Library Fundamentals V1 TS Components for C++17","Jacksonville","|Complete|","16.0" "`P0218R1 `__","LWG","Adopt the File System TS for C++17","Jacksonville","|Complete|","7.0" @@ -61,14 +61,14 @@ "`p0295r0 `__","LWG","Adopt Selected Library Fundamentals V2 Components for C++17","Oulu","|Complete|","4.0" "`p0302r1 `__","LWG","Removing Allocator Support in std::function","Oulu","|Complete|","4.0" "`p0307r2 `__","LWG","Making Optional Greater Equal Again","Oulu","|Complete|","4.0" -"`p0336r1 `__","LWG","Better Names for Parallel Execution Policies in C++17","Oulu","","" +"`p0336r1 `__","LWG","Better Names for Parallel Execution Policies in C++17","Oulu","|Complete|","17.0" "`p0337r0 `__","LWG","Delete ``operator=``\ for polymorphic_allocator","Oulu","|Complete|","3.9" "`p0346r1 `__","LWG","A Nomenclature Tweak","Oulu","|Complete|","3.9" "`p0358r1 `__","LWG","Fixes for not_fn","Oulu","|Complete|","3.9" "`p0371r1 `__","LWG","Temporarily discourage memory_order_consume","Oulu","|Nothing To Do|","n/a" "`p0392r0 `__","LWG","Adapting string_view by filesystem paths","Oulu","|Complete|","4.0" "`p0393r3 `__","LWG","Making Variant Greater Equal","Oulu","|Complete|","4.0" -"`P0394r4 `__","LWG","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","Oulu","","" +"`P0394r4 `__","LWG","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","Oulu","|Complete|","17.0" "","","","","","" "`P0003R5 `__","LWG","Removing Deprecated Exception Specifications from C++17","Issaquah","|Complete|","5.0" "`P0067R5 `__","LWG","Elementary string conversions, revision 5","Issaquah","|Partial| [#note-P0067]_","" @@ -95,19 +95,19 @@ "`P0317R1 `__","LWG","Directory Entry Caching for Filesystem","Kona","|Complete|","7.0" "`P0430R2 `__","LWG","File system library on non-POSIX-like operating systems","Kona","|Complete|","7.0" "`P0433R2 `__","LWG","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","Kona","|Complete|","14.0" -"`P0452R1 `__","LWG","Unifying Parallel Algorithms","Kona","","" -"`P0467R2 `__","LWG","Iterator Concerns for Parallel Algorithms","Kona","","" +"`P0452R1 `__","LWG","Unifying Parallel Algorithms","Kona","|Partial| [#note-P0452]_","" +"`P0467R2 `__","LWG","Iterator Concerns for Parallel Algorithms","Kona","|Partial|","" "`P0492R2 `__","LWG","Proposed Resolution of C++17 National Body Comments for Filesystems","Kona","|Complete|","7.0" -"`P0518R1 `__","LWG","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","Kona","","" -"`P0523R1 `__","LWG","Wording for CH 10: Complexity of parallel algorithms","Kona","","" +"`P0518R1 `__","LWG","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","Kona","|Nothing to do|","" +"`P0523R1 `__","LWG","Wording for CH 10: Complexity of parallel algorithms","Kona","|Nothing to do|","" "`P0548R1 `__","LWG","common_type and duration","Kona","|Complete|","5.0" "`P0558R1 `__","LWG","Resolving atomic named base class inconsistencies","Kona","|Complete|","" -"`P0574R1 `__","LWG","Algorithm Complexity Constraints and Parallel Overloads","Kona","","" +"`P0574R1 `__","LWG","Algorithm Complexity Constraints and Parallel Overloads","Kona","|Nothing to do|","" "`P0599R1 `__","LWG","noexcept for hash functions","Kona","|Complete|","5.0" "`P0604R0 `__","LWG","Resolving GB 55, US 84, US 85, US 86","Kona","|Complete|","" "`P0607R0 `__","LWG","Inline Variables for the Standard Library","Kona","|In Progress| [#note-P0607]_","6.0" "`P0618R0 `__","LWG","Deprecating ","Kona","|Complete|","15.0" -"`P0623R0 `__","LWG","Final C++17 Parallel Algorithms Fixes","Kona","","" +"`P0623R0 `__","LWG","Final C++17 Parallel Algorithms Fixes","Kona","|Nothing to do|","" "","","","","","" "`P0682R1 `__","LWG","Repairing elementary string conversions","Toronto","","" "`P0739R0 `__","LWG","Some improvements to class template argument deduction integration into the standard library","Toronto","|Complete|","5.0" diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv --- a/libcxx/docs/Status/Cxx20Issues.csv +++ b/libcxx/docs/Status/Cxx20Issues.csv @@ -71,7 +71,7 @@ "`3042 `__","``is_literal_type_v``\ should be inline","Jacksonville","|Complete|","" "`3043 `__","Bogus postcondition for ``filesystem_error``\ constructor","Jacksonville","|Complete|","" "`3045 `__","``atomic``\ doesn't have ``value_type``\ or ``difference_type``\ ","Jacksonville","","" -"`3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","Jacksonville","","" +"`3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","Jacksonville","|Complete|","17.0" "`3051 `__","Floating point classifications were inadvertently changed in P0175","Jacksonville","|Nothing To Do|","" "`3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","Jacksonville","|Complete|","" "","","","","","" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv --- a/libcxx/docs/Status/Cxx20Papers.csv +++ b/libcxx/docs/Status/Cxx20Papers.csv @@ -85,7 +85,7 @@ "`P0738R2 `__","LWG","I Stream, You Stream, We All Stream for istream_iterator","Kona","","" "`P0811R3 `__","LWG","Well-behaved interpolation for numbers and pointers","Kona","|Complete|","9.0" "`P0920R2 `__","LWG","Precalculated hash values in lookup","Kona","Reverted by `P1661 `__","" -"`P1001R2 `__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","","" +"`P1001R2 `__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","|Complete|","17.0" "`P1024R3 `__","LWG","Usability Enhancements for std::span","Kona","|Complete|","9.0" "`P1164R1 `__","LWG","Make create_directory() Intuitive","Kona","|Complete|","12.0" "`P1227R2 `__","LWG","Signed ssize() functions, unsigned size() functions","Kona","|Complete|","9.0" diff --git a/libcxx/docs/Status/PSTL.rst b/libcxx/docs/Status/PSTL.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/PSTL.rst @@ -0,0 +1,31 @@ +.. pstl-status: + +========================== +libc++ Parallel STL Status +========================== + +.. include:: ../Helpers/Styles.rst + +.. contents:: + :local: + + +Overview +======== + +This document contains the status of the Parallel STL (PSTL) in libc++. It is +used to track both the status of the sub-projects of the PSTL and who is +assigned to these sub-projects. This is imperative to effective implementation +so that work is not duplicated. + +If you are interested in contributing to the libc++ PSTL, please send a message +to the #libcxx channel in the LLVM discoard. Please *do not* start working on +any of the *assigned* items below. + +Sub-Projects in the Implementation Effort +========================================= + +.. csv-table:: + :file: PSTLPaper.csv + :header-rows: 1 + :widths: auto diff --git a/libcxx/docs/Status/PSTLPaper.csv b/libcxx/docs/Status/PSTLPaper.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/PSTLPaper.csv @@ -0,0 +1,78 @@ +Section,Description,Assignee,Complete +| `[adjacent.difference] `_,std::adjacent_difference,Nikolas Klauser,|Not Started| +| `[alg.adjacent.find] `_,std::adjacent_find,Nikolas Klauser,|Not Started| +| `[alg.all.of] `_,std::all_of,Nikolas Klauser,|Complete| +| `[alg.any.of] `_,std::any_of,Nikolas Klauser,|Complete| +| `[alg.copy] `_,std::copy,Nikolas Klauser,|Complete| +| `[alg.copy] `_,std::copy_if,Nikolas Klauser,|Complete| +| `[alg.copy] `_,std::copy_n,Nikolas Klauser,|Complete| +| `[alg.count] `_,std::count,Nikolas Klauser,|Complete| +| `[alg.count] `_,std::count_if,Nikolas Klauser,|Complete| +| `[alg.equal] `_,std::equal,Nikolas Klauser,|Complete| +| `[alg.exclusive.scan] `_,std::exclusive_scan,Nikolas Klauser,|Not Started| +| `[alg.exclusive.scan] `_,std::exclusive_scan,Nikolas Klauser,|Not Started| +| `[alg.fill] `_,std::fill,Nikolas Klauser,|Complete| +| `[alg.fill] `_,std::fill_n,Nikolas Klauser,|Complete| +| `[alg.find] `_,std::find,Nikolas Klauser,|Complete| +| `[alg.find.end] `_,std::find_end,Nikolas Klauser,|Not Started| +| `[alg.find.first.of] `_,std::find_first_of,Nikolas Klauser,|Not Started| +| `[alg.find] `_,std::find_if,Nikolas Klauser,|Complete| +| `[alg.find] `_,std::find_if_not,Nikolas Klauser,|Complete| +| `[alg.foreach] `_,std::for_each,Nikolas Klauser,|Complete| +| `[alg.foreach] `_,std::for_each_n,Nikolas Klauser,|Complete| +| `[alg.generate] `_,std::generate,Nikolas Klauser,|In Progress| +| `[alg.generate] `_,std::generate_n,Nikolas Klauser,|In Progress| +| `[alg.set.operations] `_,std::includes,Nikolas Klauser,|Not Started| +| `[alg.inclusive.scan] `_,std::inclusive_scan,Nikolas Klauser,|Not Started| +| `[alg.merge] `_,std::inplace_merge,Nikolas Klauser,|Not Started| +| `[alg.heap.operations] `_,std::is_heap,Nikolas Klauser,|Not Started| +| `[alg.heap.operations] `_,std::is_heap_until,Nikolas Klauser,|Not Started| +| `[alg.partitions] `_,std::is_partitioned,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::is_sorted,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::is_sorted_until,Nikolas Klauser,|Not Started| +| `[alg.lex.comparison] `_,std::lexicographical_compare,Nikolas Klauser,|Not Started| +| `[alg.min.max] `_,std::max_element,Nikolas Klauser,|Not Started| +| `[alg.merge] `_,std::merge,Nikolas Klauser,|Not Started| +| `[alg.min.max] `_,std::min_element,Nikolas Klauser,|Not Started| +| `[alg.min.max] `_,std::minmax_element,Nikolas Klauser,|Not Started| +| `[mismatch] `_,std::mismatch,Nikolas Klauser,|Not Started| +| `[alg.move] `_,std::move,Nikolas Klauser,|Complete| +| `[alg.none.of] `_,std::none_of,Nikolas Klauser,|Complete| +| `[alg.nth.element] `_,std::nth_element,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::partial_sort,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::partial_sort_copy,Nikolas Klauser,|Not Started| +| `[alg.partitions] `_,std::partition,Nikolas Klauser,|Not Started| +| `[alg.partitions] `_,std::partition_copy,Nikolas Klauser,|Not Started| +| `[reduce] `_,std::reduce,Nikolas Klauser,|Complete| +| `[alg.remove] `_,std::remove,Nikolas Klauser,|Not Started| +| `[alg.remove] `_,std::remove_copy,Nikolas Klauser,|Not Started| +| `[alg.remove] `_,std::remove_copy_if,Nikolas Klauser,|Not Started| +| `[alg.remove] `_,std::remove_if,Nikolas Klauser,|Not Started| +| `[alg.replace] `_,std::replace,Nikolas Klauser,|Not Started| +| `[alg.replace] `_,std::replace_copy,Nikolas Klauser,|Not Started| +| `[alg.reverse] `_,std::reverse,Nikolas Klauser,|Not Started| +| `[alg.reverse] `_,std::reverse_copy,Nikolas Klauser,|Not Started| +| `[alg.rotate] `_,std::rotate,Nikolas Klauser,|Not Started| +| `[alg.rotate] `_,std::rotate_copy,Nikolas Klauser,|Not Started| +| `[alg.search] `_,std::search,Nikolas Klauser,|Not Started| +| `[alg.search] `_,std::search_n,Nikolas Klauser,|Not Started| +| `[alg.set.operations] `_,std::set_difference,Nikolas Klauser,|Not Started| +| `[alg.set.operations] `_,std::set_intersection,Nikolas Klauser,|Not Started| +| `[alg.set.operations] `_,std::set_symmetric_difference,Nikolas Klauser,|Not Started| +| `[alg.set.operations] `_,std::set_union,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::sort,Nikolas Klauser,|Not Started| +| `[alg.partitions] `_,std::stable_partition,Nikolas Klauser,|Not Started| +| `[alg.sort] `_,std::stable_sort,Nikolas Klauser,|Complete| +| `[alg.swap] `_,std::swap_ranges,Nikolas Klauser,|Not Started| +| `[alg.transform] `_,std::transform,Nikolas Klauser,|Complete| +| `[alg.transform.exclusive.scan] `_,std::transform_exclusive_scan,Nikolas Klauser,|Not Started| +| `[alg.transform.inclusive.scan] `_,std::transform_inclusive_scan,Nikolas Klauser,|Not Started| +| `[transform.reduce] `_,std::transform_reduce,Nikolas Klauser,|Complete| +| `[uninitialized.copy] `_,std::uninitialized_copy,Nikolas Klauser,|Not Started| +| `[uninitialized.copy] `_,std::uninitialized_copy_n,Nikolas Klauser,|Not Started| +| `[uninitialized.fill] `_,std::uninitialized_fill,Nikolas Klauser,|Not Started| +| `[uninitialized.fill] `_,std::uninitialized_fill_n,Nikolas Klauser,|Not Started| +| `[uninitialized.move] `_,std::uninitialized_move,Nikolas Klauser,|Not Started| +| `[uninitialized.move] `_,std::uninitialized_move_n,Nikolas Klauser,|Not Started| +| `[alg.unique] `_,std::unique,Nikolas Klauser,|Not Started| +| `[alg.unique] `_,std::unique_copy,Nikolas Klauser,|Not Started| diff --git a/libcxx/docs/Status/Ranges.rst b/libcxx/docs/Status/Ranges.rst --- a/libcxx/docs/Status/Ranges.rst +++ b/libcxx/docs/Status/Ranges.rst @@ -1,4 +1,4 @@ -a. ranges-status: +.. ranges-status: ================================ libc++ Ranges Status diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -47,6 +47,7 @@ Status/Cxx2c Status/Format Status/Parallelism + Status/PSTL Status/Ranges Status/Spaceship Status/Zip