From 3fd58ce1c113d10d4dfb19b070765bf5aec280d5 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 6 Nov 2025 09:57:19 +0100 Subject: [PATCH 1/5] upgraded to C++20 --- .github/workflows/linux.yml | 4 ++-- CMakeLists.txt | 2 +- test/CMakeLists.txt | 8 ++++---- test/rcpp_tests.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d50e367..a46f5bf 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -96,7 +96,7 @@ jobs: if [[ "${{matrix.sys.compiler}}" = "gcc" ]]; then export CC=gcc-${{matrix.sys.version}}; export CXX=g++-${{matrix.sys.version}}; else export CC=clang; export CXX=clang++; fi mkdir ~/.R touch ~/.R/Makevars - echo "CXX17=$CXX" >> ~/.R/Makevars - echo "CXX17FLAGS=-fPIC -O2" >> ~/.R/Makevars + echo "CXX20=$CXX" >> ~/.R/Makevars + echo "CXX20FLAGS=-fPIC -O2" >> ~/.R/Makevars Rscript ./unittest.R diff --git a/CMakeLists.txt b/CMakeLists.txt index 371b123..4625980 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,7 @@ add_library(xtensor-r INTERFACE) target_include_directories(xtensor-r INTERFACE $ $) -target_compile_features(xtensor-r INTERFACE cxx_std_17) +target_compile_features(xtensor-r INTERFACE cxx_std_20) target_link_libraries(xtensor-r INTERFACE xtensor) get_target_property(inc_dir xtensor-r INTERFACE_INCLUDE_DIRECTORIES) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 7c07bc4..f6a7197 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,12 +33,12 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion") - CHECK_CXX_COMPILER_FLAG("-std=c++17" HAS_CPP17_FLAG) + CHECK_CXX_COMPILER_FLAG("-std=c++20" HAS_CPP20_FLAG) - if (HAS_CPP17_FLAG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + if (HAS_CPP20_FLAG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") else() - message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++17 support!") + message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++20 support!") endif() endif() diff --git a/test/rcpp_tests.cpp b/test/rcpp_tests.cpp index 7914fc1..2932203 100644 --- a/test/rcpp_tests.cpp +++ b/test/rcpp_tests.cpp @@ -7,7 +7,7 @@ * The full license is in the file LICENSE, distributed with this software. * ****************************************************************************/ -// [[Rcpp::plugins(cpp17)]] +// [[Rcpp::plugins(cpp20)]] // [[Rcpp::depends(xtensor)]] #include "xtensor-r/rcontainer.hpp" From d2bd28af6dadaa649656e0dfa726a7489f1ec77d Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 6 Nov 2025 09:57:54 +0100 Subject: [PATCH 2/5] upgraded to xtensor 0.27 --- .github/workflows/linux.yml | 2 +- CMakeLists.txt | 4 ++-- environment-dev.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index a46f5bf..838a826 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -78,7 +78,7 @@ jobs: echo "which tar" which tar export TAR="/usr/bin/tar" - R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor', configure.args = '--novendor')" + R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor_0.27', configure.args = '--novendor')" - name: print R HOME run: | diff --git a/CMakeLists.txt b/CMakeLists.txt index 4625980..a0dcc01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,8 +16,8 @@ set(XTENSOR_R_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) # Versionning # =========== -set(XTENSOR_REQUIRED_VERSION 0.26.0) -set(XTL_REQUIRED_VERSION 0.8.0) +set(XTENSOR_REQUIRED_VERSION 0.27.1) +set(XTL_REQUIRED_VERSION 0.8.1) set(XTENSOR_R_CONFIG_FILE "${XTENSOR_R_INCLUDE_DIR}/xtensor-r/xtensor_r_config.hpp") diff --git a/environment-dev.yml b/environment-dev.yml index 04ae19d..c7dc7ce 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - cmake - - xtensor=0.26.0 + - xtensor=0.27.1 - r-base - r-rcpp # test dependencies From b0f0b5120a723386c9cf16f724455036e4d8dbd0 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 13 Nov 2025 13:42:02 +0100 Subject: [PATCH 3/5] upgraded to C++20 --- .github/workflows/linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 838a826..0a91b1e 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -97,6 +97,6 @@ jobs: mkdir ~/.R touch ~/.R/Makevars echo "CXX20=$CXX" >> ~/.R/Makevars - echo "CXX20FLAGS=-fPIC -O2" >> ~/.R/Makevars + echo "CXX20FLAGS=-fPIC -O2 -std=c++20" >> ~/.R/Makevars Rscript ./unittest.R From b36d8272861cb3bc893acb96f3939d25d96a7407 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 13 Nov 2025 13:57:41 +0100 Subject: [PATCH 4/5] upgraded to C++20 --- test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index f6a7197..3e43a44 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -32,7 +32,7 @@ include(CheckCXXCompilerFlag) string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion -D_LIBCPP_DISABLE_AVAILABILITY") CHECK_CXX_COMPILER_FLAG("-std=c++20" HAS_CPP20_FLAG) if (HAS_CPP20_FLAG) From 2b9c694dc1cb96abc60462d529d332cf7a96be0b Mon Sep 17 00:00:00 2001 From: fbourgin Date: Fri, 14 Nov 2025 15:48:37 +0100 Subject: [PATCH 5/5] update Xtensor.R --- .github/workflows/osx.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index 71ab857..3a13282 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -51,7 +51,7 @@ jobs: echo "which tar" which tar export TAR="/usr/bin/tar" - R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor', configure.args = '--novendor')" + R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor_0.27', configure.args = '--novendor')" - name: print R HOME run: |