From 0f1dc08a29e2b4170b64cb2db614a0c8423c45da Mon Sep 17 00:00:00 2001 From: Josh Buckner Date: Fri, 27 Feb 2026 14:24:33 -0500 Subject: [PATCH 1/4] remove Rf_error in favor of modern Rcpp::stop --- src/r_smahal.cc | 2 +- src/smahal.cc | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/r_smahal.cc b/src/r_smahal.cc index 3f90d07a..acbfcddd 100644 --- a/src/r_smahal.cc +++ b/src/r_smahal.cc @@ -9,7 +9,7 @@ SEXP r_smahal(SEXP index, SEXP data, SEXP z) { Rcpp::NumericMatrix dataMat(data); DMAT * ans = smahal(dataMat.nrow(), dataMat.ncol(), REAL(data), LOGICAL(z)); if(ans == NULL || ans->nr < 1 || ans->nc <1) - Rf_error("smahal_nosexp returned an invalid answer"); + Rcpp::stop("smahal_nosexp returned an invalid answer"); SEXP out; Rf_protect(out = Rf_allocMatrix(REALSXP, ans->nr, ans->nc)); diff --git a/src/smahal.cc b/src/smahal.cc index fac797df..0448017d 100644 --- a/src/smahal.cc +++ b/src/smahal.cc @@ -1,4 +1,5 @@ #include "smahal.h" +#include void rank(int n, const double * data, double * ranks) { double @@ -36,7 +37,7 @@ bool rerank_dups(int n, const double * data, double * ranks) { if(data[j] == data[i]) { dup_idx[ndups] = j; ndups++; - any_ties = true; + any_ties = true; mean_rank += ranks[j]; visited[j] = 1; } @@ -151,9 +152,9 @@ void ginv_square(double * square_mat, int n) { } if(info < 0) - Rf_error("dgesdd: problem with one of the arguments"); + Rcpp::stop("dgesdd: problem with one of the arguments"); else if(info > 0) - Rf_error("dgesdd: dbdsdc did not converge, updating process failed"); + Rcpp::stop("dgesdd: dbdsdc did not converge, updating process failed"); double smax = dmax(n, s), @@ -161,9 +162,9 @@ void ginv_square(double * square_mat, int n) { for(int i = 0; i < n; i++) { if(s[i] > cutoff) - s[i] = 1.0 / s[i]; + s[i] = 1.0 / s[i]; else - s[i] = 0.0; + s[i] = 0.0; } transpose_sq(n, vt); @@ -274,7 +275,7 @@ DMAT * smahal(int nr, int nc, double * data, int * z) { DMAT * out_distances = R_Calloc(1, DMAT); if(out_distances == NULL) - Rf_error("smahal:out_distances:NULL R_Calloc\n"); + Rcpp::stop("smahal:out_distances:NULL R_Calloc\n"); out_distances->data = R_Calloc(ntreat * ncontrol, double); out_distances->nr = ntreat; From bf176c619e16e52b42d5d0ed45acdde1fad499b6 Mon Sep 17 00:00:00 2001 From: Josh Buckner Date: Fri, 27 Feb 2026 15:04:53 -0500 Subject: [PATCH 2/4] Makevars no longer necessary --- src/Makevars | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 src/Makevars diff --git a/src/Makevars b/src/Makevars deleted file mode 100644 index ba14d3e6..00000000 --- a/src/Makevars +++ /dev/null @@ -1,2 +0,0 @@ -PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` -PKG_CPPFLAGS = -DUSE_FC_LEN_T From c8e0428b66bbab8158daf41c1bf882a014a31a3f Mon Sep 17 00:00:00 2001 From: Josh Buckner Date: Fri, 27 Feb 2026 15:09:19 -0500 Subject: [PATCH 3/4] Revert "Makevars no longer necessary" This reverts commit bf176c619e16e52b42d5d0ed45acdde1fad499b6. --- src/Makevars | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 src/Makevars diff --git a/src/Makevars b/src/Makevars new file mode 100644 index 00000000..ba14d3e6 --- /dev/null +++ b/src/Makevars @@ -0,0 +1,2 @@ +PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` +PKG_CPPFLAGS = -DUSE_FC_LEN_T From 4a7ce51241ad25c948f4a206ae30139921fbb669 Mon Sep 17 00:00:00 2001 From: Josh Buckner Date: Fri, 27 Feb 2026 15:30:38 -0500 Subject: [PATCH 4/4] ok just take LdFlags out of Makevars as Windows still needs it --- src/Makevars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makevars b/src/Makevars index ba14d3e6..194af47f 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,2 +1,2 @@ -PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` +PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) PKG_CPPFLAGS = -DUSE_FC_LEN_T