diff --git a/.github/actions/abi-compat/Dockerfile b/.github/actions/abi-compat/Dockerfile index 8ad00b170..006e3c4ba 100644 --- a/.github/actions/abi-compat/Dockerfile +++ b/.github/actions/abi-compat/Dockerfile @@ -1,6 +1,8 @@ FROM ghcr.io/rse-ops/gcc-ubuntu-20.04:gcc-8.1.0 -RUN sudo apt-get -qq update && sudo apt-get install -y --no-install-recommends abigail-tools perl-base binutils libtool pkg-config elfutils libelf-dev +RUN sudo apt-get -qq update && sudo apt-get install -y --no-install-recommends abigail-tools perl-base binutils libtool pkg-config elfutils libelf-dev python3-pip + +RUN sudo pip3 install cmake --upgrade RUN git clone https://github.com/lvc/vtable-dumper && cd vtable-dumper \ && sudo make install diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2ddd32d65..56dd33b16 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,8 +79,8 @@ jobs: UMPIRE_ENABLE_TOOLS=Off UMPIRE_ENABLE_DEVELOPER_BENCHMARKS=On UMPIRE_ENABLE_BENCHMARKS=Off - BLT_CXX_STD="c++17" - CMAKE_CXX_STANDARD=17 + BLT_CXX_STD="c++20" + CMAKE_CXX_STANDARD=20 CMAKE_BUILD_TYPE=Release ${{ matrix.shared.args }} run-build: true diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f58ec84e..ae1e22be6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # # SPDX-License-Identifier: (MIT) ############################################################################## -cmake_minimum_required(VERSION 3.23) +cmake_minimum_required(VERSION 3.24.2) cmake_policy(SET CMP0025 NEW) cmake_policy(SET CMP0048 NEW) @@ -26,33 +26,36 @@ set(UMPIRE_VERSION_RC "") include(cmake/SetupUmpireOptions.cmake) -# Default to c++17 if not specified by the user. -set(BLT_CXX_STD "c++17" CACHE STRING "Version of C++ standard") +# Default to c++20 if not specified by the user. +set(BLT_CXX_STD "c++20" CACHE STRING "Version of C++ standard") -# If BLT_CXX_STD is set by the user, check that it is at least 17. +# If BLT_CXX_STD is set by the user, check that it is at least 20. if("${BLT_CXX_STD}" STREQUAL "c++98" OR "${BLT_CXX_STD}" STREQUAL "c++03" OR "${BLT_CXX_STD}" STREQUAL "c++11" OR - "${BLT_CXX_STD}" STREQUAL "c++14") - message(FATAL_ERROR "Umpire requires a minimum C++ standard of c++17. Please set BLT_CXX_STD accordingly.") + "${BLT_CXX_STD}" STREQUAL "c++14" OR + "${BLT_CXX_STD}" STREQUAL "c++17") + message(FATAL_ERROR "Umpire requires a minimum C++ standard of c++20. Please set BLT_CXX_STD accordingly.") endif() -# If CMAKE_CUDA_STANDARD is set by the user, check that it is at least 17. +# If CMAKE_CUDA_STANDARD is set by the user, check that it is at least 20. # If it is not set, it will be set later by BLT to match BLT_CXX_STD. if ("${CMAKE_CUDA_STANDARD}" STREQUAL "98" OR "${CMAKE_CUDA_STANDARD}" STREQUAL "03" OR "${CMAKE_CUDA_STANDARD}" STREQUAL "11" OR - "${CMAKE_CUDA_STANDARD}" STREQUAL "14") - message(FATAL_ERROR "Umpire requires a minimum CUDA standard of 17. Please set BLT_CXX_STD and/or CMAKE_CUDA_STANDARD accordingly.") + "${CMAKE_CUDA_STANDARD}" STREQUAL "14" OR + "${CMAKE_CUDA_STANDARD}" STREQUAL "17") + message(FATAL_ERROR "Umpire requires a minimum CUDA standard of 20. Please set BLT_CXX_STD and/or CMAKE_CUDA_STANDARD accordingly.") endif() -# If CMAKE_HIP_STANDARD is set by the user, check that it is at least 17. +# If CMAKE_HIP_STANDARD is set by the user, check that it is at least 20. # If it is not set, it will be set later by BLT to match BLT_CXX_STD. if ("${CMAKE_HIP_STANDARD}" STREQUAL "98" OR "${CMAKE_HIP_STANDARD}" STREQUAL "03" OR "${CMAKE_HIP_STANDARD}" STREQUAL "11" OR - "${CMAKE_HIP_STANDARD}" STREQUAL "14") - message(FATAL_ERROR "Umpire requires a minimum HIP standard of 17. Please set BLT_CXX_STD and/or CMAKE_HIP_STANDARD accordingly.") + "${CMAKE_HIP_STANDARD}" STREQUAL "14" OR + "${CMAKE_HIP_STANDARD}" STREQUAL "17") + message(FATAL_ERROR "Umpire requires a minimum HIP standard of 20. Please set BLT_CXX_STD and/or CMAKE_HIP_STANDARD accordingly.") endif() if (UMPIRE_ENABLE_SYCL) @@ -174,16 +177,6 @@ include(cmake/SetupCMakeBasics.cmake) include(cmake/SetupCompilerFlags.cmake) include(cmake/SetupUmpireThirdParty.cmake) -if (WIN32) - if ((NOT UMPIRE_ENABLE_FILESYSTEM) OR (CMAKE_CXX_STANDARD LESS 17)) - message(FATAL_ERROR "\ - Windows builds require the FileSystem to be enabled \ - and the C/C++ standard to be set to 17 or higher. \ - Please re-configure with UMPIRE_ENABLE_FILESYSTEM=ON, \ - with BLT_CXX_STD=c++17 or greater.") - endif() -endif() - add_subdirectory(src) configure_package_config_file( diff --git a/examples/resource_aware_pool_example.cpp b/examples/resource_aware_pool_example.cpp index 3040bdd10..35add6069 100644 --- a/examples/resource_aware_pool_example.cpp +++ b/examples/resource_aware_pool_example.cpp @@ -53,7 +53,7 @@ __device__ void sleep(clock_value_t sleep_cycles) __global__ void do_sleep() { // sleep - works still at 1000, so keeping it at 100k - sleep(10000000); + sleep((clock_value_t)10000000); } #endif diff --git a/scripts/radiuss-spack-configs b/scripts/radiuss-spack-configs index fddc4f16e..73fa6f68b 160000 --- a/scripts/radiuss-spack-configs +++ b/scripts/radiuss-spack-configs @@ -1 +1 @@ -Subproject commit fddc4f16ee987abc9c1c61879eaf8a2d6a8253d9 +Subproject commit 73fa6f68b8072fcb6de890165c7b78e0d980251a diff --git a/src/tpl/umpire/CLI11/CLI11.hpp b/src/tpl/umpire/CLI11/CLI11.hpp index 39d9db765..eb12dabb8 100644 --- a/src/tpl/umpire/CLI11/CLI11.hpp +++ b/src/tpl/umpire/CLI11/CLI11.hpp @@ -6431,14 +6431,14 @@ struct AppFriend { /// Wrap _parse_short, perfectly forward arguments and return template static auto parse_arg(App *app, Args &&... args) -> - typename std::result_of::type { + typename std::invoke_result::type { return app->_parse_arg(std::forward(args)...); } /// Wrap _parse_subcommand, perfectly forward arguments and return template static auto parse_subcommand(App *app, Args &&... args) -> - typename std::result_of::type { + typename std::invoke_result::type { return app->_parse_subcommand(std::forward(args)...); } /// Wrap the fallthrough parent function to make sure that is working correctly diff --git a/src/tpl/umpire/fmt b/src/tpl/umpire/fmt index e69e5f977..407c905e4 160000 --- a/src/tpl/umpire/fmt +++ b/src/tpl/umpire/fmt @@ -1 +1 @@ -Subproject commit e69e5f977d458f2650bb346dadf2ad30c5320281 +Subproject commit 407c905e45ad75fc29bf0f9bb7c5c2fd3475976f