[PATCH v4 0/8] Implement layouts from mdspan.

Tomasz Kaminski tkaminsk@redhat.com
Thu May 29 20:08:22 GMT 2025


Sending a bit after the fact, but:
I have finished the review, and most of the commits have really minimal
cosmetic changes.
The only major functional one I have requested are for layout_stride
implementation,

On Wed, May 28, 2025 at 4:36 PM Tomasz Kaminski <tkaminsk@redhat.com> wrote:

> 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 <tkaminsk@redhat.com>
> wrote:
>
>>
>>
>> On Tue, May 27, 2025 at 4:32 PM Luc Grosheintz <luc.grosheintz@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
>>> >
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20250529/4622dc86/attachment.htm>


More information about the Libstdc++ mailing list