From 0229888ac6f4702ce34ec8044197187485c2b6dc Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 30 Oct 2025 09:59:24 +0100 Subject: [PATCH 01/12] update xtensor includes --- include/xtensor-r/rarray.hpp | 10 +++++----- include/xtensor-r/rcontainer.hpp | 4 ++-- include/xtensor-r/roptional.hpp | 4 ++-- include/xtensor-r/rtensor.hpp | 8 ++++---- include/xtensor-r/rvectorize.hpp | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/xtensor-r/rarray.hpp b/include/xtensor-r/rarray.hpp index b7fd112..ef0b4cb 100644 --- a/include/xtensor-r/rarray.hpp +++ b/include/xtensor-r/rarray.hpp @@ -15,11 +15,11 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xcontainer.hpp" -#include "xtensor/xiterator.hpp" -#include "xtensor/xsemantic.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/containers/xcontainer.hpp" +#include "xtensor/core/xiterator.hpp" +#include "xtensor/core/xsemantic.hpp" +#include "xtensor/utils/xutils.hpp" #include "xtensor-r/rcontainer.hpp" diff --git a/include/xtensor-r/rcontainer.hpp b/include/xtensor-r/rcontainer.hpp index b275ef1..1400065 100644 --- a/include/xtensor-r/rcontainer.hpp +++ b/include/xtensor-r/rcontainer.hpp @@ -14,8 +14,8 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xcontainer.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/containers/xcontainer.hpp" #include "xtl/xsequence.hpp" diff --git a/include/xtensor-r/roptional.hpp b/include/xtensor-r/roptional.hpp index 5f721fa..5b2e6b9 100644 --- a/include/xtensor-r/roptional.hpp +++ b/include/xtensor-r/roptional.hpp @@ -16,8 +16,8 @@ #include -#include -#include +#include +#include #include "rarray.hpp" #include "rtensor.hpp" diff --git a/include/xtensor-r/rtensor.hpp b/include/xtensor-r/rtensor.hpp index 1f07b41..4992d5b 100644 --- a/include/xtensor-r/rtensor.hpp +++ b/include/xtensor-r/rtensor.hpp @@ -14,10 +14,10 @@ #include #include -#include "xtensor/xbuffer_adaptor.hpp" -#include "xtensor/xiterator.hpp" -#include "xtensor/xsemantic.hpp" -#include "xtensor/xutils.hpp" +#include "xtensor/containers/xbuffer_adaptor.hpp" +#include "xtensor/core/xiterator.hpp" +#include "xtensor/core/xsemantic.hpp" +#include "xtensor/utils/xutils.hpp" #include "rcontainer.hpp" diff --git a/include/xtensor-r/rvectorize.hpp b/include/xtensor-r/rvectorize.hpp index c4acad7..2cbd66d 100644 --- a/include/xtensor-r/rvectorize.hpp +++ b/include/xtensor-r/rvectorize.hpp @@ -13,7 +13,7 @@ #include #include "rarray.hpp" -#include "xtensor/xvectorize.hpp" +#include "xtensor/core/xvectorize.hpp" namespace xt { From ea0b75324746862068c74d8eb538a35e274acf7b Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 30 Oct 2025 09:59:46 +0100 Subject: [PATCH 02/12] update xtl disjunction --- include/xtensor-r/rcontainer.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xtensor-r/rcontainer.hpp b/include/xtensor-r/rcontainer.hpp index 1400065..6c6ce0a 100644 --- a/include/xtensor-r/rcontainer.hpp +++ b/include/xtensor-r/rcontainer.hpp @@ -142,7 +142,7 @@ namespace xt using difference_type = typename storage_type::difference_type; #ifndef XTENSOR_R_ALLOW_REINTERPRETATION - static_assert(xtl::disjunction, + static_assert(std::disjunction, std::is_same, std::is_same, std::is_same, From 2a7a16f7487763b6967ddcd7013676af943153a5 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 30 Oct 2025 10:04:14 +0100 Subject: [PATCH 03/12] update xtensor version --- CMakeLists.txt | 4 ++-- environment-dev.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cffb224..24741e1 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.25.0) -set(XTL_REQUIRED_VERSION 0.7.7) +set(XTENSOR_REQUIRED_VERSION 0.26.0) +set(XTL_REQUIRED_VERSION 0.8.0) 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 b3fd2a9..04ae19d 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -3,7 +3,7 @@ channels: - conda-forge dependencies: - cmake - - xtensor=0.25.0 + - xtensor=0.26.0 - r-base - r-rcpp # test dependencies From ef8f5313234a185d55f220db0a610674cd4b48f7 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 30 Oct 2025 10:21:50 +0100 Subject: [PATCH 04/12] update xtensor includes in test --- test/rcpp_tests.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rcpp_tests.cpp b/test/rcpp_tests.cpp index ddc58f5..f7de44d 100644 --- a/test/rcpp_tests.cpp +++ b/test/rcpp_tests.cpp @@ -12,8 +12,8 @@ #include "xtensor-r/rcontainer.hpp" #include "xtensor-r/rarray.hpp" -#include "xtensor/xmath.hpp" -#include "xtensor/xio.hpp" +#include "xtensor/core/xmath.hpp" +#include "xtensor/io/xio.hpp" // [[Rcpp::export]] int modify_cpp(xt::rarray& x) From 14131489756af27c1eb0c488359627f6d4da9736 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Thu, 30 Oct 2025 10:25:15 +0100 Subject: [PATCH 05/12] update xtensor includes in test --- test/test_common.hpp | 4 ++-- test/test_rarray.cpp | 2 +- test/test_rreducer.cpp | 6 +++--- test/test_rtensor.cpp | 2 +- test/test_sfinae.cpp | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test_common.hpp b/test/test_common.hpp index f21044b..d67f4c5 100644 --- a/test/test_common.hpp +++ b/test/test_common.hpp @@ -10,8 +10,8 @@ #ifndef TEST_COMMON_HPP #define TEST_COMMON_HPP -#include "xtensor/xlayout.hpp" -#include "xtensor/xmanipulation.hpp" +#include "xtensor/core/xlayout.hpp" +#include "xtensor/misc/xmanipulation.hpp" #include "xtl/xsequence.hpp" diff --git a/test/test_rarray.cpp b/test/test_rarray.cpp index fb2ca36..3fd5236 100644 --- a/test/test_rarray.cpp +++ b/test/test_rarray.cpp @@ -9,7 +9,7 @@ #include "gtest/gtest.h" -#include "xtensor/xarray.hpp" +#include "xtensor/containers/xarray.hpp" #include "xtensor-r/rarray.hpp" diff --git a/test/test_rreducer.cpp b/test/test_rreducer.cpp index bced67c..6c5e20f 100644 --- a/test/test_rreducer.cpp +++ b/test/test_rreducer.cpp @@ -9,9 +9,9 @@ #include -#include -#include -#include +#include +#include +#include #include "xtensor-r/rarray.hpp" #include "xtensor-r/rtensor.hpp" diff --git a/test/test_rtensor.cpp b/test/test_rtensor.cpp index 95e7909..505d805 100644 --- a/test/test_rtensor.cpp +++ b/test/test_rtensor.cpp @@ -14,7 +14,7 @@ #include #include -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xtensor.hpp" #include "xtensor-r/rtensor.hpp" diff --git a/test/test_sfinae.cpp b/test/test_sfinae.cpp index f961c7f..8220da1 100644 --- a/test/test_sfinae.cpp +++ b/test/test_sfinae.cpp @@ -12,8 +12,8 @@ #include "gtest/gtest.h" #include "xtensor-r/rtensor.hpp" #include "xtensor-r/rarray.hpp" -#include "xtensor/xarray.hpp" -#include "xtensor/xtensor.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/containers/xtensor.hpp" namespace xt { From 90ca131d27394fa7fe7e2107f685ebbcddae4024 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 18:21:47 +0100 Subject: [PATCH 06/12] upgraded to C++17 --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24741e1..a2e46b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,8 @@ add_library(xtensor-r INTERFACE) target_include_directories(xtensor-r INTERFACE $ $) +target_compile_features(xtensor INTERFACE cxx_std_17) + target_link_libraries(xtensor-r INTERFACE xtensor) get_target_property(inc_dir xtensor-r INTERFACE_INCLUDE_DIRECTORIES) message(STATUS "${inc_dir}") From 7f4023ee40b2f75320c82b3faf086516e0ff97ee Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 18:26:36 +0100 Subject: [PATCH 07/12] upgraded to C++17 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2e46b2..371b123 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 INTERFACE cxx_std_17) +target_compile_features(xtensor-r INTERFACE cxx_std_17) target_link_libraries(xtensor-r INTERFACE xtensor) get_target_property(inc_dir xtensor-r INTERFACE_INCLUDE_DIRECTORIES) From 57f67a9bc94a113936be440bf07bf31282bb1b17 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 18:33:43 +0100 Subject: [PATCH 08/12] upgraded to C++17 --- test/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 093a636..7c07bc4 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++14" HAS_CPP14_FLAG) + CHECK_CXX_COMPILER_FLAG("-std=c++17" HAS_CPP17_FLAG) - if (HAS_CPP14_FLAG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + if (HAS_CPP17_FLAG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() - message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++14 support!") + message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++17 support!") endif() endif() From e8a36220cc2108564ba07d57b7f7e603808d31c9 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 19:30:39 +0100 Subject: [PATCH 09/12] upgraded to C++17 --- test/rcpp_tests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/rcpp_tests.cpp b/test/rcpp_tests.cpp index f7de44d..7914fc1 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(cpp14)]] +// [[Rcpp::plugins(cpp17)]] // [[Rcpp::depends(xtensor)]] #include "xtensor-r/rcontainer.hpp" From d3141611f327d91071e0a36b47e00b9e24fdea57 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 19:32:44 +0100 Subject: [PATCH 10/12] upgraded to C++17 --- .github/workflows/linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 73bb838..5af347f 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 "CXX14=$CXX" >> ~/.R/Makevars - echo "CXX14FLAGS=-fPIC -O2" >> ~/.R/Makevars + echo "CXX17=$CXX" >> ~/.R/Makevars + echo "CXX17FLAGS=-fPIC -O2" >> ~/.R/Makevars Rscript ./unittest.R From 2d89b6265b13574a777b14905625903f44a723e8 Mon Sep 17 00:00:00 2001 From: fbourgin Date: Wed, 5 Nov 2025 20:08:51 +0100 Subject: [PATCH 11/12] update Xtensor.R --- .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 5af347f..1d0cdce 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('xtensor-stack/Xtensor.R', configure.args = '--novendor')" + R -e "library(devtools); install_github('fbourgin/Xtensor.R', ref = 'update_xtensor', configure.args = '--novendor')" - name: print R HOME run: | From 77cd88bf09b7cb3367c200ebeabb8b7d6246d03a Mon Sep 17 00:00:00 2001 From: fbourgin Date: Fri, 14 Nov 2025 16:32:56 +0100 Subject: [PATCH 12/12] Linux clang 19 --- .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 1d0cdce..d50e367 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -22,7 +22,7 @@ jobs: - {compiler: gcc, version: '12'} - {compiler: gcc, version: '13'} - {compiler: gcc, version: '14'} - #- {compiler: clang, version: '19'} + - {compiler: clang, version: '19'} - {compiler: clang, version: '20'} steps: