From 210c51bab4256d031fca63ffdffb525d9e507fa2 Mon Sep 17 00:00:00 2001 From: Jiaming Yuan Date: Mon, 24 Nov 2025 17:44:56 +0800 Subject: [PATCH] [backport][R] Fix winbuilder check warnings. (#11830) --- R-package/R/utils.R | 1 + R-package/R/xgb.Booster.R | 1 + R-package/configure | 4 ++-- R-package/configure.ac | 2 +- .../a-compatibility-note-for-saveRDS-save.Rd | 1 + R-package/man/predict.xgb.Booster.Rd | 1 + R-package/{ => src}/config.h.in | 2 +- R-package/src/init.c | 4 ++-- ops/script/test_r_package.py | 1 + src/data/sparse_page_source.cc | 19 +++++++++++++------ tests/cpp/helpers.cc | 7 ++++--- 11 files changed, 28 insertions(+), 15 deletions(-) rename R-package/{ => src}/config.h.in (96%) diff --git a/R-package/R/utils.R b/R-package/R/utils.R index 8a874cac5b68..17fe6f65e900 100644 --- a/R-package/R/utils.R +++ b/R-package/R/utils.R @@ -482,6 +482,7 @@ xgb.createFolds <- function(y, k) { #' \url{https://xgboost.readthedocs.io/en/latest/tutorials/saving_model.html}. #' #' @examples +#' \dontshow{RhpcBLASctl::omp_set_num_threads(1)} #' data(agaricus.train, package = "xgboost") #' #' bst <- xgb.train( diff --git a/R-package/R/xgb.Booster.R b/R-package/R/xgb.Booster.R index 19a197a5b3b3..ebc4a9bb61f8 100644 --- a/R-package/R/xgb.Booster.R +++ b/R-package/R/xgb.Booster.R @@ -252,6 +252,7 @@ xgb.get.handle <- function(object) { #' \url{https://arxiv.org/abs/1706.06060} #' #' @examples +#' \dontshow{RhpcBLASctl::omp_set_num_threads(1)} #' ## binary classification: #' #' data(agaricus.train, package = "xgboost") diff --git a/R-package/configure b/R-package/configure index 5db5f8adc2c9..1f70a224a503 100755 --- a/R-package/configure +++ b/R-package/configure @@ -3353,7 +3353,7 @@ fi ac_config_files="$ac_config_files src/Makevars" -ac_config_headers="$ac_config_headers config.h" +ac_config_headers="$ac_config_headers src/config.h" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -4041,7 +4041,7 @@ for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; - "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac diff --git a/R-package/configure.ac b/R-package/configure.ac index b8c7debec6ad..eb78356ac7e0 100644 --- a/R-package/configure.ac +++ b/R-package/configure.ac @@ -122,5 +122,5 @@ AC_SUBST(BACKTRACE_LIB) AC_SUBST(XGBOOST_BUILTIN_PREFETCH_PRESENT) AC_SUBST(XGBOOST_MM_PREFETCH_PRESENT) AC_CONFIG_FILES([src/Makevars]) -AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_HEADERS([src/config.h]) AC_OUTPUT diff --git a/R-package/man/a-compatibility-note-for-saveRDS-save.Rd b/R-package/man/a-compatibility-note-for-saveRDS-save.Rd index fc0a8ff322a0..b14a4a4ac5c4 100644 --- a/R-package/man/a-compatibility-note-for-saveRDS-save.Rd +++ b/R-package/man/a-compatibility-note-for-saveRDS-save.Rd @@ -77,6 +77,7 @@ For more details and explanation about model persistence and archival, consult t \url{https://xgboost.readthedocs.io/en/latest/tutorials/saving_model.html}. } \examples{ +\dontshow{RhpcBLASctl::omp_set_num_threads(1)} data(agaricus.train, package = "xgboost") bst <- xgb.train( diff --git a/R-package/man/predict.xgb.Booster.Rd b/R-package/man/predict.xgb.Booster.Rd index 1cc2444cdda7..a374acd6eb3b 100644 --- a/R-package/man/predict.xgb.Booster.Rd +++ b/R-package/man/predict.xgb.Booster.Rd @@ -211,6 +211,7 @@ If you want to change their number, assign a new number to \code{nthread} using Note that converting a matrix to \code{\link[=xgb.DMatrix]{xgb.DMatrix()}} uses multiple threads too. } \examples{ +\dontshow{RhpcBLASctl::omp_set_num_threads(1)} ## binary classification: data(agaricus.train, package = "xgboost") diff --git a/R-package/config.h.in b/R-package/src/config.h.in similarity index 96% rename from R-package/config.h.in rename to R-package/src/config.h.in index c503fc9044a4..f3327bc38c5c 100644 --- a/R-package/config.h.in +++ b/R-package/src/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ +/* src/config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD diff --git a/R-package/src/init.c b/R-package/src/init.c index fb40933ccb5b..ecff3e71da1c 100644 --- a/R-package/src/init.c +++ b/R-package/src/init.c @@ -58,14 +58,14 @@ extern SEXP XGDMatrixCreateFromDF_R(SEXP, SEXP, SEXP); extern SEXP XGDMatrixGetStrFeatureInfo_R(SEXP, SEXP); extern SEXP XGDMatrixNumCol_R(SEXP); extern SEXP XGDMatrixNumRow_R(SEXP); -extern SEXP XGProxyDMatrixCreate_R(); +extern SEXP XGProxyDMatrixCreate_R(void); extern SEXP XGProxyDMatrixSetDataDense_R(SEXP, SEXP); extern SEXP XGProxyDMatrixSetDataCSR_R(SEXP, SEXP); extern SEXP XGProxyDMatrixSetDataColumnar_R(SEXP, SEXP); extern SEXP XGDMatrixCreateFromCallback_R(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP XGQuantileDMatrixCreateFromCallback_R(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); extern SEXP XGDMatrixFree_R(SEXP); -extern SEXP XGGetRNAIntAsDouble(); +extern SEXP XGGetRNAIntAsDouble(void); extern SEXP XGDMatrixGetQuantileCut_R(SEXP); extern SEXP XGDMatrixNumNonMissing_R(SEXP); extern SEXP XGDMatrixGetDataAsCSR_R(SEXP); diff --git a/ops/script/test_r_package.py b/ops/script/test_r_package.py index ed0d6b1d9faa..0e87000ac2ee 100644 --- a/ops/script/test_r_package.py +++ b/ops/script/test_r_package.py @@ -48,6 +48,7 @@ def pkgroot(path: str) -> None: ) shutil.copytree("R-package", dest) + os.remove(dest / "bootstrap.R") # core shutil.copytree("src", dest / "src" / "src") shutil.copytree("include", dest / "src" / "include") diff --git a/src/data/sparse_page_source.cc b/src/data/sparse_page_source.cc index 5dcaa1b11945..50c48949f1a4 100644 --- a/src/data/sparse_page_source.cc +++ b/src/data/sparse_page_source.cc @@ -1,12 +1,13 @@ /** - * Copyright 2021-2024, XGBoost Contributors + * Copyright 2021-2025, XGBoost Contributors */ #include "sparse_page_source.h" -#include // for remove -#include // for exists -#include // for partial_sum -#include // for string +#include // for remove +#include // for exists, path, is_directory +#include // for partial_sum +#include // for string +#include // for string_view #include "../collective/communicator-inl.h" // for IsDistributed, GetRank @@ -31,7 +32,13 @@ void TryDeleteCacheFile(const std::string& file) { } std::string MakeCachePrefix(std::string cache_prefix) { - cache_prefix = cache_prefix.empty() ? "DMatrix" : cache_prefix; + std::string_view constexpr kDftname{"DMatrix"}; + cache_prefix = cache_prefix.empty() ? kDftname : cache_prefix; + // Use the directory if one exists + if (std::filesystem::is_directory(cache_prefix)) { + cache_prefix = (std::filesystem::path{cache_prefix} / kDftname).string(); // NOLINT + } + // Avoid conflicts in distributed environments. if (collective::IsDistributed()) { cache_prefix += ("-r" + std::to_string(collective::GetRank())); } diff --git a/tests/cpp/helpers.cc b/tests/cpp/helpers.cc index dcf0a694c897..c55cc0127218 100644 --- a/tests/cpp/helpers.cc +++ b/tests/cpp/helpers.cc @@ -492,9 +492,10 @@ void MakeLabels(DeviceOrd device, bst_idx_t n_samples, bst_target_t n_classes, std::shared_ptr p_fmat{ DMatrix::Create(static_cast(iter.get()), iter->Proxy(), Reset, Next, config)}; - auto row_page_path = - data::MakeId(prefix, dynamic_cast(p_fmat.get())) + ".row.page"; - EXPECT_TRUE(FileExists(row_page_path)) << row_page_path; + auto row_page_path = data::MakeId(data::MakeCachePrefix(prefix), + dynamic_cast(p_fmat.get())) + + ".row.page"; + EXPECT_TRUE(FileExists(row_page_path)) << row_page_path << " prefix:" << prefix; // Loop over the batches and count the number of pages std::size_t batch_count = 0;