On Fri, Apr 18, 2025 at 1:56 PM Luc Grosheintz <luc.groshei...@gmail.com> wrote:
> I have a question about how to proceed. First we finish the > refinement of the current commits. Then I could: > > 1. start a new patch series for layout_*; > 2. or add new commits to the current series for layout_*. > My personal preference would be for 2, patch per one layout. > > The advantage of 2. is that we can do more tests before merging > anything into trunk. For example, we can check that the mapping > of multi-indices to flat indices (i.e. the job of layout_*) is > efficient. In particular, we can make sure that there's nothing > in extents that prevents generating efficient code. > We can make adjustment until the C++23 is no longer mark as experimental, and as we just started the GCC 16 branch, there would be nearly a year to make adjustments, before anybody will see current code. So there is no concerns in changing the extents in later commits. > > I'm open to both options and would prefer doing whatever is more > convenient to the reviewers and maintainers. > > On 4/18/25 1:29 PM, Luc Grosheintz wrote: > > This is the fourth interation and replaces: > > https://gcc.gnu.org/pipermail/libstdc++/2025-April/061046.html > > > > Changes since v3: > > * Use `_S_` prefix for static member functions. > > * Use consteval to reduce code size. > > * Simplify ctors of _ExtentsStorage. > > * Added a test to cover the mandates of std::extents. > > > > Luc Grosheintz (4): > > libstdc++: Setup internal FTM for mdspan. > > libstdc++: Add header mdspan to the build-system. > > libstdc++: Implement std::extents [PR107761]. > > libstdc++: Add tests for std::extents. > > > > libstdc++-v3/doc/doxygen/user.cfg.in | 1 + > > libstdc++-v3/include/Makefile.am | 1 + > > libstdc++-v3/include/Makefile.in | 1 + > > libstdc++-v3/include/bits/version.def | 9 + > > libstdc++-v3/include/bits/version.h | 9 + > > libstdc++-v3/include/precompiled/stdc++.h | 1 + > > libstdc++-v3/include/std/mdspan | 297 ++++++++++++++++++ > > libstdc++-v3/src/c++23/std.cc.in | 6 +- > > .../mdspan/extents/class_mandates_neg.cc | 8 + > > .../23_containers/mdspan/extents/ctor_copy.cc | 82 +++++ > > .../23_containers/mdspan/extents/ctor_ints.cc | 62 ++++ > > .../mdspan/extents/ctor_shape.cc | 160 ++++++++++ > > .../mdspan/extents/custom_integer.cc | 87 +++++ > > .../23_containers/mdspan/extents/misc.cc | 223 +++++++++++++ > > 14 files changed, 946 insertions(+), 1 deletion(-) > > create mode 100644 libstdc++-v3/include/std/mdspan > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/class_mandates_neg.cc > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_copy.cc > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_ints.cc > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/ctor_shape.cc > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/custom_integer.cc > > create mode 100644 > libstdc++-v3/testsuite/23_containers/mdspan/extents/misc.cc > > > >