I have reviewed and posted feedback up to, but not including layout_stride today. Will try to finish tomorrow. Thank you again for continuous work on the patches.
On Tue, May 27, 2025 at 4:40 PM Tomasz Kaminski <tkami...@redhat.com> wrote: > > > On Tue, May 27, 2025 at 4:32 PM Luc Grosheintz <luc.groshei...@gmail.com> > wrote: > >> Since, I believe now we're through the larger questions about >> how to implement layouts. If reviewing all three over and over >> is too painful, it might now make sense to split the patch into >> separate patches, one per layout. >> > I think we are OK. As you mentioned we are past general discussion, > so I need to do more throughroul review with checking against the standard. > I will try to book some time for this this week. > > >> On 5/26/25 16:04, Luc Grosheintz wrote: >> > This follows up on: >> > https://gcc.gnu.org/pipermail/libstdc++/2025-May/061572.html >> > >> > Note that this patch series can only be applied after merging: >> > https://gcc.gnu.org/pipermail/libstdc++/2025-May/061653.html >> > >> > The important changes since v3 are: >> > * Fixed and testsed several related overflow issues that occured in >> > extents of size 0 by using `size_t` to compute products. >> > * Fixed and tested default ctors. >> > * Add missing code for module support. >> > * Documented deviation from standard. >> > >> > The smaller changes include: >> > * Squashed the three small commits that make cosmetic changes to >> > std::extents. >> > * Remove layout_left related changes from the layout_stride commit. >> > * Remove superfluous `mapping(extents_type(__exts))`. >> > * Fix indenting and improve comment in layout_stride. >> > * Add an easy check for representable required_span_size to >> > layout_stride. >> > * Inline __dynamic_extents_prod >> > >> > Thank you Tomasz for all the great reviews! >> > >> > Luc Grosheintz (8): >> > libstdc++: Improve naming and whitespace for extents. >> > libstdc++: Implement layout_left from mdspan. >> > libstdc++: Add tests for layout_left. >> > libstdc++: Implement layout_right from mdspan. >> > libstdc++: Add tests for layout_right. >> > libstdc++: Implement layout_stride from mdspan. >> > libstdc++: Add tests for layout_stride. >> > libstdc++: Make layout_left(layout_stride) noexcept. >> > >> > libstdc++-v3/include/std/mdspan | 711 +++++++++++++++++- >> > libstdc++-v3/src/c++23/std.cc.in | 5 +- >> > .../mdspan/layouts/class_mandate_neg.cc | 42 ++ >> > .../23_containers/mdspan/layouts/ctors.cc | 459 +++++++++++ >> > .../23_containers/mdspan/layouts/empty.cc | 78 ++ >> > .../23_containers/mdspan/layouts/mapping.cc | 568 ++++++++++++++ >> > .../23_containers/mdspan/layouts/stride.cc | 500 ++++++++++++ >> > 7 files changed, 2349 insertions(+), 14 deletions(-) >> > create mode 100644 >> libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc >> > create mode 100644 >> libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc >> > create mode 100644 >> libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc >> > create mode 100644 >> libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc >> > create mode 100644 >> libstdc++-v3/testsuite/23_containers/mdspan/layouts/stride.cc >> > >> >>