diff --git a/libcxx/docs/Status/Spaceship.rst b/libcxx/docs/Status/Spaceship.rst new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/Spaceship.rst @@ -0,0 +1,49 @@ +.. spaceship-status: + +============================================== +libc++ Spaceship Operator Status (operator<=>) +============================================== + +.. include:: ../Helpers/Styles.rst + +.. contents:: + :local: + + +Overview +================================ + +This document contains the status of the C++20 spaceship operator support +in libc++. It is used to track both the status of the sub-projects of the effort +and who is assigned to these sub-projects. This is imperative to effective +implementation so that work is not duplicated and implementors are not blocked +by each other. + +If you are interested in contributing to this effort, please send a message +to the #libcxx channel in the LLVM discord. Please *do not* start working on any +of the assigned items below. + + +Sub-Projects in the Implementation Effort +========================================= + +.. csv-table:: + :file: SpaceshipProjects.csv + :header-rows: 1 + :widths: auto + + +Misc. Items and TODOs +==================================== + +(Note: files with required updates will contain the TODO at the beginning of the +list item so they can be easily found via global search.) + + +Paper and Issue Status +==================================== + +.. csv-table:: + :file: SpaceshipPapers.csv + :header-rows: 1 + :widths: auto diff --git a/libcxx/docs/Status/SpaceshipPapers.csv b/libcxx/docs/Status/SpaceshipPapers.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/SpaceshipPapers.csv @@ -0,0 +1,10 @@ +"Number","Name","Status","First released version" +`P1614R2 `_,The Mothership has Landed,|In Progress|, +`P2404R0 `_,"Relaxing equality_comparable_with's, totally_ordered_with's, and three_way_comparable_with's common reference requirements to support move-only types",, +`P2405R0 `_,nullopt_t and nullptr_t should both have operator<=> and operator==,, +`LWG3330 `_,Include from most library headers,|In Progress|, +`LWG3347 `_,"std::pair now requires T and U to be less-than-comparable",|Nothing To Do|, +`LWG3350 `_,Simplify return type of lexicographical_compare_three_way,|Nothing To Do|, +`LWG3360 `_,three_way_comparable_with is inconsistent with similar concepts,|Nothing To Do|, +`LWG3380 `_,common_type and comparison categories,|Nothing To Do|, +`LWG3395 `_,Definition for three-way comparison needs to be updated,|Nothing To Do|, diff --git a/libcxx/docs/Status/SpaceshipProjects.csv b/libcxx/docs/Status/SpaceshipProjects.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/SpaceshipProjects.csv @@ -0,0 +1,77 @@ +Section,Description,Dependencies,Assignee,Complete +[cmp.concept],"| `three_way_comparable `_ +| `three_way_comparable_with `_",None,Ruslan Arutyunyan,In progress +[cmp.result],| `compare_three_way_result `_,None,Arthur O'Dwyer,In progress +[expos.only.func],"| `synth-three-way `_ +| `synth-three-way-result `_",[cmp.concept],Kent Ross,In progress +[comparisons.three.way],| `compare_three_way `_,[cmp.concept],Christopher Di Bella,In progress +[cmp.alg],"| `strong_order `_ +| `weak_order `_ +| `partial_order `_",None,Arthur O'Dwyer,In progress +[alg.three.way],| `lexicographical_compare_three_way `_,[comparisons.three.way],Christopher Di Bella,In progress +[coroutine.handle.compare],| coroutine_handle,[comparisons.three.way],Unassigned,Not started +[pairs.spec],| `pair `_,[expos.only.func],Kent Ross,In progress +[syserr.errcat.nonvirtuals],| error_category,[comparisons.three.way],Unassigned,Not started +[syserr.compare],"| error_code +| error_condition",None,Unassigned,Not started +[tuple.rel],| tuple,[expos.only.func],Unassigned,Not started +"[optional.relops] +[optional.nullops] +[optional.comp.with.t]","| optional +| nullopt",None,Unassigned,Not started +"[variant.relops] +[variant.monostate.relops]","| monostate +| variant",None,Unassigned,Not started +[unique.ptr.special],| unique_ptr,[comparisons.three.way],Unassigned,Not started +[util.smartptr.shared.cmp],| shared_ptr,[comparisons.three.way],Unassigned,Not started +[type.index.members],| type_index,None,Unassigned,Not started +[stacktrace.entry.cmp],| stacktrace_entry,None,Unassigned,Not started +[stacktrace.basic.cmp],| basic_stacktrace,[alg.three.way],Unassigned,Not started +[string.cmp],| `basic_string `_,None,Christopher Di Bella,In progress +[string.view.comparison],| `basic_string_view `_,None,Christopher Di Bella,In progress +[array.syn],| array,[expos.only.func],Unassigned,Not started +[deque.syn],| deque,[expos.only.func],Unassigned,Not started +[forward.list.syn],| forward_list,[expos.only.func],Unassigned,Not started +[list.syn],| list,[expos.only.func],Unassigned,Not started +[vector.syn],| vector,[expos.only.func],Unassigned,Not started +[associative.map.syn],"| map +| multimap",[expos.only.func],Unassigned,Not started +[associative.set.syn],"| multiset +| set",[expos.only.func],Unassigned,Not started +[queue.ops],| queue,None,Unassigned,Not started +[stack.ops],| stack,None,Unassigned,Not started +[reverse.iter.cmp],| reverse_iterator,None,Unassigned,Not started +[move.iter.cmp],| move_iterator,None,Unassigned,Not started +[counted.iter.cmp],| counted_iterator,None,Unassigned,Not started +[range.iota.iterator],| ranges::iota_view::iterator,[concepts.cmp],Unassigned,Not started +[range.transform.iterator],| ranges::transform_view::iterator,[concepts.cmp],Unassigned,Not started +[range.elements.iterator],| ranges::elements_view::iterator,[concepts.cmp],Unassigned,Not started +"[time.duration.comparisons] +[time.point.comparisons] +[time.cal.day.nonmembers] +[time.cal.month.nonmembers] +[time.cal.year.nonmembers] +[time.cal.md.nonmembers] +[time.cal.mdlast] +[time.cal.ym.nonmembers] +[time.cal.ymd.nonmembers] +[time.cal.ymdlast.nonmembers] +[time.zone.nonmembers] +[time.zone.leap.nonmembers] +[time.zone.link.nonmembers]","| chrono::duration +| chrono::time_point +| chrono::day +| chrono::month +| chrono::year +| chrono::month_day +| chrono::month_day_last +| chrono::year_month +| chrono::year_month_day +| chrono::year_month_day_last +| chrono::time_zone +| chrono::leap_second +| chrono::time_zone_link",None,Unassigned,Not started +[fs.path.nonmember],| filesystem::path,None,Unassigned,Not started +[fs.dir.entry.obs],| filesystem::directory_entry,None,Unassigned,Not started +[re.submatch.op],| sub_match,None,Unassigned,Not started +[thread.thread.id],| thread::id,None,Unassigned,Not started diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -43,8 +43,9 @@ Status/Cxx17 Status/Cxx20 Status/Cxx2b - Status/Ranges Status/Format + Status/Ranges + Status/Spaceship .. toctree::