Skip to content

move padded layouts and dims from Experimental to the standard namespace#447

Merged
nmm0 merged 5 commits intokokkos:stablefrom
nmm0:404-move-padded-layout-out-of-experimental
Feb 12, 2026
Merged

move padded layouts and dims from Experimental to the standard namespace#447
nmm0 merged 5 commits intokokkos:stablefrom
nmm0:404-move-padded-layout-out-of-experimental

Conversation

@nmm0
Copy link
Contributor

@nmm0 nmm0 commented Feb 2, 2026

Closes #404

@nmm0 nmm0 changed the title move padded layouts from Experimental to the standard namespace move padded layouts and dims from Experimental to the standard namespace Feb 2, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Moves layout_left_padded / layout_right_padded and dims out of the experimental/proposed namespace into the standard namespace to align with their C++26 standardization (closes #404).

Changes:

  • Update padded layout definitions and related traits/usages to live in MDSPAN_IMPL_STANDARD_NAMESPACE / Kokkos:: rather than ...::Experimental::.
  • Update dims usage to MDSPAN_IMPL_STANDARD_NAMESPACE::dims and adjust the experimental header accordingly.
  • Refactor tests, compilation tests, and benchmarks to use the new namespace locations.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/test_submdspan_static_slice.cpp Updates expected padded layout types to Kokkos::layout_*_padded.
tests/test_submdspan.cpp Switches padded layout aliases to Kokkos::layout_*_padded; minor whitespace cleanup.
tests/test_layout_padded_right.cpp Updates padded layout and detail trait references from experimental/proposed to standard namespace.
tests/test_layout_padded_left.cpp Updates padded layout and detail trait references from experimental/proposed to standard namespace.
tests/test_dims.cpp Updates dims usage to MDSPAN_IMPL_STANDARD_NAMESPACE::dims.
include/experimental/__p2642_bits/layout_padded_fwd.hpp Removes proposed-namespace wrapping so padded layouts are declared in the standard namespace.
include/experimental/__p2642_bits/layout_padded.hpp Removes proposed-namespace wrapping and updates internal references accordingly.
include/experimental/__p2630_bits/submdspan_mapping.hpp Updates submdspan mapping code to refer to layout_*_padded in the standard namespace.
include/experimental/__p2389_bits/dims.hpp Moves dims alias to the standard namespace (and removes proposed namespace wrapper).
include/experimental/__p0009_bits/layout_stride.hpp Updates trait checks for padded mappings to reference standard detail::is_layout_*_padded_mapping.
include/experimental/__p0009_bits/layout_right.hpp Updates converting ctor constraints/checks to use standard padded-mapping traits and checks.
include/experimental/__p0009_bits/layout_left.hpp Updates converting ctor constraints/checks to use standard padded-mapping traits and checks.
compilation_tests/ctest_layout_convertible.cpp Updates compilation-time checks to use Kokkos::layout_*_padded.
benchmarks/sum/sum_3d_common.hpp Removes unused proposed-namespace alias (now that padded/dims moved).
benchmarks/fill.hpp Removes unused proposed-namespace alias (now that padded/dims moved).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@mhoemmen mhoemmen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we consider also regenerating the single-header file for Compiler Explorer as part of this PR? It would be excellent for the single-header version to have the same namespaces as the installable version. Thanks! : - )

@crtrott
Copy link
Member

crtrott commented Feb 11, 2026

Should we consider also regenerating the single-header file for Compiler Explorer as part of this PR? It would be excellent for the single-header version to have the same namespaces as the installable version. Thanks! : - )

Let's do that in a separate PR, and maybe after your big guy is through. We also are trying to actually create a release, likely coinciding with Kokkos 5.1.0. That opens an interesting question though: currently Kokkos leadership is leaning towards a recommendation (not enforcement) that we have a unified versioning. The idea being that it will be less confusing inside the Kokkos ecosystem about what belongs together and is tested together. I.e. some of us are just exasperated by stuff like the Visual Studio / MSVC versioning, or even the CUDA versioning where it's kinda hard to decide what is what. Any strong feelings on that? If we go with that recommendation for mdspan, we would release as mdspan 5.1 ...

@mhoemmen
Copy link
Contributor

mhoemmen commented Feb 11, 2026

@mhoemmen wrote:

Should we consider also regenerating the single-header file for Compiler Explorer as part of this PR?

@crtrott wrote:

Let's do that in a separate PR, and maybe after your big guy is through.

That's fine! PR #408 actually fixes the dims namespace issue (implementing acceptance of P2389 in C++26) as a drive-by, because it was easier to use dims to write tests. It also adds a test for dims.

@crtrott wrote:

... currently Kokkos leadership is leaning towards a recommendation (not enforcement) that we have a unified versioning.... Any strong feelings on that? If we go with that recommendation for mdspan, we would release as mdspan 5.1 ...

I think that's a reasonable idea. I'm talking it over with colleagues. Would you plan the same thing for the reference std::linalg implementation as well?

@nmm0 nmm0 merged commit 96b13fb into kokkos:stable Feb 12, 2026
15 checks passed
@nmm0 nmm0 deleted the 404-move-padded-layout-out-of-experimental branch February 12, 2026 18:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

move padded layout out of experimental

3 participants