-
Notifications
You must be signed in to change notification settings - Fork 407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow using C++23 #5283
Allow using C++23 #5283
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me
adade9f
to
94ddaeb
Compare
This is good enough for me now. To have at least one C++20 and one C++23 it seemed easiest to pick CI builds that require very recent compilers anyway. I first played with |
The |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I object to the CI changes as they are now
Bumping 14 -> 17 and 17 -> 20, sure. But not C++23
cmake/kokkos_pick_cxx_std.cmake
Outdated
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++20") | ||
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++20'. Use '20' instead.") | ||
SET(KOKKOS_CXX_STANDARD "20") | ||
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++23") | ||
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++23'. Use '23' instead.") | ||
SET(KOKKOS_CXX_STANDARD "23") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd argue for turning the deprecation message above into an error and remove that block altogether.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's discuss that in another pull request.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah I do want one C++23 build, but its fine with me if that is a GCC build on github. using GCC 12 preferrably.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can happenlater btw.
#if (defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) || \ | ||
defined(KOKKOS_ENABLE_CXX23)) && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mark it FIXME_CXX17
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All these places are already (supposed to be part of #5295) and I would assume any cleanup after requiring C++17 to search for KOKKOS_ENABLE_CXX17
anyway.
@@ -644,7 +645,8 @@ static constexpr bool kokkos_omp_on_host() { return false; } | |||
#define KOKKOS_ENABLE_CUDA_LDG_INTRINSIC | |||
#endif | |||
|
|||
#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) | |||
#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) || \ | |||
defined(KOKKOS_ENABLE_CXX23) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment
#if defined(KOKKOS_ENABLE_CXX17) || defined(KOKKOS_ENABLE_CXX20) || \ | ||
defined(KOKKOS_ENABLE_CXX23) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
FIXME_CXX17
This still assumes that C++14 is allowed.