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
>> >
>>
>>

Reply via email to