Hi, I have landed all the layout patches on master. Thank you very much for your continued contributions.
While submitting, I noticed that few of the commit messages do not match the format (space vs tabulator), and I fixed them up. and realized that I haven't shared tools that we use to automatically verify that (sorry for bringing it late). If you call contrib/gcc-git-customization.sh in the main director of gcc sources, you will get git aliases added: - git gcc-verify commit - will check format for given commit - git gcc-commit-mklog - will create a commit message with changelog files listed Hope that this helps. Regards, Tomasz On Wed, Jun 11, 2025 at 7:28 PM Jonathan Wakely <jwak...@redhat.com> wrote: > On Tue, 3 Jun 2025 at 18:00, Luc Grosheintz <luc.groshei...@gmail.com> > wrote: > > > > Today I found a file called `gcc/cp/cxxapi-data.csv` that contains > > > > # unimplemented <mdspan>,extents,1,no > > # unimplemented <mdspan>,dextents,1,no > > # unimplemented <mdspan>,layout_left,1,no > > # unimplemented <mdspan>,layout_right,1,no > > # unimplemented <mdspan>,layout_stride,1,no > > # unimplemented <mdspan>,default_accessor,1,no > > # unimplemented <mdspan>,mdspan,1,cxx23 > > > > I have a feeling I should have been updating this file (and maybe > > regenerate a file). > > > > This might be a reason for a fixup for std::extents and a v6 > > for the layouts. > > Changing that file can be done separately. > > It's used to get the compiler to give the diagnostics "std::mdspan is > not available before C++23" or "mdspan not declared, maybe you meant > to include <mdspan>?" > > We also thought about using it to auto-generate the std.cc module > definition, but we haven't used it for that. > > > > > > > > On 6/3/25 18:50, Luc Grosheintz wrote: > > > Thank you Tomasz for the round of review. IIUC we have several > > > cases of if there's a v6, please change this, and no mandatory > > > changes. > > > > > > Would you like me to submit a v6? > > > > > > On 5/30/25 18:42, Luc Grosheintz wrote: > > >> The discussion for v4 is here: > > >> https://gcc.gnu.org/pipermail/libstdc++/2025-May/061665.html > > >> > > >> The non-trivial changes are: > > >> > > >> * Fixed bug in __offset that called m(0...) even for empty > extents; added a > > >> test. > > >> * Fixed buggy tests for class mandates. > > >> * Fix layout_stride::is_{,always_}exhaustive. > > >> * Fix missing private (2x). > > >> * Use cmp_equal in layout_stride::operator== > > >> * Use cmp_equal in tests for std::extents (added to first commit). > > >> > > >> Additionally: > > >> > > >> * added __empty, > > >> * cleaned up parens near `requires`, > > >> * changed __mapping_like to __mapping_alike, > > >> * use extents_type instead of _Extents, > > >> * don't comment on deviation. > > >> > > >> Luc Grosheintz (8): > > >> libstdc++: Improve naming, whitespace and silence warnings 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 | 725 > +++++++++++++++++- > > >> libstdc++-v3/src/c++23/std.cc.in | 5 +- > > >> .../mdspan/extents/ctor_default.cc | 2 +- > > >> .../mdspan/layouts/class_mandate_neg.cc | 42 + > > >> .../23_containers/mdspan/layouts/ctors.cc | 438 +++++++++++ > > >> .../23_containers/mdspan/layouts/empty.cc | 69 ++ > > >> .../23_containers/mdspan/layouts/mapping.cc | 568 ++++++++++++++ > > >> .../23_containers/mdspan/layouts/stride.cc | 526 +++++++++++++ > > >> 8 files changed, 2360 insertions(+), 15 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 > > >> > > > > > > >