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_*.

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.

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


Reply via email to