From 747fc0d416624f32fd9711ee52c3aae62446edd3 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 25 Nov 2025 09:41:53 -0600 Subject: [PATCH 01/51] Emit message if R.h included, can turn to warning (#1411) * Add a message header * Use a dedicated header file * Add override, update ChangeLog * Listened to the robot and took his advice --- ChangeLog | 11 +++++++ inst/include/Rcpp/r/check_r_headers.h | 44 +++++++++++++++++++++++++++ inst/include/RcppCommon.h | 3 +- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 inst/include/Rcpp/r/check_r_headers.h diff --git a/ChangeLog b/ChangeLog index 9911a8173..b08ef1f73 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2025-11-24 Dirk Eddelbuettel + + * inst/include/Rcpp/r/check_r_headers.h: Add RCPP_NO_R_HEADERS_CHECK + override to skip new check + +2025-11-23 Dirk Eddelbuettel + + * inst/include/Rcpp/r/check_r_headers.h: New header to check if R.h + or related R headers were installed first + * inst/include/RcppCommon.h: Call new header as first thing + 2025-11-04 Dirk Eddelbuettel * .github/workflows/macos.yaml (jobs): Roll macos-13 to macos-14 diff --git a/inst/include/Rcpp/r/check_r_headers.h b/inst/include/Rcpp/r/check_r_headers.h new file mode 100644 index 000000000..9bddb5619 --- /dev/null +++ b/inst/include/Rcpp/r/check_r_headers.h @@ -0,0 +1,44 @@ +// check_r_headers.h: Rcpp R/C++ interface class library -- R header check +// +// Copyright (C) 2025 - current Dirk Eddelbuettel +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef RCPP__CHECK__R__HEADERS__H +#define RCPP__CHECK__R__HEADERS__H + +// Allow an escape hatch +#if !defined(RCPP_NO_R_HEADERS_CHECK) + + #if defined(R_R_H) && defined(USING_R) + #pragma message "R.h has been included before any Rcpp headers. This can lead to hard-to-debug errors, and is not necessary. See https://github.com/RcppCore/Rcpp/issues/1410" + #endif + + #if defined(RINTERFACE_H_) + #pragma message "Rinterface.h has been included before any Rcpp headers. This can lead to hard-to-debug errors, and is not necessary. See https://github.com/RcppCore/Rcpp/issues/1410" + #endif + + #if defined(R_INTERNALS_H_) + #pragma message "Rinternals.h has been included before any Rcpp headers. This can lead to hard-to-debug errors, and is not necessary. See https://github.com/RcppCore/Rcpp/issues/1410" + #endif + + #if defined(R_DEFINES_H_) + #pragma message "Rdefines.h has been included before any Rcpp headers. This can lead to hard-to-debug errors, and is not necessary. See https://github.com/RcppCore/Rcpp/issues/1410" + #endif + +#endif // escape hatch '!defined(RCPP_NO_R_HEADERS_CHECK)' + +#endif // header guard diff --git a/inst/include/RcppCommon.h b/inst/include/RcppCommon.h index 8f28fd035..03d5739f2 100644 --- a/inst/include/RcppCommon.h +++ b/inst/include/RcppCommon.h @@ -4,7 +4,7 @@ // // Copyright (C) 2008 - 2009 Dirk Eddelbuettel // Copyright (C) 2009 - 2020 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2021 - 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -27,6 +27,7 @@ // #define RCPP_DEBUG_LEVEL 1 // #define RCPP_DEBUG_MODULE_LEVEL 1 +#include #include #include From 52ab64d61367ef0b938bb82c8e8e9f3ba30c34d4 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 25 Nov 2025 10:16:20 -0600 Subject: [PATCH 02/51] Roll micro version and date Using 1.1.0.6 as .5 suffix was used for some of the Rf_error runs --- DESCRIPTION | 4 ++-- inst/include/Rcpp/config.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 68aeb7f6b..2c21263f8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.4 -Date: 2025-10-13 +Version: 1.1.0.6 +Date: 2025-11-25 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index d5e330708..ca3bc9ebd 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,4) -#define RCPP_DEV_VERSION_STRING "1.1.0.4" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,6) +#define RCPP_DEV_VERSION_STRING "1.1.0.6" #endif From 274f5abaad660ba8f08d5da1f79283a6950698da Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 25 Nov 2025 10:37:00 -0600 Subject: [PATCH 03/51] Update NEWS with a few of the recent PRs [ci skip] --- inst/NEWS.Rd | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 3565ac5bb..06e1a4b65 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -10,6 +10,12 @@ \item An unused old R function for a compiler version check has been removed after checking no known package uses it (Dirk in \ghpr{1395}) \item A narrowing warning is avoided via a cast (Dirk in \ghpr{1398}) + \item Demangling checks have been simplified (Iñaki in \ghpr{1401} + addressing \ghit{1400}) + \item The treatment of signed zeros is now improved in the Sugar code + (Iñaki in \ghpr{1404}) + \item A message is shown if \code{R.h} is included before Rcpp headers + as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) } \item Changes in Rcpp Documentation: \itemize{ @@ -17,6 +23,12 @@ from \pkg{R.rsp} (Dirk in \ghpr{1394} fixing \ghit{1393}) \item R is now cited via its DOI (Dirk) } + \item Changes in Rcpp Deployment: + \itemize{ + \item A temporary change in R-devel concerning NA part in complex variables + was accommodated, and then reverted (Dirk in \ghpr{1399} fixing \ghit{1397}) + \item The macOS CI runners now use macos-14 (Dirk in \ghpr{1405}) + } } } From d65b66ace3705a8fb6006374fe98a6d95e3342fc Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 2 Dec 2025 07:07:00 -0600 Subject: [PATCH 04/51] Use message() to signal very old helper functions are redundant (#1413) --- ChangeLog | 5 +++++ R/RcppLdpath.R | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index b08ef1f73..51ddfe319 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-11-29 Dirk Eddelbuettel + + * R/RcppLdpath.R: Revisit deprecation warnings via 'message()' to be + turned into warning or deprecation in 12 or more months 'when suitable' + 2025-11-24 Dirk Eddelbuettel * inst/include/Rcpp/r/check_r_headers.h: Add RCPP_NO_R_HEADERS_CHECK diff --git a/R/RcppLdpath.R b/R/RcppLdpath.R index c0a37b528..73fa4a9af 100644 --- a/R/RcppLdpath.R +++ b/R/RcppLdpath.R @@ -33,6 +33,7 @@ Rcpp.quoteNonStandard <- function(path) { RcppLdPath <- function() { #.Deprecated(msg=paste("This function is now deprecated as it has not", # "been needed since 2013.")) + message("'RcppLdPath' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") "" } @@ -47,6 +48,7 @@ RcppLdPath <- function() { RcppLdFlags <- function() { #.Deprecated(msg=paste("This function is now deprecated as it has not", # "been needed since 2013.")) + message("'RcppLdFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") "" } @@ -67,11 +69,13 @@ RcppCxxFlags <- function(cxx0x=FALSE) { CxxFlags <- function(cxx0x=FALSE) { #.Deprecated(msg=paste("This function is now deprecated as R uses minimally", # "viable compilers om all platforme.")) + message("'CxxFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") cat(RcppCxxFlags(cxx0x=cxx0x)) # #nocov } ## LdFlags defaults to static linking on the non-Linux platforms Windows and OS X LdFlags <- function() { + message("'LdFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") cat(RcppLdFlags()) } @@ -83,11 +87,13 @@ RcppCapabilities <- capabilities <- function() .Call( rcpp_capabilities ) RcppCxx0xFlags <- function() { #.Deprecated(msg=paste("This function is now deprecated as R uses minimally", # "viable compilers om all platforme.")) + message("'RcppCxx0xFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") script <- Rcpp.system.file( "discovery", "cxx0x.R" ) # #nocov start flag <- capture.output( source( script ) ) flag } Cxx0xFlags <- function() { + message("'Cxx0xFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") cat(RcppCxx0xFlags()) # #nocov end } From 551c466c75bda55b07fb47f9b8622e49fda83ac0 Mon Sep 17 00:00:00 2001 From: Kevin Ushey Date: Wed, 3 Dec 2025 11:38:50 -0800 Subject: [PATCH 05/51] alternate openmp plugin changes (#1414) * alternate openmp plugin changes * alternative using R CMD SHLIB --------- Co-authored-by: Dirk Eddelbuettel --- ChangeLog | 4 +++ R/Attributes.R | 70 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 71 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 51ddfe319..750635f08 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2025-12-01 Kevin Ushey + + * R/Attributes.R: Update OpenMP plugin for macOS + 2025-11-29 Dirk Eddelbuettel * R/RcppLdpath.R: Revisit deprecation warnings via 'message()' to be diff --git a/R/Attributes.R b/R/Attributes.R index 53e9f0a61..a6019b1fe 100644 --- a/R/Attributes.R +++ b/R/Attributes.R @@ -586,10 +586,74 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { list(env = list(PKG_CXXFLAGS ="-std=c++2b")) } +.openmpPluginDefault <- function() { + list(env = list(PKG_CXXFLAGS = "-fopenmp", PKG_LIBS = "-fopenmp")) +} + +.openmpPluginDarwin <- function() { + + # generate a test script for compilation + script <- tempfile("openmp-detect-", fileext = ".cpp") + writeLines("", con = script) + on.exit(unlink(script, force = TRUE), add = TRUE) + + # get the C++ compiler from R + r <- file.path(R.home("bin"), "R") + output <- tryCatch( + system2(r, c("CMD", "SHLIB", "--dry-run", shQuote(script)), stdout = TRUE), + condition = identity + ) + if (inherits(output, "condition")) + return(.openmpPluginDefault()) + + # extract the compiler invocation from the shlib output + # use some heuristics here... + index <- grep("make would use", output) + compile <- output[[index + 1L]] + + # use everything up to the first include flag, which is normally + # the R headers from CPPFLAGS + idx <- regexpr(" -I", compile, fixed = TRUE) + cxx <- substring(compile, 1L, idx - 1L) + + # check the compiler version + command <- paste(cxx, "--version") + version <- tryCatch( + system(command, intern = TRUE), + condition = identity + ) + if (inherits(version, "condition")) + return(.openmpPluginDefault()) + + # if we're using Apple clang, use alternate flags + # assume libomp was installed following https://mac.r-project.org/openmp/ + if (any(grepl("Apple clang", version))) { + cxxflags <- "-Xclang -fopenmp" + libs <- "-lomp" + } + + # if we're using Homebrew clang, add in libomp include paths + else if (any(grepl("Homebrew clang", version))) { + machine <- Sys.info()[["machine"]] + prefix <- if (machine == "arm64") "/opt/homebrew" else "/usr/local" + cxxflags <- sprintf("-I%s/opt/libomp/include -fopenmp", prefix) + libs <- sprintf("-L%s/opt/libomp/lib -fopenmp", prefix) + + # otherwise, use default -fopenmp flags for other compilers (LLVM clang; gcc) + } else { + cxxflags <- "-fopenmp" + libs <- "-fopenmp" + } + + list(env = list(PKG_CXXFLAGS = cxxflags, PKG_LIBS = libs)) + +} + ## built-in OpenMP plugin -.plugins[["openmp"]] <- function() { - list(env = list(PKG_CXXFLAGS="-fopenmp", - PKG_LIBS="-fopenmp")) +.plugins[["openmp"]] <- if (Sys.info()[["sysname"]] == "Darwin") { + .openmpPluginDarwin +} else { + .openmpPluginDefault } .plugins[["unwindProtect"]] <- function() { # nocov start From b83944e11fa937e65c97a29f06f806a47a4d5592 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 3 Dec 2025 17:01:47 -0600 Subject: [PATCH 06/51] Remove deprecated loadRcppModules (closes #1415) (#1416) * Remove deprecated loadRcppModules (closes #1415) * Tweak ChangeLog whitespace following rebase following #1416 merge * Remove section about deprecated loadRcppModules() * Remove commented-out mentions of loadRcppModules() --- ChangeLog | 9 +++++ NAMESPACE | 1 - R/loadRcppModules.R | 59 ---------------------------- inst/skeleton/zzz.R | 13 +----- inst/tinytest/testRcppModule/R/zzz.R | 9 +---- man/Rcpp-deprecated.Rd | 3 -- man/loadModule.Rd | 3 -- man/loadRcppModules-deprecated.Rd | 26 ------------ vignettes/rmd/Rcpp-modules.Rmd | 30 -------------- 9 files changed, 13 insertions(+), 140 deletions(-) delete mode 100644 R/loadRcppModules.R delete mode 100644 man/loadRcppModules-deprecated.Rd diff --git a/ChangeLog b/ChangeLog index 750635f08..86208c983 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2025-12-02 Dirk Eddelbuettel + + * R/loadRcppModules.R: Remove file with function deprecated years ago + * man/loadRcppModules-deprecated.Rd: Idem + * NAMESPACE: Remove reference to loadRcppModules() + * man/loadModule.Rd: Idem + * man/Rcpp-deprecated.Rd: Idem + * vignettes/rmd/Rcpp-modules.Rmd: Idem + 2025-12-01 Kevin Ushey * R/Attributes.R: Update OpenMP plugin for macOS diff --git a/NAMESPACE b/NAMESPACE index 1af902e22..9f6fdf377 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -16,7 +16,6 @@ exportMethods(prompt, show, .DollarNames, initialize, "formals<-") export(Module, Rcpp.package.skeleton, populate, - loadRcppModules, # deprecated since Rcpp 0.12.5 released May 2016 setRcppClass, loadRcppClass, loadModule, diff --git a/R/loadRcppModules.R b/R/loadRcppModules.R deleted file mode 100644 index 844da8fc8..000000000 --- a/R/loadRcppModules.R +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2010 - 2016 John Chambers, Dirk Eddelbuettel and Romain Francois -# -# This file is part of Rcpp. -# -# Rcpp is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# Rcpp is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with Rcpp. If not, see . - -loadRcppModules <- function(direct=TRUE) { # #nocov start - # deprecation added May 2016, 'loadModule' has been prefered for years - .Deprecated("loadModule") - - ## hunt for the namespace of the package that calls this - calls <- sys.calls() - w <- which( sapply( calls, function(call){ - identical( call[[1L]], as.name( "runHook" ) ) - } ) ) - if( !length(w) ) - stop( "loadRcppModules can only be used within a .onLoad function" ) - w <- w[ length(w) ] - call <- calls[[w]] - if( !identical( call[[2L]], ".onLoad" ) ) - stop( "loadRcppModules can only be used within a .onLoad function" ) - f <- sys.frame( w ) - ns <- get("env", f ) - if( !isNamespace( ns ) ) - stop( "loadRcppModules not called from a namespace" ) - pkg <- get( "pkgname", f ) - lib <- get( "libname", f ) - - ## look for declared modules in the DESCRIPTION fields - description <- packageDescription(pkg, lib.loc=lib) - modules <- description[["RcppModules"]] - if( !is.null( modules ) ){ - modules <- strsplit( modules, "[[:space:]]*,[[:space:]]*")[[1L]] - for( m in modules ){ - tryCatch( { - mod <- Module( m, pkg, mustStart = TRUE) - if(isTRUE(direct)){ - populate( mod, ns ) - } else { - forceAssignInNamespace( m, mod, ns ) - } - assign(.moduleMetaName(m), mod, envir = ns) - }, error = function(e){ - stop( sprintf( "failed to load module %s from package %s\n%s", m, pkg, conditionMessage(e) ) ) - }) - } - } -} # #nocov end diff --git a/inst/skeleton/zzz.R b/inst/skeleton/zzz.R index 0161cafed..a2e19a11a 100644 --- a/inst/skeleton/zzz.R +++ b/inst/skeleton/zzz.R @@ -1,16 +1,7 @@ -## Up until R 2.15.0, the require("methods") is needed but (now) -## triggers an warning from R CMD check -#.onLoad <- function(libname, pkgname){ -# #require("methods") ## needed with R <= 2.15.0 -# loadRcppModules() -#} - - -## For R 2.15.1 and later this also works. Note that calling loadModule() triggers +## For R 2.15.1 and later the approach shown here works (as opposed to the now removed +## and long-deprecated `loadRcppModules()`. Note that calling loadModule() triggers ## a load action, so this does not have to be placed in .onLoad() or evalqOnLoad(). loadModule("NumEx", TRUE) loadModule("yada", TRUE) loadModule("stdVector", TRUE) - - diff --git a/inst/tinytest/testRcppModule/R/zzz.R b/inst/tinytest/testRcppModule/R/zzz.R index f23b84272..e26fbae91 100644 --- a/inst/tinytest/testRcppModule/R/zzz.R +++ b/inst/tinytest/testRcppModule/R/zzz.R @@ -1,11 +1,6 @@ -# -#.onLoad <- function(libname, pkgname){ -# loadRcppModules() -#} - -## For R 2.15.1 and later this also works. Note that calling loadModule() triggers +## For R 2.15.1 and later the approach shown here works (as opposed to the now removed +## and long-deprecated `loadRcppModules()`. Note that calling loadModule() triggers ## a load action, so this does not have to be placed in .onLoad() or evalqOnLoad(). loadModule("RcppModuleNumEx", TRUE) loadModule("RcppModuleWorld", TRUE) loadModule("stdVector", TRUE) - diff --git a/man/Rcpp-deprecated.Rd b/man/Rcpp-deprecated.Rd index b2c8a763e..ddf287bbe 100644 --- a/man/Rcpp-deprecated.Rd +++ b/man/Rcpp-deprecated.Rd @@ -7,9 +7,6 @@ } \details{ \itemize{ - \item \code{\link{loadRcppModules}} calls should now be replaced by - \code{\link{loadModule}} calls, one per Module. - \item \code{\link{LdFlags}} and \code{\link{RcppLdFlags}} are no longer required as no library is provided (or needed) by Rcpp (as it was up until release 0.10.1). diff --git a/man/loadModule.Rd b/man/loadModule.Rd index 03102946d..c45cdb148 100644 --- a/man/loadModule.Rd +++ b/man/loadModule.Rd @@ -80,9 +80,6 @@ John Chambers } \seealso{ \code{\link{setRcppClass}()} to avoid the explicit call. - -\code{\link{loadRcppModules}()} for a (deprecated) shotgun procedure to load all -modules. } \examples{ \dontrun{ diff --git a/man/loadRcppModules-deprecated.Rd b/man/loadRcppModules-deprecated.Rd deleted file mode 100644 index 167efea9e..000000000 --- a/man/loadRcppModules-deprecated.Rd +++ /dev/null @@ -1,26 +0,0 @@ -\name{loadRcppModules-deprecated} -\alias{loadRcppModules} -\title{ - Loads Rcpp modules on package startup -} -\description{ - \emph{Note:} As of release 0.12.5, this function is deprecated; - \code{\link{loadModule}} should be used instead. - - Function to simplify loading Rcpp modules contained in a package. - This function must be called from the \code{.onLoad} function of a package. - It uses the \code{RcppModules} field of the package \code{DESCRIPTION} file - to query the names of the modules that the package should export, loads each module, - and \code{\link{populate}} each module into the package NAMESPACE. -} -\usage{ - loadRcppModules(direct=TRUE) -} -\arguments{ - \item{direct}{if \code{TRUE} the content of the module is exposed in the - namespace. Otherwise, the module is exposed. } -} -\seealso{ - \code{\link{populate}}, \code{\link{loadModule}} -} -\keyword{interface} diff --git a/vignettes/rmd/Rcpp-modules.Rmd b/vignettes/rmd/Rcpp-modules.Rmd index c54d21948..b8e45678d 100644 --- a/vignettes/rmd/Rcpp-modules.Rmd +++ b/vignettes/rmd/Rcpp-modules.Rmd @@ -1236,36 +1236,6 @@ The `loadModule` function has an argument `what` to control which objects are exposed in the package namespace. The special value `TRUE` means that all objects are exposed. -### Deprecated legacy method using loadRcppModules - -Prior to release 0.9.11, where `loadModule` was introduced, -loading all functions and classes from a module -into a package namespace was achieved using the `loadRcppModules` function -within the `.onLoad` body. - -```{r, eval=FALSE} -.onLoad <- function(libname, pkgname) { - loadRcppModules() -} -``` - -This will look in the package's `DESCRIPTION` file for the `RcppModules` -field, load each declared module and populate their contents into the -package's namespace. For example, a package defining modules -`yada`, `stdVector`, `NumEx` would have this declaration: - -``` -RcppModules: yada, stdVector, NumEx -``` - -The `loadRcppModules` function has a single argument `direct` -with a default value of `TRUE`. With this default value, all content -from the module is exposed directly in the package namespace. If set to -`FALSE`, all content is exposed as components of the module. - -Note: This approach is **deprecated** as of Rcpp 0.12.5, and now triggers a -warning message. Eventually this function will be withdrawn. - ### Just expose the module Alternatively to exposing a module's content via `loadModule`, From 2b0a44bfa06fd8eacc53255b5974a382934692f6 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 3 Dec 2025 17:14:16 -0600 Subject: [PATCH 07/51] Roll micro version and date, update NEWS --- ChangeLog | 5 +++++ DESCRIPTION | 4 ++-- inst/NEWS.Rd | 9 +++++++++ inst/include/Rcpp/config.h | 4 ++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 86208c983..64fb4ba23 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-12-03 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + 2025-12-02 Dirk Eddelbuettel * R/loadRcppModules.R: Remove file with function deprecated years ago diff --git a/DESCRIPTION b/DESCRIPTION index 2c21263f8..73ca509b3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.6 -Date: 2025-11-25 +Version: 1.1.0.7 +Date: 2025-12-03 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 06e1a4b65..63f93e190 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -16,6 +16,13 @@ (Iñaki in \ghpr{1404}) \item A message is shown if \code{R.h} is included before Rcpp headers as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) + \item The long-deprecated function \code{loadRcppModules()} has been + removed (Dirk in \ghpr{1416} closing \ghit{1415}) + } + \item Changes in Rcpp Attributes: + \itemize{ + \item The OpenMP plugin has been generalized for different macOS + compiler installations (Kevin in \ghpr{1414}) } \item Changes in Rcpp Documentation: \itemize{ @@ -28,6 +35,8 @@ \item A temporary change in R-devel concerning NA part in complex variables was accommodated, and then reverted (Dirk in \ghpr{1399} fixing \ghit{1397}) \item The macOS CI runners now use macos-14 (Dirk in \ghpr{1405}) + \item Old helper functions use \code{message()} to signal they are not used, + deprecation and removal to follow (Dirk in \ghpr{1413} closing \ghit{1412}) } } } diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index ca3bc9ebd..be9819da4 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,6) -#define RCPP_DEV_VERSION_STRING "1.1.0.6" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,7) +#define RCPP_DEV_VERSION_STRING "1.1.0.7" #endif From 7b2a20793a7aea6c268a6c81d581a7f3e4e6b116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Ucar?= Date: Sat, 6 Dec 2025 19:47:34 +0100 Subject: [PATCH 08/51] Refactor some R_ext includes (#1418) * Refactor some R_ext includes * drop PrtUtil.h too --- ChangeLog | 7 +++++++ inst/include/Rcpp/r/headers.h | 2 ++ inst/include/RcppCommon.h | 2 -- src/api.cpp | 1 - 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 64fb4ba23..40f3b007d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2025-12-04 Iñaki Ucar + + * inst/include/Rcpp/r/headers.h: Include + * inst/include/RcppCommon.h: Drop , not used anymore + and dropped from the API; drop , included above + * src/api.cpp: Drop , dropped from the API + 2025-12-03 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/inst/include/Rcpp/r/headers.h b/inst/include/Rcpp/r/headers.h index c93636c40..8fedeb57e 100644 --- a/inst/include/Rcpp/r/headers.h +++ b/inst/include/Rcpp/r/headers.h @@ -2,6 +2,7 @@ // // Copyright (C) 2008 - 2009 Dirk Eddelbuettel // Copyright (C) 2009 - 2024 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -72,6 +73,7 @@ #include #include #include +#include #include /* Ensure NORET defined (normally provided by R headers with R >= 3.2.0) */ diff --git a/inst/include/RcppCommon.h b/inst/include/RcppCommon.h index 03d5739f2..b4752845e 100644 --- a/inst/include/RcppCommon.h +++ b/inst/include/RcppCommon.h @@ -73,8 +73,6 @@ namespace Rcpp { #include #include #include -#include -#include #include #include diff --git a/src/api.cpp b/src/api.cpp index 36246b0a7..723a90ccc 100644 --- a/src/api.cpp +++ b/src/api.cpp @@ -28,7 +28,6 @@ using namespace Rcpp; #include "internal.h" -#include #ifdef RCPP_HAS_DEMANGLING #include From f22f7e2055da2ad05615ea755508b39932fb5c36 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sat, 6 Dec 2025 12:51:13 -0600 Subject: [PATCH 09/51] Roll micro-version and date, update NEWS --- ChangeLog | 6 ++++++ DESCRIPTION | 4 ++-- inst/NEWS.Rd | 2 ++ inst/include/Rcpp/config.h | 4 ++-- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40f3b007d..300534ae1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2025-12-06 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + * inst/NEWS.Rd: Updated + 2025-12-04 Iñaki Ucar * inst/include/Rcpp/r/headers.h: Include diff --git a/DESCRIPTION b/DESCRIPTION index 73ca509b3..75e6914e3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.7 -Date: 2025-12-03 +Version: 1.1.0.8 +Date: 2025-12-06 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 63f93e190..a23fb9b79 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -18,6 +18,8 @@ as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) \item The long-deprecated function \code{loadRcppModules()} has been removed (Dirk in \ghpr{1416} closing \ghit{1415}) + \item Some includes from R were refactored to accommodate R-devel + changes (Iñaki in \ghpr{1418} addressing \ghit{1417}) } \item Changes in Rcpp Attributes: \itemize{ diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index be9819da4..029bb8c62 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,7) -#define RCPP_DEV_VERSION_STRING "1.1.0.7" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,8) +#define RCPP_DEV_VERSION_STRING "1.1.0.8" #endif From 3691c014f6a5f50c6cf9e3d80fb4b4f1fc7d7cff Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 12 Dec 2025 16:49:26 -0600 Subject: [PATCH 10/51] Silence three tests following PR #1413 (#1422) --- ChangeLog | 5 +++++ inst/tinytest/test_system.R | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 300534ae1..0eec376bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-12-12 Dirk Eddelbuettel + + * inst/tinytest/test_system.R: Wrap suppressMessages() around three + tests for long-obsolete linker and compiler flags + 2025-12-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/inst/tinytest/test_system.R b/inst/tinytest/test_system.R index 83a99e05f..982a3856c 100644 --- a/inst/tinytest/test_system.R +++ b/inst/tinytest/test_system.R @@ -1,5 +1,5 @@ -## Copyright (C) 2016 - 2019 Dirk Eddelbuettel +## Copyright (C) 2016 - 2025 Dirk Eddelbuettel ## ## This file is part of Rcpp. ## @@ -24,9 +24,9 @@ inc_sys <- tools::file_path_as_absolute( base::system.file("include", package = expect_equal(inc_rcpp, inc_sys, info = "Rcpp.system.file") # test.RcppLd <- function() { -expect_true(Rcpp:::RcppLdPath() == "", info = "RcppLdPath") -expect_true(Rcpp:::RcppLdFlags() == "", info = "RcppLdFlags") -expect_equal(Rcpp:::LdFlags(), NULL, info = "LdFlags") +expect_true(suppressMessages(Rcpp:::RcppLdPath()) == "", info = "RcppLdPath") +expect_true(suppressMessages(Rcpp:::RcppLdFlags()) == "", info = "RcppLdFlags") +expect_equal(suppressMessages(Rcpp:::LdFlags()), NULL, info = "LdFlags") # test.RcppCxx <- function() { expect_true(Rcpp:::canUseCXX0X(), info = "canUseCXX0X") From 8926946364192e55d836829f7bc09ab5eca3092b Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sat, 13 Dec 2025 08:42:33 -0600 Subject: [PATCH 11/51] Remove access to Rf_rnbeta (#1419) * Do not access Rf_rnbeta * Roll micro version and date * Comment-out an #undef * Micro whitespace edit following rebase --- ChangeLog | 8 ++++++++ DESCRIPTION | 4 ++-- inst/include/Rcpp/Rmath.h | 7 +++---- inst/include/Rcpp/config.h | 4 ++-- inst/include/Rcpp/sugar/undoRmath.h | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0eec376bf..97f52ffaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,14 @@ * inst/tinytest/test_system.R: Wrap suppressMessages() around three tests for long-obsolete linker and compiler flags +2025-12-10 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + + * inst/include/Rcpp/Rmath.h: Do not access Rf_rnbeta + * inst/include/Rcpp/sugar/undoRmath.h: Remove #undef + 2025-12-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/DESCRIPTION b/DESCRIPTION index 75e6914e3..ad2585f2d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.8 -Date: 2025-12-06 +Version: 1.1.0.9 +Date: 2025-12-10 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/Rmath.h b/inst/include/Rcpp/Rmath.h index 757b88582..ba011e020 100644 --- a/inst/include/Rcpp/Rmath.h +++ b/inst/include/Rcpp/Rmath.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // Rmath.h: Rcpp R/C++ interface class library -- Wrappers for R's Rmath API // -// Copyright (C) 2012 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2012-2025 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -160,7 +159,7 @@ namespace R { inline double dnbeta(double x, double a, double b, double ncp, int lg) { return ::Rf_dnbeta(x, a, b, ncp, lg); } inline double pnbeta(double x, double a, double b, double ncp, int lt, int lg) { return ::Rf_pnbeta(x, a, b, ncp, lt, lg); } inline double qnbeta(double p, double a, double b, double ncp, int lt, int lg) { return ::Rf_qnbeta(p, a, b, ncp, lt, lg); } - inline double rnbeta(double a, double b, double np) { return ::Rf_rnbeta(a, b, np); } + //inline double rnbeta(double a, double b, double np) { return ::Rf_rnbeta(a, b, np); } /* Non-central F Distribution */ inline double dnf(double x, double df1, double df2, double ncp, int lg) { return ::Rf_dnf(x, df1, df2, ncp, lg); } diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index 029bb8c62..0c540d460 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,8) -#define RCPP_DEV_VERSION_STRING "1.1.0.8" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,9) +#define RCPP_DEV_VERSION_STRING "1.1.0.9" #endif diff --git a/inst/include/Rcpp/sugar/undoRmath.h b/inst/include/Rcpp/sugar/undoRmath.h index c718b724a..60d5e866b 100644 --- a/inst/include/Rcpp/sugar/undoRmath.h +++ b/inst/include/Rcpp/sugar/undoRmath.h @@ -146,7 +146,7 @@ #undef rhyper #undef rlnorm #undef rlogis -#undef rnbeta +//#undef rnbeta #undef rnbinom #undef rnchisq #undef rnf From 582376a33292e9f0baed934d443445901efa09ab Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 16 Dec 2025 08:48:13 -0600 Subject: [PATCH 12/51] Switch from Rf_findVarInFrame to R_getVarEx (#1423) * Switch from Rf_findVarInFrame to R_getVarEx * Micro whitespace edit following rebase [ci skip] * Adjust two 'inherits'-alike arguments following review comments --- ChangeLog | 5 +++++ DESCRIPTION | 2 +- inst/include/Rcpp/Environment.h | 27 ++++++++++++++++++++++----- inst/include/Rcpp/Function.h | 9 ++++++--- src/barrier.cpp | 6 +++++- 5 files changed, 39 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 97f52ffaf..2027a2714 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,11 @@ * inst/tinytest/test_system.R: Wrap suppressMessages() around three tests for long-obsolete linker and compiler flags + * inst/include/Rcpp/Environment.h: Replace use of Rf_findVarInFrame + with R_getVarEx (or R_getVar) if R 4.5.0 or later is used + * inst/include/Rcpp/Function.h: Idem + * src/barrier.cpp: Idem + 2025-12-10 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/DESCRIPTION b/DESCRIPTION index ad2585f2d..b2232f239 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration Version: 1.1.0.9 -Date: 2025-12-10 +Date: 2025-12-13 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/Environment.h b/inst/include/Rcpp/Environment.h index 901b3fb5e..4072755f7 100644 --- a/inst/include/Rcpp/Environment.h +++ b/inst/include/Rcpp/Environment.h @@ -1,9 +1,8 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // Environment.h: Rcpp R/C++ interface class library -- access R environments // // Copyright (C) 2009 - 2013 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2014 - 2020 Dirk Eddelbuettel, Romain Francois and Kevin Ushey +// Copyright (C) 2014 - 2025 Dirk Eddelbuettel, Romain Francois and Kevin Ushey // // This file is part of Rcpp. // @@ -98,8 +97,11 @@ namespace Rcpp{ SEXP get(const std::string& name) const { SEXP env = Storage::get__() ; SEXP nameSym = Rf_install(name.c_str()); +#if R_VERSION < R_Version(4,5,0) SEXP res = Rf_findVarInFrame( env, nameSym ) ; - +#else + SEXP res = R_getVarEx(nameSym, env, FALSE, R_UnboundValue); +#endif if( res == R_UnboundValue ) return R_NilValue ; /* We need to evaluate if it is a promise */ @@ -118,7 +120,11 @@ namespace Rcpp{ */ SEXP get(Symbol name) const { SEXP env = Storage::get__() ; +#if R_VERSION < R_Version(4,5,0) SEXP res = Rf_findVarInFrame( env, name ) ; +#else + SEXP res = R_getVarEx(name, env, FALSE, R_UnboundValue); +#endif if( res == R_UnboundValue ) return R_NilValue ; @@ -140,7 +146,11 @@ namespace Rcpp{ SEXP find( const std::string& name) const{ SEXP env = Storage::get__() ; SEXP nameSym = Rf_install(name.c_str()); +#if R_VERSION < R_Version(4,5,0) SEXP res = Rf_findVar( nameSym, env ) ; +#else + SEXP res = R_getVarEx(nameSym, env, TRUE, R_UnboundValue); +#endif if( res == R_UnboundValue ) throw binding_not_found(name) ; @@ -159,8 +169,11 @@ namespace Rcpp{ */ SEXP find(Symbol name) const{ SEXP env = Storage::get__() ; +#if R_VERSION < R_Version(4,5,0) SEXP res = Rf_findVar( name, env ) ; - +#else + SEXP res = R_getVarEx(name, env, TRUE, R_UnboundValue); +#endif if( res == R_UnboundValue ) { // Pass on the const char* to the RCPP_EXCEPTION_CLASS's // const std::string& requirement @@ -184,7 +197,11 @@ namespace Rcpp{ */ bool exists( const std::string& name ) const { SEXP nameSym = Rf_install(name.c_str()); +#if R_VERSION < R_Version(4,5,0) SEXP res = Rf_findVarInFrame( Storage::get__() , nameSym ) ; +#else + SEXP res = R_getVarEx(nameSym, Storage::get__(), FALSE, R_UnboundValue); +#endif return res != R_UnboundValue ; } diff --git a/inst/include/Rcpp/Function.h b/inst/include/Rcpp/Function.h index c06f65cc8..3c1e21e99 100644 --- a/inst/include/Rcpp/Function.h +++ b/inst/include/Rcpp/Function.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // Function.h: Rcpp R/C++ interface class library -- functions (also primitives and builtins) // -// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2025 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -70,7 +69,11 @@ namespace Rcpp{ } Function_Impl(const std::string& name, const std::string& ns) { +#if R_VERSION < R_Version(4,5,0) Shield env(Rf_findVarInFrame(R_NamespaceRegistry, Rf_install(ns.c_str()))); +#else + Shield env(R_getVarEx(Rf_install(ns.c_str()), R_NamespaceRegistry, FALSE, R_UnboundValue)); +#endif if (env == R_UnboundValue) { stop("there is no namespace called \"%s\"", ns); } diff --git a/src/barrier.cpp b/src/barrier.cpp index e3ac21a6a..06ae0e0ab 100644 --- a/src/barrier.cpp +++ b/src/barrier.cpp @@ -2,7 +2,7 @@ // barrier.cpp: Rcpp R/C++ interface class library -- write barrier // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 - 2022 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2021 - 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -150,7 +150,11 @@ SEXP get_rcpp_cache() { Rcpp::Shield call(Rf_lang2(getNamespaceSym, RcppString)); Rcpp::Shield RCPP(Rf_eval(call, R_GlobalEnv)); +#if R_VERSION < R_Version(4,5,0) Rcpp_cache = Rf_findVarInFrame(RCPP, Rf_install(".rcpp_cache")); +#else + Rcpp_cache = R_getVar(Rf_install(".rcpp_cache"), RCPP, TRUE); +#endif Rcpp_cache_know = true; } return Rcpp_cache; From a407ee67c0d7421336f18046c8827476b790a27b Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 16 Dec 2025 09:27:45 -0600 Subject: [PATCH 13/51] Roll micro-release and date --- ChangeLog | 5 +++++ DESCRIPTION | 4 ++-- cleanup | 6 ++++++ inst/include/Rcpp/config.h | 4 ++-- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2027a2714..812f6d2c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-12-16 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + 2025-12-12 Dirk Eddelbuettel * inst/tinytest/test_system.R: Wrap suppressMessages() around three diff --git a/DESCRIPTION b/DESCRIPTION index b2232f239..af5d87eb6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.9 -Date: 2025-12-13 +Version: 1.1.0.10 +Date: 2025-12-16 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/cleanup b/cleanup index 9bbece184..af810bffb 100755 --- a/cleanup +++ b/cleanup @@ -29,6 +29,12 @@ rm -f confdefs.h config.log config.status \ vignettes/*.tex vignettes/*.bbl vignettes/*.blg \ vignettes/*.toc vignettes/*.tpt vignettes/*.xwm +for d in inst/tinytest/testRcppAttributePackage/inst/include \ + inst/tinytest/testRcppAttributePackage/inst \ + inst/tinytest/testRcppAttributePackage/R; do + test -d ${d} && rmdir ${d} +done + rm -rf autom4te.cache inst/lib/ inst/doc/man/ inst/doc/html/ inst/doc/latex/ \ inst/doc/auto inst/bib/auto inst/doc/Rcpp-*/auto/ src-* vignettes/auto diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index 0c540d460..e805790d0 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,9) -#define RCPP_DEV_VERSION_STRING "1.1.0.9" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,10) +#define RCPP_DEV_VERSION_STRING "1.1.0.10" #endif From 3a565b684a302c2f129d090e8cb2a9f474151fbe Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 17 Dec 2025 15:24:26 -0600 Subject: [PATCH 14/51] Remove checks for R versions older than 3.5.0 (#1426) * Remove checks for R versions older than 3.5.0 * Restore a #nocov end * Correct an attribute as seen in code review * Remove cleanup changes orthogonal to this PR * Add 'Depends: R (>= 3.5.0)' --- ChangeLog | 14 +++ DESCRIPTION | 1 + R/Attributes.R | 88 ++++++++----------- R/Rcpp.package.skeleton.R | 18 ++-- cleanup | 10 +-- inst/include/Rcpp/Rmath.h | 2 - inst/include/Rcpp/Symbol.h | 8 -- inst/include/Rcpp/exceptions.h | 4 +- inst/include/Rcpp/r/headers.h | 2 +- .../testRcppInterfaceUser/tests/tests.R | 10 +-- src/barrier.cpp | 5 -- 11 files changed, 64 insertions(+), 98 deletions(-) diff --git a/ChangeLog b/ChangeLog index 812f6d2c4..b02926777 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,22 @@ +2025-12-17 Dirk Eddelbuettel + + * DESCRIPTION (Depends): Add 'R (>= 3.5.0)' + 2025-12-16 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date * inst/include/Rcpp/config.h: Idem + * src/barrier.cpp (dataptr): Remove check for 'R (>= 3.5.0)' + * inst/include/Rcpp/Rmath.h: Remove check for 'R (>= 3.1.2)' + * inst/include/Rcpp/Symbol.h: Remove check for 'R (>= 3.2.0)' + * inst/include/Rcpp/exceptions.h: Remove check for 'R (>= 3.5.0)' + * inst/include/Rcpp/r/headers.h: Idem + + * R/Attributes.R: Remove multiple checks for R version < 3.5.0 + * R/Rcpp.package.skeleton.R: Idem + * inst/tinytest/testRcppInterfaceUser/tests/tests.R: Remove one check + 2025-12-12 Dirk Eddelbuettel * inst/tinytest/test_system.R: Wrap suppressMessages() around three diff --git a/DESCRIPTION b/DESCRIPTION index af5d87eb6..b6204a106 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -27,6 +27,7 @@ Description: The 'Rcpp' package provides R functions as well as C++ classes whic Francois (2011, ), the book by Eddelbuettel (2013, ) and the paper by Eddelbuettel and Balamuta (2018, ); see 'citation("Rcpp")' for details. +Depends: R (>= 3.5.0) Imports: methods, utils Suggests: tinytest, inline, rbenchmark, pkgKitten (>= 0.1.2) URL: https://www.rcpp.org, https://dirk.eddelbuettel.com/code/rcpp.html, https://github.com/RcppCore/Rcpp diff --git a/R/Attributes.R b/R/Attributes.R index a6019b1fe..1e84ab932 100644 --- a/R/Attributes.R +++ b/R/Attributes.R @@ -499,21 +499,11 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { # built-in C++98 plugin .plugins[["cpp98"]] <- function() { - if (getRversion() >= "3.4") # with recent R versions, R can decide - list(env = list(USE_CXX98 = "yes")) - else - list(env = list(PKG_CXXFLAGS ="-std=c++98")) + list(env = list(USE_CXX98 = "yes")) } # built-in C++11 plugin .plugins[["cpp11"]] <- function() { - if (getRversion() >= "3.4") # with recent R versions, R can decide - list(env = list(USE_CXX11 = "yes")) - else if (getRversion() >= "3.1") # with recent R versions, R can decide - list(env = list(USE_CXX1X = "yes")) - else if (.Platform$OS.type == "windows") - list(env = list(PKG_CXXFLAGS = "-std=c++0x")) - else # g++-4.8.1 or later - list(env = list(PKG_CXXFLAGS ="-std=c++11")) + list(env = list(USE_CXX11 = "yes")) } # built-in C++11 plugin for older g++ compiler @@ -525,10 +515,7 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { ## this is the default in g++-6.1 and later ## per https://gcc.gnu.org/projects/cxx-status.html#cxx14 .plugins[["cpp14"]] <- function() { - if (getRversion() >= "3.4") # with recent R versions, R can decide - list(env = list(USE_CXX14 = "yes")) - else - list(env = list(PKG_CXXFLAGS ="-std=c++14")) + list(env = list(USE_CXX14 = "yes")) } # built-in C++1y plugin for C++14 and C++17 standard under development @@ -538,10 +525,7 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { # built-in C++17 plugin for C++17 standard (g++-6 or later) .plugins[["cpp17"]] <- function() { - if (getRversion() >= "3.4") # with recent R versions, R can decide - list(env = list(USE_CXX17 = "yes")) - else - list(env = list(PKG_CXXFLAGS ="-std=c++17")) + list(env = list(USE_CXX17 = "yes")) } # built-in C++20 plugin for C++20 @@ -1303,41 +1287,39 @@ sourceCppFunction <- function(func, isVoid, dll, symbol) { declarations = character() call_entries = character() - # if we are running R 3.4 or higher we can use an internal utility function + # we are running R 3.4 or higher so we can use an internal utility function # to automatically discover additional native routines that require registration - if (getRversion() >= "3.4") { - - # determine the package directory - pkgdir <- dirname(dirname(targetFile)) - - # get the generated code from R - con <- textConnection(object = NULL, open = "w") - on.exit(close(con), add = TRUE) - tools::package_native_routine_registration_skeleton( - dir = pkgdir, - con = con, - character_only = FALSE - ) - code <- textConnectionValue(con) - # look for lines containing call entries - matches <- regexec('^\\s+\\{"([^"]+)",.*$', code) - matches <- regmatches(code, matches) - matches <- Filter(x = matches, function(x) { - length(x) > 0 # #nocov start - }) - for (match in matches) { - routine <- match[[2]] - if (!routine %in% routines) { - declaration <- grep(sprintf("^extern .* %s\\(.*$", routine), code, - value = TRUE) - # FIXME: maybe we should extend this to *any* routine? - # or is there any case in which `void *` is not SEXP for a .Call? - if (routine == "run_testthat_tests") - declaration <- gsub("void *", "SEXP", declaration, fixed=TRUE) - declarations <- c(declarations, sub("^extern", "RcppExport", declaration)) - call_entries <- c(call_entries, match[[1]]) # #nocov end - } + # determine the package directory + pkgdir <- dirname(dirname(targetFile)) + + # get the generated code from R + con <- textConnection(object = NULL, open = "w") + on.exit(close(con), add = TRUE) + tools::package_native_routine_registration_skeleton( + dir = pkgdir, + con = con, + character_only = FALSE + ) + code <- textConnectionValue(con) + + # look for lines containing call entries + matches <- regexec('^\\s+\\{"([^"]+)",.*$', code) + matches <- regmatches(code, matches) + matches <- Filter(x = matches, function(x) { + length(x) > 0 # #nocov start + }) + for (match in matches) { + routine <- match[[2]] + if (!routine %in% routines) { + declaration <- grep(sprintf("^extern .* %s\\(.*$", routine), code, + value = TRUE) + # FIXME: maybe we should extend this to *any* routine? + # or is there any case in which `void *` is not SEXP for a .Call? + if (routine == "run_testthat_tests") + declaration <- gsub("void *", "SEXP", declaration, fixed=TRUE) + declarations <- c(declarations, sub("^extern", "RcppExport", declaration)) + call_entries <- c(call_entries, match[[1]]) # #nocov end } } diff --git a/R/Rcpp.package.skeleton.R b/R/Rcpp.package.skeleton.R index 40c4fdb3f..218761d2a 100644 --- a/R/Rcpp.package.skeleton.R +++ b/R/Rcpp.package.skeleton.R @@ -118,11 +118,7 @@ Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), lines <- readLines(NAMESPACE) ns <- file(NAMESPACE, open="w") if (!any(grepl("useDynLib", lines))) { - if (getRversion() >= "3.4.0") { - lines <- c(sprintf( "useDynLib(%s, .registration=TRUE)", name), lines) - } else { - lines <- c(sprintf( "useDynLib(%s)", name), lines) # #nocov - } + lines <- c(sprintf( "useDynLib(%s, .registration=TRUE)", name), lines) writeLines(lines, con = ns) message(" >> added useDynLib directive to NAMESPACE" ) } @@ -202,14 +198,10 @@ Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), # generate native routines if we aren't using attributes (which already generate # them automatically) and we have at least R 3.4 if (!attributes) { - if (getRversion() >= "3.4.0") { - con <- file(file.path(src, "init.c"), "wt") - tools::package_native_routine_registration_skeleton(root, con=con) - close(con) - message(" >> created init.c for package registration") - } else { - message(" >> R version older than 3.4.0 detected, so NO file init.c created.") # #nocov - } + con <- file(file.path(src, "init.c"), "wt") + tools::package_native_routine_registration_skeleton(root, con=con) + close(con) + message(" >> created init.c for package registration") } lines <- readLines(package.doc <- file.path( root, "man", sprintf("%s-package.Rd", name))) diff --git a/cleanup b/cleanup index af810bffb..e334f7c5c 100755 --- a/cleanup +++ b/cleanup @@ -29,14 +29,10 @@ rm -f confdefs.h config.log config.status \ vignettes/*.tex vignettes/*.bbl vignettes/*.blg \ vignettes/*.toc vignettes/*.tpt vignettes/*.xwm -for d in inst/tinytest/testRcppAttributePackage/inst/include \ - inst/tinytest/testRcppAttributePackage/inst \ - inst/tinytest/testRcppAttributePackage/R; do - test -d ${d} && rmdir ${d} -done - rm -rf autom4te.cache inst/lib/ inst/doc/man/ inst/doc/html/ inst/doc/latex/ \ - inst/doc/auto inst/bib/auto inst/doc/Rcpp-*/auto/ src-* vignettes/auto + inst/doc/auto inst/bib/auto inst/doc/Rcpp-*/auto/ src-* vignettes/auto \ + inst/tinytest/testRcppAttributePackage/inst \ + inst/tinytest/testRcppAttributePackage/R find . -name \*~ -exec rm {} \; find . -name \*.flc -exec rm {} \; diff --git a/inst/include/Rcpp/Rmath.h b/inst/include/Rcpp/Rmath.h index ba011e020..ad1958e52 100644 --- a/inst/include/Rcpp/Rmath.h +++ b/inst/include/Rcpp/Rmath.h @@ -130,12 +130,10 @@ namespace R { inline double qnbinom(double p, double sz, double pb, int lt, int lg) { return ::Rf_qnbinom(p, sz, pb, lt, lg); } inline double rnbinom(double sz, double pb) { return ::Rf_rnbinom(sz, pb); } -#if R_VERSION >= R_Version(3, 1, 2) inline double dnbinom_mu(double x, double sz, double mu, int lg) { return ::Rf_dnbinom_mu(x, sz, mu, lg); } inline double pnbinom_mu(double x, double sz, double mu, int lt, int lg) { return ::Rf_pnbinom_mu(x, sz, mu, lt, lg); } inline double qnbinom_mu(double x, double sz, double mu, int lt, int lg) { return ::Rf_qnbinom_mu(x, sz, mu, lt, lg); } //inline double rnbinom_mu(double sz, double mu) { return ::Rf_rnbinom_mu(sz, mu); } -#endif /* Poisson Distribution */ inline double dpois(double x, double lb, int lg) { return ::Rf_dpois(x, lb, lg); } diff --git a/inst/include/Rcpp/Symbol.h b/inst/include/Rcpp/Symbol.h index 82db25bc4..beabc546c 100644 --- a/inst/include/Rcpp/Symbol.h +++ b/inst/include/Rcpp/Symbol.h @@ -43,21 +43,13 @@ namespace Rcpp{ Storage::set__( x ) ; break; /* nothing to do */ case CHARSXP: { - #if R_VERSION >= R_Version(3,2,0) SEXP charSym = Rf_installChar(x); // R 3.2.0 or later have Rf_installChar - #else - SEXP charSym = Rf_install(CHAR(x)); // cannot be gc()'ed once in symbol table - #endif Storage::set__( charSym ) ; break ; } case STRSXP: { /* FIXME: check that there is at least one element */ - #if R_VERSION >= R_Version(3,2,0) SEXP charSym = Rf_installChar(STRING_ELT(x, 0 )); // R 3.2.0 or later have Rf_installChar - #else - SEXP charSym = Rf_install( CHAR(STRING_ELT(x, 0 )) ); // cannot be gc()'ed once in symbol table - #endif Storage::set__( charSym ); break ; } diff --git a/inst/include/Rcpp/exceptions.h b/inst/include/Rcpp/exceptions.h index b5ea6011c..17dd28d01 100644 --- a/inst/include/Rcpp/exceptions.h +++ b/inst/include/Rcpp/exceptions.h @@ -151,11 +151,9 @@ inline void resumeJump(SEXP token) { token = getLongjumpToken(token); } ::R_ReleaseObject(token); -#if (defined(R_VERSION) && R_VERSION >= R_Version(3, 5, 0)) ::R_ContinueUnwind(token); -#endif // #nocov end Rf_error("Internal error: Rcpp longjump failed to resume"); -} +} // #nocov end }} // namespace Rcpp::internal diff --git a/inst/include/Rcpp/r/headers.h b/inst/include/Rcpp/r/headers.h index 8fedeb57e..ab4f2e3ab 100644 --- a/inst/include/Rcpp/r/headers.h +++ b/inst/include/Rcpp/r/headers.h @@ -101,7 +101,7 @@ # pragma pop_macro("makedev") #endif -#if (!defined(RCPP_NO_UNWIND_PROTECT) && defined(R_VERSION) && R_VERSION >= R_Version(3, 5, 0)) +#if !defined(RCPP_NO_UNWIND_PROTECT) # define RCPP_USING_UNWIND_PROTECT #endif diff --git a/inst/tinytest/testRcppInterfaceUser/tests/tests.R b/inst/tinytest/testRcppInterfaceUser/tests/tests.R index effb2e482..f5885bd98 100644 --- a/inst/tinytest/testRcppInterfaceUser/tests/tests.R +++ b/inst/tinytest/testRcppInterfaceUser/tests/tests.R @@ -43,9 +43,7 @@ x <- withRestarts( stopifnot(identical(x, "value")) -if (getRversion() >= "3.5.0") { - stopifnot( - testRcppInterfaceUser::peek_flag("cpp_interface_downstream"), - testRcppInterfaceExporter::peek_flag("cpp_interface_upstream") - ) -} +stopifnot( + testRcppInterfaceUser::peek_flag("cpp_interface_downstream"), + testRcppInterfaceExporter::peek_flag("cpp_interface_upstream") +) diff --git a/src/barrier.cpp b/src/barrier.cpp index 06ae0e0ab..019a246ab 100644 --- a/src/barrier.cpp +++ b/src/barrier.cpp @@ -76,13 +76,8 @@ SEXP* get_vector_ptr(SEXP x) { // [[Rcpp::register]] void* dataptr(SEXP x) { -#if R_VERSION >= R_Version(3,5,0) // DATAPTR_RO was introduced with R 3.5.0 return const_cast(DATAPTR_RO(x)); -#else - // this will get your wrists slapped under recent R CMD check ... - return DATAPTR(x); -#endif } // [[Rcpp::register]] From bd4ff51d931e21af0f44193fb9c8e064fb9e908b Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 17 Dec 2025 15:26:19 -0600 Subject: [PATCH 15/51] Roll micro-version and date --- ChangeLog | 3 +++ DESCRIPTION | 4 ++-- inst/include/Rcpp/config.h | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index b02926777..c2a4242a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2025-12-17 Dirk Eddelbuettel + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + * DESCRIPTION (Depends): Add 'R (>= 3.5.0)' 2025-12-16 Dirk Eddelbuettel diff --git a/DESCRIPTION b/DESCRIPTION index b6204a106..344edb6af 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.10 -Date: 2025-12-16 +Version: 1.1.0.11 +Date: 2025-12-17 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index e805790d0..fa8ade9af 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,10) -#define RCPP_DEV_VERSION_STRING "1.1.0.10" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,11) +#define RCPP_DEV_VERSION_STRING "1.1.0.11" #endif From 977819676139ac15d1408024e93c71c97297cf66 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Fri, 19 Dec 2025 11:53:25 -0600 Subject: [PATCH 16/51] Remove stale help page (#1428) --- ChangeLog | 4 ++++ man/RcppUnitTests.Rd | 28 ---------------------------- 2 files changed, 4 insertions(+), 28 deletions(-) delete mode 100644 man/RcppUnitTests.Rd diff --git a/ChangeLog b/ChangeLog index c2a4242a0..92cacc15e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2025-12-19 Dirk Eddelbuettel + + * man/RcppUnitTests.Rd: Removed outdated help page + 2025-12-17 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/man/RcppUnitTests.Rd b/man/RcppUnitTests.Rd deleted file mode 100644 index d1f513e42..000000000 --- a/man/RcppUnitTests.Rd +++ /dev/null @@ -1,28 +0,0 @@ -\name{RcppUnitTests} -\alias{RcppUnitTests} - -\title{Rcpp : unit tests results} -\description{ -Unit tests results for package Rcpp. - -Unit tests are run automatically at build time and reports are included in the -\samp{doc} directory as html or text. -} - -\seealso{ -\ifelse{latex}{}{\ifelse{html}{\url{../doc/unitTests-results/Rcpp-unitTests.html}: html formatted unit test report}{\samp{../doc/unitTests-results/Rcpp-unitTests.html}: html formatted unit test report}} -} - -\examples{ -# unit tests are in the unitTests directory of the package -list.files( system.file("unitTests", package = "Rcpp" ), - pattern = "^runit", full = TRUE ) - -# trigger the unit tests preparation, follow printed instructions -# on how to run them -\dontrun{ -source( system.file("unitTests", "runTests.R", package = "Rcpp" ) ) -} -} - -\keyword{programming} From 3557be1c34419c95e4bcb0d13eff723833176f0a Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sun, 21 Dec 2025 17:07:54 -0600 Subject: [PATCH 17/51] Add a workflow_dispatch to Docker action, update checkout action We need a newer ci-dev to be able to test the new branch --- .github/workflows/docker.yaml | 3 ++- ChangeLog | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index dd6fc6541..5ac954e67 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -4,6 +4,7 @@ on: push: branches: - master + workflow_dispatch: schedule: - cron: "32 1 * * 6" @@ -19,7 +20,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/ChangeLog b/ChangeLog index 92cacc15e..323ec96e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-12-21 Dirk Eddelbuettel + + * .github/workflows/docker.yaml: Add workflow_dispatch, update + checkout action + 2025-12-19 Dirk Eddelbuettel * man/RcppUnitTests.Rd: Removed outdated help page From 2ac55e0004e6cf4eb541eac47e663ccec414deef Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Mon, 22 Dec 2025 15:07:58 -0600 Subject: [PATCH 18/51] Move away from using ATTRIB() (#1430) * Avoid ATTRIB under R 4.6.0 and use R_mapAttrib * Microedit following rebase * Three refinements based on code review * Simplify nrow() getter for data.frame following code review * Simplify attribute accessor using two lambda visitors * Correct one typo/sloppyness in instantiation * Further simplification thanks to @enchufa2 --- ChangeLog | 7 +++++ DESCRIPTION | 4 +-- inst/include/Rcpp/DataFrame.h | 34 ++++++++---------------- inst/include/Rcpp/proxy/AttributeProxy.h | 25 +++++++++-------- 4 files changed, 34 insertions(+), 36 deletions(-) diff --git a/ChangeLog b/ChangeLog index 323ec96e8..a5a213f89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2025-12-22 Dirk Eddelbuettel + + * inst/include/Rcpp/DataFrame.h (nrow): Simplified per #1430 discussion + relying on compact sequence representation removing use of ATTRIB + * inst/include/Rcpp/proxy/AttributeProxy.h (hasAttribute): For R + 4.6.0, rewritten using R_mapAttrib() avoiding to-be-removed ATTRIB() + 2025-12-21 Dirk Eddelbuettel * .github/workflows/docker.yaml: Add workflow_dispatch, update diff --git a/DESCRIPTION b/DESCRIPTION index 344edb6af..b81c4522f 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.11 -Date: 2025-12-17 +Version: 1.1.0.11.2 +Date: 2025-12-21 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/DataFrame.h b/inst/include/Rcpp/DataFrame.h index c6d8c7741..6e2062715 100644 --- a/inst/include/Rcpp/DataFrame.h +++ b/inst/include/Rcpp/DataFrame.h @@ -61,29 +61,17 @@ namespace Rcpp{ } // By definition, the number of rows in a data.frame is contained - // in its row.names attribute. If it has row names of the form 1:n, - // they will be stored as {NA_INTEGER, -}. Unfortunately, - // getAttrib(df, R_RowNamesSymbol) will force an expansion of that - // compact form thereby allocating a huge vector when we just want - // the row.names. Hence this workaround. - inline int nrow() const { - SEXP rn = R_NilValue ; - SEXP att = ATTRIB( Parent::get__() ) ; - while( att != R_NilValue ){ - if( TAG(att) == R_RowNamesSymbol ) { - rn = CAR(att) ; - break ; - } - att = CDR(att) ; - } - if (Rf_isNull(rn)) - return 0; - if (TYPEOF(rn) == INTSXP && LENGTH(rn) == 2 && INTEGER(rn)[0] == NA_INTEGER) - return std::abs(INTEGER(rn)[1]); - return LENGTH(rn); + // in its row.names attribute. Since R 3.5.0 this is returned as a + // compact sequence from which we can just take the (x)length + // But as this makes an allocation an even simpler check on length as + // discussed in #1430 is also possible and preferable. We also switch + // to returning R_xlen_t which as upcast from int is safe + inline R_xlen_t nrow() const { + Shield rn{Rf_getAttrib(Parent::get__(), R_RowNamesSymbol)}; + return Rf_xlength(rn); } - template + template void push_back( const T& object){ Parent::push_back(object); set_type_after_push(); @@ -108,8 +96,8 @@ namespace Rcpp{ } // Offer multiple variants to accomodate both old interface here and signatures in other classes - inline int nrows() const { return DataFrame_Impl::nrow(); } - inline int rows() const { return DataFrame_Impl::nrow(); } + inline R_xlen_t nrows() const { return DataFrame_Impl::nrow(); } + inline R_xlen_t rows() const { return DataFrame_Impl::nrow(); } inline R_xlen_t ncol() const { return DataFrame_Impl::length(); } inline R_xlen_t cols() const { return DataFrame_Impl::length(); } diff --git a/inst/include/Rcpp/proxy/AttributeProxy.h b/inst/include/Rcpp/proxy/AttributeProxy.h index a84043d72..1fbc40314 100644 --- a/inst/include/Rcpp/proxy/AttributeProxy.h +++ b/inst/include/Rcpp/proxy/AttributeProxy.h @@ -78,24 +78,27 @@ class AttributeProxyPolicy { } std::vector attributeNames() const { - std::vector v ; + std::vector v; +#if R_VERSION >= R_Version(4, 6, 0) + auto visitor = [](SEXP name, SEXP attr, void* data) -> SEXP { + std::vector* ptr = static_cast*>(data); + std::string s{CHAR(Rf_asChar(name))}; + ptr->push_back(s); + return NULL; + }; + R_mapAttrib(static_cast(*this).get__(), visitor, static_cast(&v)); +#else SEXP attrs = ATTRIB( static_cast(*this).get__()); while( attrs != R_NilValue ){ v.push_back( std::string(CHAR(PRINTNAME(TAG(attrs)))) ) ; attrs = CDR( attrs ) ; } - return v ; +#endif + return v; } - bool hasAttribute( const std::string& attr) const { - SEXP attrs = ATTRIB(static_cast(*this).get__()); - while( attrs != R_NilValue ){ - if( attr == CHAR(PRINTNAME(TAG(attrs))) ){ - return true ; - } - attrs = CDR( attrs ) ; - } - return false; /* give up */ + bool hasAttribute(const std::string& attr) const { + return static_cast(*this).attr(attr) != R_NilValue; } From 06d684719d9d823be8c080160ba45df1773a0b5f Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Mon, 22 Dec 2025 15:11:45 -0600 Subject: [PATCH 19/51] Roll micro version and date --- ChangeLog | 3 +++ DESCRIPTION | 4 ++-- inst/include/Rcpp/config.h | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a5a213f89..d9c5ef78f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2025-12-22 Dirk Eddelbuettel + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + * inst/include/Rcpp/DataFrame.h (nrow): Simplified per #1430 discussion relying on compact sequence representation removing use of ATTRIB * inst/include/Rcpp/proxy/AttributeProxy.h (hasAttribute): For R diff --git a/DESCRIPTION b/DESCRIPTION index b81c4522f..491206803 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.11.2 -Date: 2025-12-21 +Version: 1.1.0.12 +Date: 2025-12-22 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index fa8ade9af..d55f2facf 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,11) -#define RCPP_DEV_VERSION_STRING "1.1.0.11" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,12) +#define RCPP_DEV_VERSION_STRING "1.1.0.12" #endif From 56e74cb0720273d6a227096159e6e49ebef697de Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Mon, 22 Dec 2025 16:34:17 -0600 Subject: [PATCH 20/51] Update NEWS.Rd reflecing a half dozen recent PRs --- inst/NEWS.Rd | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index a23fb9b79..0d3db17b1 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -20,6 +20,14 @@ removed (Dirk in \ghpr{1416} closing \ghit{1415}) \item Some includes from R were refactored to accommodate R-devel changes (Iñaki in \ghpr{1418} addressing \ghit{1417}) + \item An accessor to \code{Rf_rnbeta} has been removed (Dirk in + \ghpr{1419} also addressing \ghit{1420}) + \item Code accessing \code{Rf_findVarInFrame} now uses + \code{R_getVarEx} (Dirk in \ghpr{1423} fixing \ghit{1421}) + \item Code conditional on the R version now expects at least R 3.5.0; + older code has been removed (Dirk in \ghpr{1426} fixing \ghit{1425}) + \item The \code{ATTRIB} entry point to the R API is not longer used + (Dirk in \ghpr{1430} addressing \ghit{1429}) } \item Changes in Rcpp Attributes: \itemize{ @@ -31,6 +39,8 @@ \item Vignettes are now processed via a new "asis" processor adopted from \pkg{R.rsp} (Dirk in \ghpr{1394} fixing \ghit{1393}) \item R is now cited via its DOI (Dirk) + \item A (very) stale help page has been removed (Dirk in \ghpr{1428} + fixing \ghit{1427}) } \item Changes in Rcpp Deployment: \itemize{ @@ -38,7 +48,10 @@ was accommodated, and then reverted (Dirk in \ghpr{1399} fixing \ghit{1397}) \item The macOS CI runners now use macos-14 (Dirk in \ghpr{1405}) \item Old helper functions use \code{message()} to signal they are not used, - deprecation and removal to follow (Dirk in \ghpr{1413} closing \ghit{1412}) + deprecation and removal to follow (Dirk in \ghpr{1413} closing + \ghit{1412}) + \item Three tests were being silenced following \ghpr{1413} (Dirk in + \ghpr{1422}) } } } From fd7ad877182ac1b465c6bc4c03cdefcfee750f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Ucar?= Date: Tue, 23 Dec 2025 15:14:12 +0100 Subject: [PATCH 21/51] Lay the ground for Rf_error masking (#1402) (#1407) * Lay the ground for Rf_error masking (#1402) * Add a message at compilation time * Protect the valid Rf_error calls generated by Rcpp * some rewording to fit the ChangeLog text in two lines * messages are considered statements by gcc and cannot be used safely; switching to a warning * rebase fix * emit a message instead of a warning using an internal wrapper * remove space * Revert "remove space" This reverts commit bb86312ad52d3dff396d287713359fe5cade6404. * Revert "emit a message instead of a warning using an internal wrapper" This reverts commit 9d409e8253a0fe791225f52c9dbfb6cabbdcb783. * comment out warning * add on switch --- ChangeLog | 11 +++++- inst/include/Rcpp/macros/mask.h | 35 +++++++++++++++++++ inst/include/RcppCommon.h | 2 ++ inst/tinytest/cpp/stack.cpp | 5 +-- .../src/RcppExports.cpp | 2 +- src/attributes.cpp | 3 +- 6 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 inst/include/Rcpp/macros/mask.h diff --git a/ChangeLog b/ChangeLog index d9c5ef78f..15d8a5654 100644 --- a/ChangeLog +++ b/ChangeLog @@ -104,6 +104,15 @@ or related R headers were installed first * inst/include/RcppCommon.h: Call new header as first thing +2025-11-12 Iñaki Ucar + + * inst/include/Rcpp/macros/mask.h: Lay the ground for Rf_error masking + with a warning at compilation time unless RCPP_NO_MASK_RF_ERROR is defined + * inst/include/RcppCommon.h: Include the previous file in the last place + * src/attributes.cpp: Use parentheses to protect call to Rf_error + * inst/tinytest/cpp/stack.cpp: Idem + * inst/tinytest/testRcppInterfaceExporter/src/RcppExports.cpp: Idem + 2025-11-04 Dirk Eddelbuettel * .github/workflows/macos.yaml (jobs): Roll macos-13 to macos-14 @@ -116,7 +125,7 @@ 2025-10-21 Iñaki Ucar - * inst/include/Rcpp/exceptions_impl.h: use __has_include to simplify checks + * inst/include/Rcpp/exceptions_impl.h: Use __has_include to simplify checks to enable demangling, making them robust for more platforms 2025-10-13 Dirk Eddelbuettel diff --git a/inst/include/Rcpp/macros/mask.h b/inst/include/Rcpp/macros/mask.h new file mode 100644 index 000000000..29bca519a --- /dev/null +++ b/inst/include/Rcpp/macros/mask.h @@ -0,0 +1,35 @@ +// mask.h: Rcpp R/C++ interface class library -- masking macros +// +// Copyright (C) 2025 Iñaki Ucar +// +// This file is part of Rcpp. +// +// Rcpp is free software: you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 2 of the License, or +// (at your option) any later version. +// +// Rcpp is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Rcpp. If not, see . + +#ifndef Rcpp_macros_mask_h +#define Rcpp_macros_mask_h + +#ifndef RCPP_NO_MASK_RF_ERROR +#ifdef RCPP_MASK_RF_ERROR +#define Rf_error(...) \ + _Pragma("GCC warning \"Use of Rf_error() instead of Rcpp::stop(). Calls \ +to Rf_error() in C++ contexts are unsafe: consider using Rcpp::stop() instead, \ +or define RCPP_NO_MASK_RF_ERROR if this is a false positive. More info:\n\ + - https://github.com/RcppCore/Rcpp/issues/1247\n\ + - https://github.com/RcppCore/Rcpp/pull/1402\"") \ + Rf_error(__VA_ARGS__) +#endif +#endif + +#endif diff --git a/inst/include/RcppCommon.h b/inst/include/RcppCommon.h index b4752845e..18671e86f 100644 --- a/inst/include/RcppCommon.h +++ b/inst/include/RcppCommon.h @@ -190,4 +190,6 @@ namespace Rcpp { #include +#include + #endif diff --git a/inst/tinytest/cpp/stack.cpp b/inst/tinytest/cpp/stack.cpp index c3fa41789..8bb7d52df 100644 --- a/inst/tinytest/cpp/stack.cpp +++ b/inst/tinytest/cpp/stack.cpp @@ -2,7 +2,8 @@ // // misc.cpp: Rcpp R/C++ interface class library -- misc unit tests // -// Copyright (C) 2013 - 2022 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2013 - 2024 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -55,7 +56,7 @@ SEXP testSendInterrupt() { SEXP maybeThrow(void* data) { bool* fail = (bool*) data; if (*fail) - Rf_error("throw!"); + (Rf_error)("throw!"); // prevent masking else return NumericVector::create(42); } diff --git a/inst/tinytest/testRcppInterfaceExporter/src/RcppExports.cpp b/inst/tinytest/testRcppInterfaceExporter/src/RcppExports.cpp index a6beb9b53..4b018f29f 100644 --- a/inst/tinytest/testRcppInterfaceExporter/src/RcppExports.cpp +++ b/inst/tinytest/testRcppInterfaceExporter/src/RcppExports.cpp @@ -43,7 +43,7 @@ RcppExport SEXP _testRcppInterfaceExporter_test_cpp_interface(SEXP xSEXP, SEXP f if (rcpp_isError_gen) { SEXP rcpp_msgSEXP_gen = Rf_asChar(rcpp_result_gen); UNPROTECT(1); - Rf_error("%s", CHAR(rcpp_msgSEXP_gen)); + (Rf_error)("%s", CHAR(rcpp_msgSEXP_gen)); } UNPROTECT(1); return rcpp_result_gen; diff --git a/src/attributes.cpp b/src/attributes.cpp index 81c2f5bef..5240e3627 100644 --- a/src/attributes.cpp +++ b/src/attributes.cpp @@ -2953,7 +2953,8 @@ namespace attributes { << " if (rcpp_isError_gen) {" << std::endl << " SEXP rcpp_msgSEXP_gen = Rf_asChar(rcpp_result_gen);" << std::endl << " UNPROTECT(1);" << std::endl - << " Rf_error(\"%s\", CHAR(rcpp_msgSEXP_gen));" << std::endl + // Parentheses to prevent masking + << " (Rf_error)(\"%s\", CHAR(rcpp_msgSEXP_gen));" << std::endl << " }" << std::endl << " UNPROTECT(1);" << std::endl << " return rcpp_result_gen;" << std::endl From 3faae9060f834cd6378606c147aa99b5818010f4 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 23 Dec 2025 08:38:27 -0600 Subject: [PATCH 22/51] Roll micro version and date, update NEWS.Rd --- DESCRIPTION | 4 ++-- inst/NEWS.Rd | 2 ++ inst/include/Rcpp/config.h | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index 491206803..43cf1ced1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.12 -Date: 2025-12-22 +Version: 1.1.0.13 +Date: 2025-12-23 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 0d3db17b1..01c000e3d 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -14,6 +14,8 @@ addressing \ghit{1400}) \item The treatment of signed zeros is now improved in the Sugar code (Iñaki in \ghpr{1404}) + \item Preparations for phasing out use of \code{Rf_error} have been + made (Iñaki in \ghpr{1407}) \item A message is shown if \code{R.h} is included before Rcpp headers as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) \item The long-deprecated function \code{loadRcppModules()} has been diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index d55f2facf..49212fb73 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,12) -#define RCPP_DEV_VERSION_STRING "1.1.0.12" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,13) +#define RCPP_DEV_VERSION_STRING "1.1.0.13" #endif From 75093cefac046399920bc532bdf780e4eb4ba381 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 24 Dec 2025 14:32:58 -0600 Subject: [PATCH 23/51] Minor edits to NEWS.Rd [ci skip] --- inst/NEWS.Rd | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 01c000e3d..48db03c64 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -16,20 +16,18 @@ (Iñaki in \ghpr{1404}) \item Preparations for phasing out use of \code{Rf_error} have been made (Iñaki in \ghpr{1407}) - \item A message is shown if \code{R.h} is included before Rcpp headers - as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) \item The long-deprecated function \code{loadRcppModules()} has been removed (Dirk in \ghpr{1416} closing \ghit{1415}) - \item Some includes from R were refactored to accommodate R-devel - changes (Iñaki in \ghpr{1418} addressing \ghit{1417}) + \item Some non-API includes from R were refactored to accommodate + R-devel changes (Iñaki in \ghpr{1418} addressing \ghit{1417}) \item An accessor to \code{Rf_rnbeta} has been removed (Dirk in \ghpr{1419} also addressing \ghit{1420}) - \item Code accessing \code{Rf_findVarInFrame} now uses + \item Code accessing non-API \code{Rf_findVarInFrame} now uses \code{R_getVarEx} (Dirk in \ghpr{1423} fixing \ghit{1421}) \item Code conditional on the R version now expects at least R 3.5.0; older code has been removed (Dirk in \ghpr{1426} fixing \ghit{1425}) - \item The \code{ATTRIB} entry point to the R API is not longer used - (Dirk in \ghpr{1430} addressing \ghit{1429}) + \item The non-API \code{ATTRIB} entry point to the R API is no longer + used (Dirk in \ghpr{1430} addressing \ghit{1429}) } \item Changes in Rcpp Attributes: \itemize{ @@ -49,6 +47,8 @@ \item A temporary change in R-devel concerning NA part in complex variables was accommodated, and then reverted (Dirk in \ghpr{1399} fixing \ghit{1397}) \item The macOS CI runners now use macos-14 (Dirk in \ghpr{1405}) + \item A message is shown if \code{R.h} is included before Rcpp headers + as this can lead to errors (Dirk in \ghpr{1411} closing \ghit{1410}) \item Old helper functions use \code{message()} to signal they are not used, deprecation and removal to follow (Dirk in \ghpr{1413} closing \ghit{1412}) From fd56665ee9ce92ea42abb8eb95d050b99be59469 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sun, 28 Dec 2025 06:52:02 -0600 Subject: [PATCH 24/51] Replace drat mention in README with r-universe (#1431) * Replace drat mention in README with r-universe * One char fix [ci skip] --- ChangeLog | 4 ++++ README.md | 18 +++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 15d8a5654..5e13f1cbf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2025-12-28 Dirk Eddelbuettel + + * README.md: Replace installation from drat section with r-universe + 2025-12-22 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/README.md b/README.md index 0a0f4ffbc..b7bd39c3a 100644 --- a/README.md +++ b/README.md @@ -134,20 +134,20 @@ install.packages("Rcpp") #### Release Candidates -For the last several releases, we also made interim _candidate_ releases available -on the [Rcpp Drat Repo](https://RcppCore.github.io/drat/). Versions from a -[drat](https://github.com/eddelbuettel/drat) repo can be installed either by -just temporarily setting the [drat](https://github.com/eddelbuettel/drat) repo as in +We generally make interim _candidate_ releases available via the [r-universe +page](https://rcppcore.r-universe.dev/Rcpp). It provides a standard R repository which +corresponds to the current main branch in the source repository. Both binary and source +versions can be installed via ```R -install.packages("Rcpp", repos="https://RcppCore.github.io/drat") +install.packages("Rcpp", repos = c("https://rcppcore.r-universe.dev", + "https://cloud.r-project.org")) ``` -or by setting a [drat](https://github.com/eddelbuettel/drat) repo more permanently -(as described in the documentation of the [drat](https://github.com/eddelbuettel/drat) -package). +where other repos can be set as needed. -Testing the release candidates prior to actual release help. Please run this if you can. +Testing the release candidates prior to the actual release helps. Please run +this if you can. #### Source From dabc522a9f7cdd36b4aed035eea57663a78bfff4 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 31 Dec 2025 10:50:07 -0600 Subject: [PATCH 25/51] Refine when we skip running all tests (#1434) * Refine when we skip running all tests * Simplified condition expression --- ChangeLog | 5 +++++ tests/tinytest.R | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5e13f1cbf..062dc6860 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2025-12-30 Dirk Eddelbuettel + + * tests/tinytest.R: Refine decision of when not to run all tests even + when development version number is seen + 2025-12-28 Dirk Eddelbuettel * README.md: Replace installation from drat section with r-universe diff --git a/tests/tinytest.R b/tests/tinytest.R index 5dc5fc2b8..61cc2b8a7 100644 --- a/tests/tinytest.R +++ b/tests/tinytest.R @@ -1,6 +1,17 @@ if (requireNamespace("tinytest", quietly=TRUE)) { + ## if OMP_THREAD_LIMIT is set, and its value is 2, we have a good + ## idea of where we are and we likely do not want to run all tests + if (Sys.getenv("OMP_THREAD_LIMIT", unset="") == "2") { # set and 2 + if (Sys.getenv("RunAllRcppTests", "") != "") { # if unset + Sys.setenv("RunAllRcppTests"="no") + } + if (Sys.getenv("RunVerboseRcppTests", "") != "") { # if unset + Sys.setenv("RunVerboseRcppTests"="no") + } + } + ## Force tests to be executed if in dev release which we define as ## having a sub-release, eg 0.9.15.5 is one whereas 0.9.16 is not if (length(strsplit(format(packageVersion("Rcpp")), "\\.")[[1]]) > 3) { # dev rel, and From c79558603d4e43516eef24ed1788df0af144149d Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sat, 3 Jan 2026 06:40:01 -0600 Subject: [PATCH 26/51] Another small edit to NEWS.Rd --- inst/NEWS.Rd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 48db03c64..4a6081500 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -41,6 +41,8 @@ \item R is now cited via its DOI (Dirk) \item A (very) stale help page has been removed (Dirk in \ghpr{1428} fixing \ghit{1427}) + \item The main README.md was updated emphasizing r-universe in favor of + the local drat repos (Dirk in \ghpr{1431}) } \item Changes in Rcpp Deployment: \itemize{ @@ -54,6 +56,8 @@ \ghit{1412}) \item Three tests were being silenced following \ghpr{1413} (Dirk in \ghpr{1422}) + \item The heuristic whether to run all available tests was refined + (Dirk in \ghpr{1434} addressing \ghit{1433}) } } } From bf70a52c6b78644f4c21e7c13e78852402160cd5 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Sun, 4 Jan 2026 12:35:32 -0600 Subject: [PATCH 27/51] Tweak coverage (#1435) * Add #nocov tags to R/* files * Add #nocov tags to inst/include/Rcpp/* files * Add #nocov tags to src/* files * Tweak codecov setup too --- .codecov.yml | 4 ++++ ChangeLog | 25 +++++++++++++++++++++++++ R/Attributes.R | 6 +++--- R/Module.R | 2 +- R/Rcpp.package.skeleton.R | 8 ++++---- R/RcppLdpath.R | 12 ++++++------ R/asis.R | 4 ++-- R/inline.R | 6 ++---- R/loadModule.R | 13 ++++++------- inst/include/Rcpp/Environment.h | 2 +- inst/include/Rcpp/Function.h | 6 +++--- inst/include/Rcpp/Module.h | 4 ++-- inst/include/Rcpp/S4.h | 11 +++++------ inst/include/Rcpp/api/meat/Rcpp_eval.h | 4 ++-- inst/include/Rcpp/as.h | 13 ++++++------- inst/include/Rcpp/exceptions.h | 6 +++--- inst/include/Rcpp/internal/caster.h | 11 ++++------- inst/include/Rcpp/internal/export.h | 4 ++-- inst/include/Rcpp/proxy/NamesProxy.h | 4 ++-- inst/include/Rcpp/proxy/SlotProxy.h | 2 +- inst/include/Rcpp/r_cast.h | 9 ++++----- inst/include/Rcpp/vector/Vector.h | 6 +++--- inst/include/Rcpp/vector/proxy.h | 7 +++---- inst/include/Rcpp/vector/traits.h | 9 ++++----- src/attributes.cpp | 6 +++--- src/barrier.cpp | 8 ++++---- 26 files changed, 105 insertions(+), 87 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index 9ec352888..e10eb4a78 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1,4 +1,5 @@ comment: false + coverage: status: project: @@ -9,6 +10,9 @@ coverage: default: target: 0% # the (on purpose low) required coverage value +ignore: + - 'R/inline.R' # function factory setup confuses codecov + # layout: "header, diff, tree, changes" # behavior: default # require_changes: false # if true: only post the comment if coverage changes diff --git a/ChangeLog b/ChangeLog index 062dc6860..e4f6e5458 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2026-01-01 Dirk Eddelbuettel + + * R/Attributes.R: Additional or adjusted #nocov tags + * R/Rcpp.package.skeleton.R: Idem + * R/RcppLdpath.R: Idem + * R/asis.R: Idem + * R/inline.R: Idem + * inst/include/Rcpp/api/meat/Rcpp_eval.h: Idem + * inst/include/Rcpp/internal/caster.h: Idem + * inst/include/Rcpp/internal/export.h: Idem + * inst/include/Rcpp/proxy/NamesProxy.h: Idem + * inst/include/Rcpp/proxy/SlotProxy.h: Idem + * inst/include/Rcpp/vector/Vector.h: Idem + * inst/include/Rcpp/vector/proxy.h: Idem + * inst/include/Rcpp/vector/traits.h: Idem + * inst/include/Rcpp/Environment.h: Idem + * inst/include/Rcpp/Function.h: Idem + * inst/include/Rcpp/Module.h: Idem + * inst/include/Rcpp/S4.h: Idem + * inst/include/Rcpp/as.h: Idem + * inst/include/Rcpp/exceptions.h: Idem + * inst/include/Rcpp/r_cast.h: Idem + * src/attributes.cpp: Idem + * src/barrier.cpp: Idem + 2025-12-30 Dirk Eddelbuettel * tests/tinytest.R: Refine decision of when not to run all tests even diff --git a/R/Attributes.R b/R/Attributes.R index 1e84ab932..f34e83b17 100644 --- a/R/Attributes.R +++ b/R/Attributes.R @@ -1,6 +1,6 @@ # Copyright (C) 2012 - 2022 JJ Allaire, Dirk Eddelbuettel and Romain Francois -# Copyright (C) 2023 - 2024 JJ Allaire, Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +# Copyright (C) 2023 - 2026 JJ Allaire, Dirk Eddelbuettel, Romain Francois and Iñaki Ucar # # This file is part of Rcpp. # @@ -571,7 +571,7 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { } .openmpPluginDefault <- function() { - list(env = list(PKG_CXXFLAGS = "-fopenmp", PKG_LIBS = "-fopenmp")) + list(env = list(PKG_CXXFLAGS = "-fopenmp", PKG_LIBS = "-fopenmp")) # #nocov start } .openmpPluginDarwin <- function() { @@ -629,7 +629,7 @@ compileAttributes <- function(pkgdir = ".", verbose = getOption("verbose")) { libs <- "-fopenmp" } - list(env = list(PKG_CXXFLAGS = cxxflags, PKG_LIBS = libs)) + list(env = list(PKG_CXXFLAGS = cxxflags, PKG_LIBS = libs)) # #nocov end } diff --git a/R/Module.R b/R/Module.R index e0268012f..10c3cadce 100644 --- a/R/Module.R +++ b/R/Module.R @@ -1,4 +1,4 @@ -# Copyright (C) 2010 - 2021 John Chambers, Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2010 - 2026 John Chambers, Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # diff --git a/R/Rcpp.package.skeleton.R b/R/Rcpp.package.skeleton.R index 218761d2a..d8c989b50 100644 --- a/R/Rcpp.package.skeleton.R +++ b/R/Rcpp.package.skeleton.R @@ -1,4 +1,4 @@ -# Copyright (C) 2009 - 2025 Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2009 - 2026 Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # @@ -93,7 +93,7 @@ Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), email)) fields_written <- c("Package", "Type", "Title", "Version", "Date", "Authors@R", "Description", "License", "Imports", "LinkingTo") - if (!is.na(githubuser)) { + if (!is.na(githubuser)) { # #nocov start x <- cbind(x, matrix("", 1, 1, dimnames=list("", "URL"))) x[1, "URL"] <- paste0("https://github.com/", githubuser, "/", name) x <- cbind(x, matrix("", 1, 1, dimnames=list("", "BugReports"))) @@ -102,7 +102,7 @@ Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), fields_written <- c("Package", "Type", "Title", "Version", "Date", "Authors@R", "Description", "URL", "BugReports", "License", "Imports", "LinkingTo") - } + } # #nocov end x[, "License"] <- license x[, "Title"] <- "Concise Summary of What the Package Does" @@ -136,7 +136,7 @@ Rcpp.package.skeleton <- function(name = "anRpackage", list = character(), ## update the package description help page if (havePkgKitten) { # if pkgKitten is available, use it - pkgKitten::playWithPerPackageHelpPage(name, path, maintainer, email) + pkgKitten::playWithPerPackageHelpPage(name, path, maintainer, email) # #nocov } else { .playWithPerPackageHelpPage(name, path, maintainer, email) # #nocov } diff --git a/R/RcppLdpath.R b/R/RcppLdpath.R index 73fa4a9af..d8acb323e 100644 --- a/R/RcppLdpath.R +++ b/R/RcppLdpath.R @@ -1,4 +1,4 @@ -# Copyright (C) 2010 - 2021 Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # @@ -25,7 +25,7 @@ Rcpp.quoteNonStandard <- function(path) { ## On unix, check if path has only characters that do not need quoting noquote <- .Platform$OS.type == "unix" && grepl("^[[:alnum:]/._~+@%-]*$", path) ## If no quoting needed return unchanged else quote input - if (noquote) path else shQuote(path) + if (noquote) path else shQuote(path) # #nocov } ## Use R's internal knowledge of path settings to find the lib/ directory @@ -66,11 +66,11 @@ RcppCxxFlags <- function(cxx0x=FALSE) { ## Shorter names, and call cat() directly ## CxxFlags defaults to no using c++0x extensions are these are considered non-portable -CxxFlags <- function(cxx0x=FALSE) { +CxxFlags <- function(cxx0x=FALSE) { # #nocov start #.Deprecated(msg=paste("This function is now deprecated as R uses minimally", # "viable compilers om all platforme.")) message("'CxxFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") - cat(RcppCxxFlags(cxx0x=cxx0x)) # #nocov + cat(RcppCxxFlags(cxx0x=cxx0x)) # #nocov end } ## LdFlags defaults to static linking on the non-Linux platforms Windows and OS X @@ -84,11 +84,11 @@ RcppCapabilities <- capabilities <- function() .Call( rcpp_capabilities ) # compile, load and call the cxx0x.c script to identify whether # the compiler is GCC >= 4.3 -RcppCxx0xFlags <- function() { +RcppCxx0xFlags <- function() { # #nocov start #.Deprecated(msg=paste("This function is now deprecated as R uses minimally", # "viable compilers om all platforme.")) message("'RcppCxx0xFlags' has not been needed since 2013 (!!) and may get removed in 2027. Please update your 'Makevars'.") - script <- Rcpp.system.file( "discovery", "cxx0x.R" ) # #nocov start + script <- Rcpp.system.file( "discovery", "cxx0x.R" ) flag <- capture.output( source( script ) ) flag } diff --git a/R/asis.R b/R/asis.R index ab58d12c8..5fede4fc5 100644 --- a/R/asis.R +++ b/R/asis.R @@ -30,7 +30,7 @@ ##' # %\VignettePackage{Rcpp} ##' # %\VignetteEncoding{UTF-8} ##' # %\VignetteEngine{Rcpp::asis} -asisWeave <- function (file, ...) { +asisWeave <- function (file, ...) { # #nocov start output <- tools::file_path_sans_ext(basename(file)) if (!file.exists(output)) { outputS <- file.path("..", "inst", "doc", output) @@ -53,4 +53,4 @@ asisTangle <- function (file, ..., pattern = "(|[.][^.]*)[.]asis$") { filenameR <- sprintf("%s.R", fullname) cat(sprintf("### This is an R script tangled from '%s'\n", filename), file = filenameR) invisible(filenameR) -} +} # #nocov end diff --git a/R/inline.R b/R/inline.R index 8243e033f..165c615ed 100644 --- a/R/inline.R +++ b/R/inline.R @@ -1,4 +1,4 @@ -# Copyright (C) 2009 - 2017 Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2009 - 2026 Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # @@ -38,12 +38,11 @@ Rcpp.plugin.maker <- function(include.before = "", #endif using namespace Rcpp;", include.before, include.after) - out <- list(env = list( PKG_LIBS = libs ), includes = includes, LinkingTo = LinkingTo , body = function( x ) { - sprintf( "BEGIN_RCPP\n%s\nEND_RCPP", x ) + sprintf( "BEGIN_RCPP\n%s\nEND_RCPP", x ) # #nocov }, Depends = Depends, Imports = Imports) @@ -54,4 +53,3 @@ using namespace Rcpp;", include.before, include.after) } inlineCxxPlugin <- Rcpp.plugin.maker() - diff --git a/R/loadModule.R b/R/loadModule.R index 77ac55139..82d2dcda1 100644 --- a/R/loadModule.R +++ b/R/loadModule.R @@ -1,4 +1,4 @@ -# Copyright (C) 2010 - 2015 John Chambers, Dirk Eddelbuettel and Romain Francois +# Copyright (C) 2010 - 2026 John Chambers, Dirk Eddelbuettel and Romain Francois # # This file is part of Rcpp. # @@ -54,12 +54,12 @@ loadModule <- function( module, what = character(), loadNow, if(exists(metaName, envir = env, inherits = FALSE)) loadM <- get(metaName, envir = env) } - else if(is(module, "Module")) { - loadM <- as.environment(module) # #nocov - module <- get(loadM, "moduleName") # #nocov + else if(is(module, "Module")) { # #nocov start + loadM <- as.environment(module) + module <- get(loadM, "moduleName") } else - stop(gettextf("Argument \"module\" should be a module or the name of a module: got an object of class \"%s\"", class(module))) + stop(gettextf("Argument \"module\" should be a module or the name of a module: got an object of class \"%s\"", class(module))) # #nocov end if(missing(loadNow)) { # test it if(is.null(loadM)) loadM <- tryCatch(Module( module, mustStart = TRUE, where = env ), @@ -104,7 +104,7 @@ loadModule <- function( module, what = character(), loadNow, assignAs <- .moduleNames(what) for( i in seq_along(what) ) { if(.botched) - assign(assignAs[[i]], NULL, envir = storage) + assign(assignAs[[i]], NULL, envir = storage) # #nocov else assign(assignAs[[i]], get(what[[i]], envir = storage), envir = env) } @@ -120,4 +120,3 @@ loadModule <- function( module, what = character(), loadNow, invisible(myCall) # #nocov } } - diff --git a/inst/include/Rcpp/Environment.h b/inst/include/Rcpp/Environment.h index 4072755f7..bc89a702f 100644 --- a/inst/include/Rcpp/Environment.h +++ b/inst/include/Rcpp/Environment.h @@ -106,7 +106,7 @@ namespace Rcpp{ /* We need to evaluate if it is a promise */ if( TYPEOF(res) == PROMSXP){ - res = internal::Rcpp_eval_impl( res, env ) ; + res = internal::Rcpp_eval_impl( res, env ) ; // #nocov } return res ; } diff --git a/inst/include/Rcpp/Function.h b/inst/include/Rcpp/Function.h index 3c1e21e99..783318b39 100644 --- a/inst/include/Rcpp/Function.h +++ b/inst/include/Rcpp/Function.h @@ -1,7 +1,7 @@ // Function.h: Rcpp R/C++ interface class library -- functions (also primitives and builtins) // -// Copyright (C) 2010 - 2025 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -42,12 +42,12 @@ namespace Rcpp{ case BUILTINSXP: Storage::set__(x); break; - default: + default: // #nocov start const char* fmt = "Cannot convert object to a function: " "[type=%s; target=CLOSXP, SPECIALSXP, or " "BUILTINSXP]."; throw not_compatible(fmt, Rf_type2char(TYPEOF(x))); - } + } // #nocov end } /** diff --git a/inst/include/Rcpp/Module.h b/inst/include/Rcpp/Module.h index e14d073ad..7556e9f3c 100644 --- a/inst/include/Rcpp/Module.h +++ b/inst/include/Rcpp/Module.h @@ -1,7 +1,7 @@ // Module.h: Rcpp R/C++ interface class library -- Rcpp modules // -// Copyright (C) 2010 - 2025 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -571,7 +571,7 @@ namespace Rcpp { public: typedef XPtr XP_Class ; typedef Rcpp::XPtr XP ; - CppClass( SEXP x) : S4(x){}; + CppClass( SEXP x) : S4(x){}; // #nocov CppClass( Module* p, class_Base* cl, std::string& buffer ) : S4("C++Class") { XP_Class clxp( cl, false, R_NilValue, R_NilValue ) ; diff --git a/inst/include/Rcpp/S4.h b/inst/include/Rcpp/S4.h index d5fa8746a..2ec8cdebf 100644 --- a/inst/include/Rcpp/S4.h +++ b/inst/include/Rcpp/S4.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // S4.h: Rcpp R/C++ interface class library -- S4 objects // -// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -38,10 +37,10 @@ namespace Rcpp{ * * @param x must be an S4 object */ - S4_Impl(SEXP x) { + S4_Impl(SEXP x) { // #nocov start if( ! ::Rf_isS4(x) ) throw not_s4() ; Storage::set__(x) ; - } + } // #nocov end S4_Impl& operator=( SEXP other ){ Storage::set__( other ) ; @@ -57,7 +56,7 @@ namespace Rcpp{ S4_Impl( const std::string& klass ){ Shield x( R_do_new_object(R_do_MAKE_CLASS(klass.c_str())) ); if (!Rf_inherits(x, klass.c_str())) - throw S4_creation_error( klass ) ; + throw S4_creation_error( klass ) ; // #nocov Storage::set__(x) ; } diff --git a/inst/include/Rcpp/api/meat/Rcpp_eval.h b/inst/include/Rcpp/api/meat/Rcpp_eval.h index 8eb08e0f0..177668694 100644 --- a/inst/include/Rcpp/api/meat/Rcpp_eval.h +++ b/inst/include/Rcpp/api/meat/Rcpp_eval.h @@ -38,8 +38,8 @@ inline SEXP Rcpp_protected_eval(void* eval_data) { } // This is used internally instead of Rf_eval() to make evaluation safer -inline SEXP Rcpp_eval_impl(SEXP expr, SEXP env) { - return Rcpp_fast_eval(expr, env); +inline SEXP Rcpp_eval_impl(SEXP expr, SEXP env) { // #nocov + return Rcpp_fast_eval(expr, env); // #nocov } #else // R < 3.5.0 diff --git a/inst/include/Rcpp/as.h b/inst/include/Rcpp/as.h index 466761efb..e6990312c 100644 --- a/inst/include/Rcpp/as.h +++ b/inst/include/Rcpp/as.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // as.h: Rcpp R/C++ interface class library -- convert SEXP to C++ objects // -// Copyright (C) 2009 - 2015 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2009 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -30,8 +29,8 @@ namespace Rcpp { template T primitive_as(SEXP x) { if (::Rf_length(x) != 1) { - const char* fmt = "Expecting a single value: [extent=%i]."; - throw ::Rcpp::not_compatible(fmt, ::Rf_length(x)); + const char* fmt = "Expecting a single value: [extent=%i]."; // #nocov + throw ::Rcpp::not_compatible(fmt, ::Rf_length(x)); // #nocov } const int RTYPE = ::Rcpp::traits::r_sexptype_traits::rtype; Shield y(r_cast(x)); @@ -45,14 +44,14 @@ namespace Rcpp { } inline const char* check_single_string(SEXP x) { - if (TYPEOF(x) == CHARSXP) return CHAR(x); + if (TYPEOF(x) == CHARSXP) return CHAR(x); // #nocov start if (! ::Rf_isString(x) || Rf_length(x) != 1) { const char* fmt = "Expecting a single string value: " "[type=%s; extent=%i]."; throw ::Rcpp::not_compatible(fmt, Rf_type2char(TYPEOF(x)), Rf_length(x)); - } + } // #nocov end return CHAR(STRING_ELT(::Rcpp::r_cast(x), 0)); } diff --git a/inst/include/Rcpp/exceptions.h b/inst/include/Rcpp/exceptions.h index 17dd28d01..2311442e3 100644 --- a/inst/include/Rcpp/exceptions.h +++ b/inst/include/Rcpp/exceptions.h @@ -3,7 +3,7 @@ // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois // Copyright (C) 2021 - 2024 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar -// Copyright (C) 2025 Dirk Eddelbuettel, Romain Francois, Iñaki Ucar and James J Balamuta +// Copyright (C) 2025 - 2026 Dirk Eddelbuettel, Romain Francois, Iñaki Ucar and James J Balamuta // // This file is part of Rcpp. // @@ -153,7 +153,7 @@ inline void resumeJump(SEXP token) { ::R_ReleaseObject(token); ::R_ContinueUnwind(token); Rf_error("Internal error: Rcpp longjump failed to resume"); -} // #nocov end +} }} // namespace Rcpp::internal @@ -187,7 +187,7 @@ struct LongjumpException { template inline void warning(const char* fmt, Args&&... args ) { Rf_warning("%s", tfm::format(fmt, std::forward(args)... ).c_str()); - } + } // #nocov end template inline void NORET stop(const char* fmt, Args&&... args) { diff --git a/inst/include/Rcpp/internal/caster.h b/inst/include/Rcpp/internal/caster.h index afd63ed39..771e9f1d8 100644 --- a/inst/include/Rcpp/internal/caster.h +++ b/inst/include/Rcpp/internal/caster.h @@ -1,9 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- -/* :tabSize=4:indentSize=4:noTabs=false:folding=explicit:collapseFolds=1: */ -// + // caster.h: Rcpp R/C++ interface class library -- // -// Copyright (C) 2010 - 2013 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -26,9 +24,9 @@ namespace Rcpp{ namespace internal{ -template TO caster(FROM from){ +template TO caster(FROM from){ // #nocov start return static_cast(from) ; -} +} // #nocov end template inline Rcomplex Rcomplex_caster( std::complex from ){ @@ -67,4 +65,3 @@ inline std::complex caster >( Rcomplex from } #endif - diff --git a/inst/include/Rcpp/internal/export.h b/inst/include/Rcpp/internal/export.h index 46ce154c3..04d899433 100644 --- a/inst/include/Rcpp/internal/export.h +++ b/inst/include/Rcpp/internal/export.h @@ -77,11 +77,11 @@ namespace Rcpp{ template void export_range__dispatch( SEXP x, InputIterator first, ::Rcpp::traits::r_type_string_tag ) { - if( ! ::Rf_isString( x) ) { + if( ! ::Rf_isString( x) ) { // #nocov start const char* fmt = "Expecting a string vector: " "[type=%s; required=STRSXP]."; throw ::Rcpp::not_compatible(fmt, Rf_type2char(TYPEOF(x)) ); - } + } // #nocov end R_xlen_t n = ::Rf_xlength(x) ; for( R_xlen_t i=0; i safe_x(x); /* check if we can use a fast version */ - if( TYPEOF(x) == STRSXP && parent.size() == Rf_length(x) ){ + if( TYPEOF(x) == STRSXP && parent.size() == Rf_length(x) ){ // #nocov start Rf_namesgets(parent, x); } else { /* use the slower and more flexible version (callback to R) */ SEXP namesSym = Rf_install( "names<-" ); Shield call(Rf_lang3(namesSym, parent, x)); Shield new_vec(Rcpp_fast_eval(call, R_GlobalEnv)); - parent.set__(new_vec); + parent.set__(new_vec); // #nocov end } } diff --git a/inst/include/Rcpp/proxy/SlotProxy.h b/inst/include/Rcpp/proxy/SlotProxy.h index 718a83054..c6d3f4f76 100644 --- a/inst/include/Rcpp/proxy/SlotProxy.h +++ b/inst/include/Rcpp/proxy/SlotProxy.h @@ -28,7 +28,7 @@ class SlotProxyPolicy { public: SlotProxy( CLASS& v, const std::string& name) : parent(v), slot_name(Rf_install(name.c_str())) { if( !R_has_slot( v, slot_name) ){ - throw no_such_slot(name); + throw no_such_slot(name); // #nocov } } diff --git a/inst/include/Rcpp/r_cast.h b/inst/include/Rcpp/r_cast.h index 7983f6284..7f26d8966 100644 --- a/inst/include/Rcpp/r_cast.h +++ b/inst/include/Rcpp/r_cast.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; indent-tabs-mode: nil; -*- -// + // rcast.h: Rcpp R/C++ interface class library -- cast from one SEXP type to another // -// Copyright (C) 2010 - 2017 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -156,7 +155,7 @@ namespace Rcpp { } // namespace internal - template SEXP r_cast(SEXP x) { + template SEXP r_cast(SEXP x) { // #nocov start if (TYPEOF(x) == TARGET) { return x; } else { @@ -168,7 +167,7 @@ namespace Rcpp { ); return result; #else - return internal::r_true_cast(x); // #nocov + return internal::r_true_cast(x); // #nocov end #endif } } diff --git a/inst/include/Rcpp/vector/Vector.h b/inst/include/Rcpp/vector/Vector.h index e5440a5f1..76bc56020 100644 --- a/inst/include/Rcpp/vector/Vector.h +++ b/inst/include/Rcpp/vector/Vector.h @@ -1,6 +1,6 @@ // Vector.h: Rcpp R/C++ interface class library -- vectors // -// Copyright (C) 2010 - 2025 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -345,10 +345,10 @@ class Vector : return cache.ref( offset(i) ) ; } - inline Proxy at( const size_t& i) { + inline Proxy at( const size_t& i) { // #nocov start return cache.ref( offset(i) ) ; } - inline const_Proxy at( const size_t& i) const { // #nocov start + inline const_Proxy at( const size_t& i) const { return cache.ref( offset(i) ) ; } // #nocov end diff --git a/inst/include/Rcpp/vector/proxy.h b/inst/include/Rcpp/vector/proxy.h index 015b77756..296b93001 100644 --- a/inst/include/Rcpp/vector/proxy.h +++ b/inst/include/Rcpp/vector/proxy.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- -// + // proxy.h: Rcpp R/C++ interface class library -- proxies // -// Copyright (C) 2010 - 2018 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -182,7 +181,7 @@ namespace internal{ R_xlen_t index = 0 ; try{ index = parent.offset(name) ; - parent[ index ] = rhs ; + parent[ index ] = rhs ; // #nocov } catch( const index_out_of_bounds& ex ){ parent.push_back( rhs, name ); } diff --git a/inst/include/Rcpp/vector/traits.h b/inst/include/Rcpp/vector/traits.h index c6d76d694..3e1dcecec 100644 --- a/inst/include/Rcpp/vector/traits.h +++ b/inst/include/Rcpp/vector/traits.h @@ -1,8 +1,7 @@ -// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8 -*- -// + // traits.h: Rcpp R/C++ interface class library -- support traits for vector // -// Copyright (C) 2010 - 2018 Dirk Eddelbuettel and Romain Francois +// Copyright (C) 2010 - 2026 Dirk Eddelbuettel and Romain Francois // // This file is part of Rcpp. // @@ -56,7 +55,7 @@ namespace traits{ void check_index(R_xlen_t i) const { #ifndef RCPP_NO_BOUNDS_CHECK if (i >= size) { - warning("subscript out of bounds (index %s >= vector size %s)", i, size); + warning("subscript out of bounds (index %s >= vector size %s)", i, size); // #nocov } #endif } @@ -94,7 +93,7 @@ namespace traits{ void check_index(R_xlen_t i) const { #ifndef RCPP_NO_BOUNDS_CHECK if (i >= p->size()) { - warning("subscript out of bounds (index %s >= vector size %s)", i, p->size()); + warning("subscript out of bounds (index %s >= vector size %s)", i, p->size()); // #nocov } #endif } diff --git a/src/attributes.cpp b/src/attributes.cpp index 5240e3627..641b13624 100644 --- a/src/attributes.cpp +++ b/src/attributes.cpp @@ -1,7 +1,7 @@ // attributes.cpp: Rcpp R/C++ interface class library -- Rcpp attributes // // Copyright (C) 2012 - 2020 JJ Allaire, Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 - 2025 JJ Allaire, Dirk Eddelbuettel, Romain Francois, Iñaki Ucar and Travers Ching +// Copyright (C) 2021 - 2026 JJ Allaire, Dirk Eddelbuettel, Romain Francois, Iñaki Ucar and Travers Ching // // This file is part of Rcpp. // @@ -2485,8 +2485,8 @@ namespace attributes { if(attribute.hasParameter(kExportSignature)) { args = attribute.customRSignature(); if(!checkRSignature(function, args)) { - std::string rsig_err_msg = "Missing args in " + args; - throw Rcpp::exception(rsig_err_msg.c_str()); + std::string rsig_err_msg = "Missing args in " + args; // #nocov + throw Rcpp::exception(rsig_err_msg.c_str()); // #nocov } } // determine the function name diff --git a/src/barrier.cpp b/src/barrier.cpp index 019a246ab..aa0febb68 100644 --- a/src/barrier.cpp +++ b/src/barrier.cpp @@ -2,7 +2,7 @@ // barrier.cpp: Rcpp R/C++ interface class library -- write barrier // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 - 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2021 - 2026 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -103,13 +103,13 @@ void Rcpp_precious_init() { R_PreserveObject(Rcpp_precious); // and protect } // [[Rcpp::register]] -void Rcpp_precious_teardown() { +void Rcpp_precious_teardown() { // #nocov start R_ReleaseObject(Rcpp_precious); // release resource -} +} // #nocov end // [[Rcpp::register]] SEXP Rcpp_precious_preserve(SEXP object) { if (object == R_NilValue) { - return R_NilValue; + return R_NilValue; // #nocov } PROTECT(object); SEXP cell = PROTECT(CONS(Rcpp_precious, CDR(Rcpp_precious))); From f1e9eea86b78e0d92cb1e02ccc3a7056b032e854 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 6 Jan 2026 15:15:16 -0600 Subject: [PATCH 28/51] No longer require #ifdef for UNWIND_PROTECT, had been 'on' for long (#1437) --- ChangeLog | 7 +++++++ DESCRIPTION | 4 ++-- inst/include/Rcpp/api/meat/Rcpp_eval.h | 25 ++----------------------- inst/include/Rcpp/r/headers.h | 6 +----- inst/include/RcppCommon.h | 7 ++----- inst/tinytest/cpp/stack.cpp | 11 ----------- inst/tinytest/test_interface.R | 16 +++++++++------- 7 files changed, 23 insertions(+), 53 deletions(-) diff --git a/ChangeLog b/ChangeLog index e4f6e5458..e0488af6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,13 @@ * inst/include/Rcpp/r_cast.h: Idem * src/attributes.cpp: Idem * src/barrier.cpp: Idem +2026-01-04 Dirk Eddelbuettel + + * inst/include/RcppCommon.h: No longer require RCPP_USING_UNWIND_PROTECT + * inst/include/Rcpp/r/headers.h: Idem + * inst/include/Rcpp/api/meat/Rcpp_eval.h: Idem + * inst/tinytest/cpp/stack.cpp: No longer test with RCPP_USING_UNWIND_PROTECT + * inst/tinytest/test_interface.R: Idem 2025-12-30 Dirk Eddelbuettel diff --git a/DESCRIPTION b/DESCRIPTION index 43cf1ced1..7076113bc 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.13 -Date: 2025-12-23 +Version: 1.1.0.13.1 +Date: 2026-01-04 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/api/meat/Rcpp_eval.h b/inst/include/Rcpp/api/meat/Rcpp_eval.h index 177668694..340d2ac7a 100644 --- a/inst/include/Rcpp/api/meat/Rcpp_eval.h +++ b/inst/include/Rcpp/api/meat/Rcpp_eval.h @@ -1,4 +1,5 @@ -// Copyright (C) 2013 Romain Francois +// Copyright (C) 2013 - 2025 Romain Francois +// Copyright (C) 2026 Romain Francois and Dirk Eddelbuettel // // This file is part of Rcpp. // @@ -24,8 +25,6 @@ namespace Rcpp { namespace internal { -#ifdef RCPP_USING_UNWIND_PROTECT - struct EvalData { SEXP expr; SEXP env; @@ -42,36 +41,16 @@ inline SEXP Rcpp_eval_impl(SEXP expr, SEXP env) { // #nocov return Rcpp_fast_eval(expr, env); // #nocov } -#else // R < 3.5.0 - -// Fall back to Rf_eval() when the protect-unwind API is unavailable -inline SEXP Rcpp_eval_impl(SEXP expr, SEXP env) { - return ::Rf_eval(expr, env); -} - -#endif - }} // namespace Rcpp::internal namespace Rcpp { -#ifdef RCPP_USING_UNWIND_PROTECT - inline SEXP Rcpp_fast_eval(SEXP expr, SEXP env) { internal::EvalData data(expr, env); return unwindProtect(&internal::Rcpp_protected_eval, &data); } -#else - -inline SEXP Rcpp_fast_eval(SEXP expr, SEXP env) { - return Rcpp_eval(expr, env); -} - -#endif - - inline SEXP Rcpp_eval(SEXP expr, SEXP env) { // 'identity' function used to capture errors, interrupts diff --git a/inst/include/Rcpp/r/headers.h b/inst/include/Rcpp/r/headers.h index ab4f2e3ab..7bf972a3c 100644 --- a/inst/include/Rcpp/r/headers.h +++ b/inst/include/Rcpp/r/headers.h @@ -2,7 +2,7 @@ // // Copyright (C) 2008 - 2009 Dirk Eddelbuettel // Copyright (C) 2009 - 2024 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2025 - Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -101,8 +101,4 @@ # pragma pop_macro("makedev") #endif -#if !defined(RCPP_NO_UNWIND_PROTECT) -# define RCPP_USING_UNWIND_PROTECT -#endif - #endif /* RCPP__R__HEADERS__H */ diff --git a/inst/include/RcppCommon.h b/inst/include/RcppCommon.h index 18671e86f..ea23f5e82 100644 --- a/inst/include/RcppCommon.h +++ b/inst/include/RcppCommon.h @@ -1,10 +1,9 @@ -// // RcppCommon.h: Rcpp R/C++ interface class library -- common include and defines statements // // Copyright (C) 2008 - 2009 Dirk Eddelbuettel // Copyright (C) 2009 - 2020 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 - 2025 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2021 - 2026 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -132,9 +131,7 @@ namespace Rcpp { #include #include -#ifdef RCPP_USING_UNWIND_PROTECT - #include -#endif +#include #include #include diff --git a/inst/tinytest/cpp/stack.cpp b/inst/tinytest/cpp/stack.cpp index 8bb7d52df..a4a5c86eb 100644 --- a/inst/tinytest/cpp/stack.cpp +++ b/inst/tinytest/cpp/stack.cpp @@ -65,10 +65,7 @@ SEXP maybeThrow(void* data) { SEXP testUnwindProtect(Environment indicator, bool fail) { unwindIndicator my_data(indicator); SEXP out = R_NilValue; - -#ifdef RCPP_USING_UNWIND_PROTECT out = Rcpp::unwindProtect(&maybeThrow, &fail); -#endif return out; } @@ -77,11 +74,7 @@ SEXP testUnwindProtect(Environment indicator, bool fail) { SEXP testUnwindProtectLambda(Environment indicator, bool fail) { unwindIndicator my_data(indicator); SEXP out = R_NilValue; - -#ifdef RCPP_USING_UNWIND_PROTECT out = Rcpp::unwindProtect([&] () { return maybeThrow(&fail); }); -#endif - return out; } @@ -100,10 +93,6 @@ struct FunctionObj { SEXP testUnwindProtectFunctionObject(Environment indicator, bool fail) { unwindIndicator my_data(indicator); SEXP out = R_NilValue; - -#ifdef RCPP_USING_UNWIND_PROTECT out = Rcpp::unwindProtect(FunctionObj(10, fail)); -#endif - return out; } diff --git a/inst/tinytest/test_interface.R b/inst/tinytest/test_interface.R index 22536db58..707571f27 100644 --- a/inst/tinytest/test_interface.R +++ b/inst/tinytest/test_interface.R @@ -81,16 +81,18 @@ expect_equal(result, 0L) ## Now test client package without protected evaluation unlink(user_name, recursive = TRUE) unlink(paste0(user_name, "-tests"), recursive = TRUE) -build_package(user_name, lib_path, config = "#define RCPP_NO_UNWIND_PROTECT") -result <- tools::testInstalledPackage(user_name, lib.loc = lib_path, types = "test") +## no longer supported in code +## build_package(user_name, lib_path, config = "#define RCPP_NO_UNWIND_PROTECT") -if (result) { - log <- file.path(paste0(user_name, "-tests"), "tests.Rout.fail") - cat(">> UNPROTECTED tests.Rout.fail", readLines(log), sep = "\n", file = stderr()) -} +## result <- tools::testInstalledPackage(user_name, lib.loc = lib_path, types = "test") -expect_equal(result, 0L) +## if (result) { +## log <- file.path(paste0(user_name, "-tests"), "tests.Rout.fail") +## cat(">> UNPROTECTED tests.Rout.fail", readLines(log), sep = "\n", file = stderr()) +## } + +## expect_equal(result, 0L) on.exit({ setwd(old_wd) From d8f04d86c9b963efa63f9f4aab3f3366ca6fadca Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 6 Jan 2026 15:23:16 -0600 Subject: [PATCH 29/51] Roll micro version date --- ChangeLog | 20 +++++++++++++------- DESCRIPTION | 4 ++-- inst/include/Rcpp/config.h | 4 ++-- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index e0488af6b..ea061c472 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2026-01-06 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll micro version and date + * inst/include/Rcpp/config.h: Idem + +2026-01-04 Dirk Eddelbuettel + + * inst/include/RcppCommon.h: No longer require RCPP_USING_UNWIND_PROTECT + * inst/include/Rcpp/r/headers.h: Idem + * inst/include/Rcpp/api/meat/Rcpp_eval.h: Idem + * inst/tinytest/cpp/stack.cpp: No longer test with RCPP_USING_UNWIND_PROTECT + * inst/tinytest/test_interface.R: Idem + 2026-01-01 Dirk Eddelbuettel * R/Attributes.R: Additional or adjusted #nocov tags @@ -22,13 +35,6 @@ * inst/include/Rcpp/r_cast.h: Idem * src/attributes.cpp: Idem * src/barrier.cpp: Idem -2026-01-04 Dirk Eddelbuettel - - * inst/include/RcppCommon.h: No longer require RCPP_USING_UNWIND_PROTECT - * inst/include/Rcpp/r/headers.h: Idem - * inst/include/Rcpp/api/meat/Rcpp_eval.h: Idem - * inst/tinytest/cpp/stack.cpp: No longer test with RCPP_USING_UNWIND_PROTECT - * inst/tinytest/test_interface.R: Idem 2025-12-30 Dirk Eddelbuettel diff --git a/DESCRIPTION b/DESCRIPTION index 7076113bc..2226dd2c6 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.1.0.13.1 -Date: 2026-01-04 +Version: 1.1.0.14 +Date: 2026-01-06 Authors@R: c(person("Dirk", "Eddelbuettel", role = c("aut", "cre"), email = "edd@debian.org", comment = c(ORCID = "0000-0001-6419-907X")), person("Romain", "Francois", role = "aut", diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index 49212fb73..a7b125bf5 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -31,7 +31,7 @@ #define RCPP_VERSION_STRING "1.1.0" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,13) -#define RCPP_DEV_VERSION_STRING "1.1.0.13" +#define RCPP_DEV_VERSION RcppDevVersion(1,1,0,14) +#define RCPP_DEV_VERSION_STRING "1.1.0.14" #endif From 8ba79722d9f4f62cfcb6151e805d96e189512c90 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 6 Jan 2026 15:28:28 -0600 Subject: [PATCH 30/51] Add two more items to NEWS.Rd [ci skip] --- inst/NEWS.Rd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index 4a6081500..fc57a2e39 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -28,6 +28,8 @@ older code has been removed (Dirk in \ghpr{1426} fixing \ghit{1425}) \item The non-API \code{ATTRIB} entry point to the R API is no longer used (Dirk in \ghpr{1430} addressing \ghit{1429}) + \item The unwind-protect mechanism is now used unconditionally (Dirk + in \ghpr{1437} closing \ghit{1436}) } \item Changes in Rcpp Attributes: \itemize{ @@ -58,6 +60,8 @@ \ghpr{1422}) \item The heuristic whether to run all available tests was refined (Dirk in \ghpr{1434} addressing \ghit{1433}) + \item Coverage has been tweaked via additional \code{#nocov} tags (Dirk + in \ghpr{1435}) } } } From c17d027d7ab1d7428d0976ea2953e2887b1cf6bc Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Tue, 6 Jan 2026 16:20:47 -0600 Subject: [PATCH 31/51] Update bibliography [ci skip] --- ChangeLog | 3 +++ inst/bib/Rcpp.bib | 48 +++++++++++++++++++++--------------------- vignettes/rmd/Rcpp.bib | 48 +++++++++++++++++++++--------------------- 3 files changed, 51 insertions(+), 48 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea061c472..7805db621 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,9 @@ * DESCRIPTION (Version, Date): Roll micro version and date * inst/include/Rcpp/config.h: Idem + * vignettes/rmd/Rcpp.bib: Update package versions dates + * inst/bib/Rcpp.bib: Idem + 2026-01-04 Dirk Eddelbuettel * inst/include/RcppCommon.h: No longer require RCPP_USING_UNWIND_PROTECT diff --git a/inst/bib/Rcpp.bib b/inst/bib/Rcpp.bib index 648b9eeaf..7a5f5115b 100644 --- a/inst/bib/Rcpp.bib +++ b/inst/bib/Rcpp.bib @@ -76,8 +76,8 @@ @Misc{Brokken:2011:Cpp @Manual{CRAN:anytime, title = {anytime: Anything to 'POSIXct' or 'Date' Converter}, author = {Dirk Eddelbuettel}, - year = {2024}, - note = {R package version 0.3.11}, + year = {2025}, + note = {R package version 0.3.12}, oldurl = CRAN # "package=anytime", doi = DOI # "anytime" } @@ -95,8 +95,8 @@ @Manual{CRAN:BH title = {BH: Boost C++ Header Files}, author = {Dirk Eddelbuettel and John W. Emerson and Michael J. Kane}, - year = {2024}, - note = {R package version 1.87.0-1}, + year = {2025}, + note = {R package version 1.90.0-1}, oldurl = CRAN # "package=BH", doi = DOI # "BH" } @@ -105,7 +105,7 @@ @Manual{CRAN:Matrix title = {\pkg{Matrix}: Sparse and Dense Matrix Classes and Methods}, author = {Douglas Bates and Martin Maechler}, year = 2025, - note = {R package version 1.7-3}, + note = {R package version 1.7-4}, oldurl = CRAN # "package=Matrix", doi = DOI # "Matrix" } @@ -113,8 +113,8 @@ @Manual{CRAN:Matrix @Manual{CRAN:RInside, title = {RInside: C++ classes to embed R in C++ applications}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2020, - note = {R package version 0.2.16}, + year = 2025, + note = {R package version 0.2.19}, oldurl = CRAN # "package=RInside", doi = DOI # "RInside" } @@ -152,8 +152,8 @@ @Manual{CRAN:Rcpp author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and JJ Allaire and Kevin Ushey and Qiang Kou and Nathan Russel and John Chambers and Douglas Bates}, - year = 2025, - note = {R package version 1.1.0}, + year = 2026, + note = {R package version 1.1.1}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" } @@ -163,7 +163,7 @@ @Manual{CRAN:Rcpp:Attributes author = {J. J. Allaire and Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {{Rcpp} Attributes}, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -173,7 +173,7 @@ @Manual{CRAN:Rcpp:FAQ crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Frequently Asked Questions About {Rcpp}}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -183,7 +183,7 @@ @Manual{CRAN:Rcpp:Libraries crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel}, title = {Thirteen Simple Steps for Creating An R Package with an External C++ Library }, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -193,7 +193,7 @@ @Manual{CRAN:Rcpp:Modules crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Exposing {C++} functions and classes with {Rcpp} modules}, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -203,7 +203,7 @@ @Manual{CRAN:Rcpp:Package crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Writing a package that uses {Rcpp}}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -213,7 +213,7 @@ @Manual{CRAN:Rcpp:Sugar crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Rcpp syntactic sugar}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -225,7 +225,7 @@ @Manual{CRAN:RcppArmadillo author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and Douglas Bates and Binxiang Ni and Conrad Sanderson}, year = 2025, - note = {R package version 14.4.3-1}, + note = {R package version 15.2.3-1}, oldurl = CRAN # "package=RcppArmadillo", doi = DOI # "RcppArmadillo" } @@ -316,8 +316,8 @@ @Manual{CRAN:RcppZiggurat @Manual{CRAN:Rserve, title = {Rserve: Versatile R Server}, author = {Simon Urbanek}, - year = 2024, - note = {R package version 1.8-15}, + year = 2025, + note = {R package version 1.8-16}, oldurl = CRAN # "package=Rserve", doi = DOI # "Rserve" } @@ -336,8 +336,8 @@ @Manual{CRAN:devtools title = {devtools: Tools to Make Developing R Packages Easier}, author = {Hadley Wickham and Jim Hester and Winston Chang}, - year = 2022, - note = {R package version 2.4.5}, + year = 2025, + note = {R package version 2.4.6}, oldurl = CRAN # "package=devtools", doi = DOI # "devtools" } @@ -345,8 +345,8 @@ @Manual{CRAN:devtools @Manual{CRAN:highlight, title = {highlight: Syntax Highlighter}, author = {Hadley Wickham and Romain Fran\c{c}ois and Andre Simon}, - year = 2023, - note = {R package with version 0.5.1}, + year = 2025, + note = {R package with version 0.5.2}, oldurl = CRAN # "package=highlight", doi = DOI # "highlight" } @@ -423,8 +423,8 @@ @Manual{CRAN:rbenchmark @Manual{CRAN:roxygen2, title = {roxygen2: In-Line documentation for R}, author = {Hadley Wickham and Peter Danenberg and G\a'bor Cs\a'rdi and Manuel Eugster}, - year = 2024, - note = {R package version 7.3.2}, + year = 2025, + note = {R package version 7.3.3}, oldurl = CRAN # "package=roxygen2", doi = DOI # "roxygen2" } diff --git a/vignettes/rmd/Rcpp.bib b/vignettes/rmd/Rcpp.bib index 648b9eeaf..7a5f5115b 100644 --- a/vignettes/rmd/Rcpp.bib +++ b/vignettes/rmd/Rcpp.bib @@ -76,8 +76,8 @@ @Misc{Brokken:2011:Cpp @Manual{CRAN:anytime, title = {anytime: Anything to 'POSIXct' or 'Date' Converter}, author = {Dirk Eddelbuettel}, - year = {2024}, - note = {R package version 0.3.11}, + year = {2025}, + note = {R package version 0.3.12}, oldurl = CRAN # "package=anytime", doi = DOI # "anytime" } @@ -95,8 +95,8 @@ @Manual{CRAN:BH title = {BH: Boost C++ Header Files}, author = {Dirk Eddelbuettel and John W. Emerson and Michael J. Kane}, - year = {2024}, - note = {R package version 1.87.0-1}, + year = {2025}, + note = {R package version 1.90.0-1}, oldurl = CRAN # "package=BH", doi = DOI # "BH" } @@ -105,7 +105,7 @@ @Manual{CRAN:Matrix title = {\pkg{Matrix}: Sparse and Dense Matrix Classes and Methods}, author = {Douglas Bates and Martin Maechler}, year = 2025, - note = {R package version 1.7-3}, + note = {R package version 1.7-4}, oldurl = CRAN # "package=Matrix", doi = DOI # "Matrix" } @@ -113,8 +113,8 @@ @Manual{CRAN:Matrix @Manual{CRAN:RInside, title = {RInside: C++ classes to embed R in C++ applications}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, - year = 2020, - note = {R package version 0.2.16}, + year = 2025, + note = {R package version 0.2.19}, oldurl = CRAN # "package=RInside", doi = DOI # "RInside" } @@ -152,8 +152,8 @@ @Manual{CRAN:Rcpp author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and JJ Allaire and Kevin Ushey and Qiang Kou and Nathan Russel and John Chambers and Douglas Bates}, - year = 2025, - note = {R package version 1.1.0}, + year = 2026, + note = {R package version 1.1.1}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" } @@ -163,7 +163,7 @@ @Manual{CRAN:Rcpp:Attributes author = {J. J. Allaire and Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {{Rcpp} Attributes}, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -173,7 +173,7 @@ @Manual{CRAN:Rcpp:FAQ crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Frequently Asked Questions About {Rcpp}}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -183,7 +183,7 @@ @Manual{CRAN:Rcpp:Libraries crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel}, title = {Thirteen Simple Steps for Creating An R Package with an External C++ Library }, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -193,7 +193,7 @@ @Manual{CRAN:Rcpp:Modules crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Exposing {C++} functions and classes with {Rcpp} modules}, - year = 2025, + year = 2026, note = {Vignette included in R package Rcpp}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -203,7 +203,7 @@ @Manual{CRAN:Rcpp:Package crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Writing a package that uses {Rcpp}}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -213,7 +213,7 @@ @Manual{CRAN:Rcpp:Sugar crossref = {CRAN:Rcpp}, author = {Dirk Eddelbuettel and Romain Fran\c{c}ois}, title = {Rcpp syntactic sugar}, - year = 2025, + year = 2026, note = {Vignette included in R package {Rcpp}}, oldurl = CRAN # "package=Rcpp", doi = DOI # "Rcpp" @@ -225,7 +225,7 @@ @Manual{CRAN:RcppArmadillo author = {Dirk Eddelbuettel and Romain Fran\c{c}ois and Douglas Bates and Binxiang Ni and Conrad Sanderson}, year = 2025, - note = {R package version 14.4.3-1}, + note = {R package version 15.2.3-1}, oldurl = CRAN # "package=RcppArmadillo", doi = DOI # "RcppArmadillo" } @@ -316,8 +316,8 @@ @Manual{CRAN:RcppZiggurat @Manual{CRAN:Rserve, title = {Rserve: Versatile R Server}, author = {Simon Urbanek}, - year = 2024, - note = {R package version 1.8-15}, + year = 2025, + note = {R package version 1.8-16}, oldurl = CRAN # "package=Rserve", doi = DOI # "Rserve" } @@ -336,8 +336,8 @@ @Manual{CRAN:devtools title = {devtools: Tools to Make Developing R Packages Easier}, author = {Hadley Wickham and Jim Hester and Winston Chang}, - year = 2022, - note = {R package version 2.4.5}, + year = 2025, + note = {R package version 2.4.6}, oldurl = CRAN # "package=devtools", doi = DOI # "devtools" } @@ -345,8 +345,8 @@ @Manual{CRAN:devtools @Manual{CRAN:highlight, title = {highlight: Syntax Highlighter}, author = {Hadley Wickham and Romain Fran\c{c}ois and Andre Simon}, - year = 2023, - note = {R package with version 0.5.1}, + year = 2025, + note = {R package with version 0.5.2}, oldurl = CRAN # "package=highlight", doi = DOI # "highlight" } @@ -423,8 +423,8 @@ @Manual{CRAN:rbenchmark @Manual{CRAN:roxygen2, title = {roxygen2: In-Line documentation for R}, author = {Hadley Wickham and Peter Danenberg and G\a'bor Cs\a'rdi and Manuel Eugster}, - year = 2024, - note = {R package version 7.3.2}, + year = 2025, + note = {R package version 7.3.3}, oldurl = CRAN # "package=roxygen2", doi = DOI # "roxygen2" } From 601b7ed60d6986e19cc782706e1b1b2b50639e64 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 7 Jan 2026 10:59:29 -0600 Subject: [PATCH 32/51] Updated a number of URLs --- ChangeLog | 6 ++++ inst/bib/Rcpp.bib | 22 ++++++------ vignettes/rmd/Rcpp-FAQ.Rmd | 56 ++++++++++++++--------------- vignettes/rmd/Rcpp-attributes.Rmd | 6 ++-- vignettes/rmd/Rcpp-extending.Rmd | 4 +-- vignettes/rmd/Rcpp-introduction.Rmd | 9 +++-- vignettes/rmd/Rcpp-jss-2011.Rnw | 6 ++-- vignettes/rmd/Rcpp-libraries.Rmd | 2 +- vignettes/rmd/Rcpp-modules.Rmd | 4 +-- vignettes/rmd/Rcpp-package.Rmd | 24 ++++++------- vignettes/rmd/Rcpp-quickref.Rmd | 38 ++++++++++---------- vignettes/rmd/Rcpp-sugar.Rmd | 6 ++-- vignettes/rmd/Rcpp.bib | 22 ++++++------ 13 files changed, 105 insertions(+), 100 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7805db621..105cca1ea 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2026-01-07 Dirk Eddelbuettel + + * vignettes/rmd/Rcpp.bib: Update to several URLs + * inst/bib/Rcpp.bib: Idem + * vignettes/rmd/*: Idem + 2026-01-06 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll micro version and date diff --git a/inst/bib/Rcpp.bib b/inst/bib/Rcpp.bib index 7a5f5115b..84b2864cd 100644 --- a/inst/bib/Rcpp.bib +++ b/inst/bib/Rcpp.bib @@ -10,7 +10,7 @@ @manual{Abrahams+Grosse-Kunstleve:2003:Boost.Python organization = "Boost Consulting", title = "Building Hybrid Systems with Boost.Python", year = 2003, - url = "https://www.boostpro.com/writing/bpl.pdf" + url = "https://www.boost.org/doc/libs/latest/libs/python/doc/html/article.html" } @Book{Abrahams+Gurtovoy:2004:TemplateMetaprogramming, @@ -60,7 +60,7 @@ @InProceedings{Bates+DebRoy:2001:C++Classes Universit\"at Wien, Vienna, Austria}, editor = {Kurt Hornik and Friedrich Leisch}, year = {2001}, - url = {https://www.ci.tuwien.ac.at/Conferences/DSC-2001/Proceedings/}, + url = {https://www.r-project.org/conferences/DSC-2001/Proceedings/}, note = {ISSN 1609-395X} } @@ -554,7 +554,7 @@ @MISC{Eigen:Web author = {Ga\"{e}l Guennebaud and Beno\^{i}t Jacob and others}, title = {Eigen v3}, year = 2012, - url = {https://eigen.tuxfamily.org} + url = {https://libeigen.gitlib.io/} } @Manual{GSL, @@ -773,7 +773,7 @@ @Article{PeerJ:Rcpp issue = {e3188v1}, year = 2017, month = {August}, - url = {https://doi.org/10.7287/peerj.preprints.3188v1/}, + url = {https://peerj.com/preprints/3188v1/}, doi = {10.7287/peerj.preprints.3188v1/} } @@ -790,7 +790,7 @@ @manual{QuantLib author = {{QuantLib Core Team}}, year = 2021, title = {QuantLib: a free/open-source library for quantitative finance}, - url = {https://quantlib.org} + url = {https://www.quantlib.org} } @manual{R:Administration, @@ -886,7 +886,7 @@ @TechReport{Sanderson:2010:Armadillo Experiments }, institution = {{NICTA}}, year = 2010, - url = "https://arma.sf.net" + url = "https://arma.sourceforge.net" } @Book{Stroustrup:1997:Cpp, @@ -952,7 +952,7 @@ @InProceedings{Urbanek:2003:Rserve Statistical Computing, Vienna, Austria}, editor = {Kurt Hornik and Friedrich Leisch and Achim Zeileis}, year = {2003}, - url = {https://www.ci.tuwien.ac.at/Conferences/DSC-2003/Proceedings/}, + url = {https://www.r-project.org/conferences/DSC-2003/Proceedings/}, note = {{ISSN 1609-395X}} } @@ -996,7 +996,7 @@ @Book{Venables+Ripley:2002:MASS address = {New York}, year = 2002, note = {ISBN 0-387-95457-0}, - url = {https://www.stats.ox.ac.uk/pub/MASS4}, + url = {https://www.stats.ox.ac.uk/pub/MASS4/}, } @misc{arxiv:corels, @@ -1005,7 +1005,7 @@ @misc{arxiv:corels author = {Elaine Angelino and Nicholas Larus-Stone and Daniel Alabi and Margo Seltzer and Cynthia Rudin}, year = 2017, - howpublished = {\href{https://www.arxiv.org/1704.01701}{arXiv:1704.01701}}, + howpublished = {\href{https://www.arxiv.org/abs/1704.01701}{arXiv:1704.01701}}, archivePrefix ={arXiv}, primaryClass = {stat.ML} } @@ -1013,7 +1013,7 @@ @misc{arxiv:corels @Misc{github:corels, author = {Nicholas Laurus-Stone}, title = {corels: {Learning Certifiably Optimal Rule Lists}}, - howpublished = {\url{https://github.com/nlarusstone/corels}. Also online at \url{https://corels.eecs.harvard.edu/corels/}}, + howpublished = {\url{https://github.com/corels/corels}. Also online at \url{https://corels.cs.ubc.ca/corels/Larus-Stone_thesis.pdf}}, month = 06, year = 2019 } @@ -1021,7 +1021,7 @@ @Misc{github:corels @Misc{github:rcppcorels, author = {Dirk Eddelbuettel}, title = {RcppCorels: R binding for the 'Certifiably Optimal RulE ListS (Corels)' Learner}, - howpublished = {\url{https://github.com/eddelbuettel/rcppcorels}}, + howpublished = {\url{https://github.com/corels/rcppcorels}}, month = 11, year = 2019 } diff --git a/vignettes/rmd/Rcpp-FAQ.Rmd b/vignettes/rmd/Rcpp-FAQ.Rmd index 92d143dd3..3b0871101 100644 --- a/vignettes/rmd/Rcpp-FAQ.Rmd +++ b/vignettes/rmd/Rcpp-FAQ.Rmd @@ -10,9 +10,9 @@ author: address: - code: a - address: \url{http://dirk.eddelbuettel.com} + address: \url{https://dirk.eddelbuettel.com} - code: b - address: \url{https://romain.rbind.io/} + address: \url{https://github.com/romainfrancois} # For footer text lead_author_surname: Eddelbuettel and François @@ -75,7 +75,7 @@ header-includes: > \newcommand{\proglang}[1]{\textsf{#1}} \newcommand{\pkg}[1]{\textbf{#1}} \newcommand{\faq}[1]{FAQ~\ref{#1}} - \newcommand{\rdoc}[2]{\href{http://www.rdocumentation.org/packages/#1/functions/#2}{\code{#2}}} + \newcommand{\rdoc}[2]{\code{#2}} vignette: > %\VignetteIndexEntry{Rcpp-FAQ} @@ -131,7 +131,7 @@ means one needs: `--enable-shared-lib` option; - standard development tools such as `make` etc. -Also see the [RStudio documentation](http://www.rstudio.com/ide/docs/packages/prerequisites) +Also see the [RStudio documentation](https://support.posit.co/hc/en-us/articles/200486498-Package-Development-Prerequisites) on pre-requisites for R package development. ## What compiler can I use {#q:what-compiler} @@ -153,7 +153,7 @@ Specific per-platform notes: manual \citep[Appendix D]{R:Administration}. \item[macOS] users, as noted in the "R Administration" manual \citep[Appendix C.4]{R:Administration}, need to install the Apple Developer Tools - (\textsl{e.g.}, \href{https://developer.apple.com/library/ios/technotes/tn2339/_index.html}{Xcode Command Line Tools} (as well as \texttt{gfortran} if \proglang{R} or + (\textsl{e.g.}, \href{https://developer.apple.com/library/archive/technotes/tn2339/_index.html}{Xcode Command Line Tools} (as well as \texttt{gfortran} if \proglang{R} or Fortran-using packages are to be built); also see \faq{q:OSX} and \faq{q:OSXArma} below. This is frustratingly moving target; consult the \code{r-sig-mac} list (and its archives) for (current) details. @@ -478,7 +478,7 @@ able to mix. In such cases, it is better to provide collaborators with the By default, the macOS operating environment lacks the ability to parallelize sections of code using the [\proglang{OpenMP} -standard](http://openmp.org/wp/). Within \proglang{R} 3.4.*, the default +standard](https://www.openmp.org/wp/). Within \proglang{R} 3.4.*, the default developer environment was _changed_ to allow for \proglang{OpenMP} to be used on macOS by using a non-default toolchain provided by R Core Team maintainers for macOS. Having said this, it is still important to protect any reference @@ -516,10 +516,10 @@ Below are additional resources that provide information regarding compiling Rcpp [on the `r-sig-mac` list](https://stat.ethz.ch/pipermail/r-sig-mac/2014-April/010835.html), which is generally recommended for macOS-specific questions and further consultation. 2. Another helpful write-up for installation / compilation on macOS Mavericks is provided - [by the BioConductor project](http://www.bioconductor.org/developers/how-to/mavericks-howto/). + [by the BioConductor project](https://contributions.bioconductor.org/cmavericks-best-practices.html). 3. Lastly, another resource that exists for installation / compilation help is provided at - . + . \textbf{Note:} If you are running into trouble compiling code with \pkg{RcppArmadillo}, please also see \faq{q:OSXArma} listed below. @@ -612,11 +612,11 @@ The following questions were asked on the [Rcpp-devel](https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel) mailing list, which is our preferred place to ask questions as it guarantees exposure to a number of advanced Rcpp users. The -[StackOverflow tag for rcpp](http://stackoverflow.com/questions/tagged/rcpp) +[StackOverflow tag for rcpp](https://stackoverflow.com/questions/tagged/rcpp) is an alternative; that site is also easily searchable. Several dozen fully documented examples are provided at the -[Rcpp Gallery](http://gallery.rcpp.org) -- which is also open for new contributions. +[Rcpp Gallery](https://gallery.rcpp.org) -- which is also open for new contributions. ## Can I use templates with \pkg{Rcpp} @@ -718,7 +718,7 @@ operations. That is a mouthful of words meaning that it makes the code go faster by using fiendishly clever ways available via the so-called template meta programming, an advanced \proglang{C++} technique. Also, the \pkg{RcppEigen} package \citep{JSS:RcppEigen} provides an alternative using the -[Eigen](http://eigen.tuxfamily.org) template library. +[Eigen](https://libeigen.gitlab.io) template library. ### Using inline with RcppArmadillo {#using-inline-armadillo} @@ -757,7 +757,7 @@ The focus is on the code `arma::trans(x) * arma::inv(Y) * z`, which performs the same operation as the R code `t(x) %*% solve(Y) %*% z`, although Armadillo turns it into only one operation, which makes it quite fast. Armadillo benchmarks against other \proglang{C++} matrix algebra libraries -are provided on [the Armadillo website](http://arma.sourceforge.net/speed.html). +are provided on [the Armadillo website](https://arma.sourceforge.net/speed.html). It should be noted that code below depends on the version `0.3.5` of \pkg{inline} and the version `0.2.2` of \pkg{RcppArmadillo}. @@ -896,7 +896,7 @@ C Armadillo supports a full range of common linear algebra operations. The \pkg{RcppEigen} package provides an alternative using the -[Eigen](http://eigen.tuxfamily.org) template library. +[Eigen](https://libeigen.gitlab.io) template library. Rcpp Attributes, once again, makes this even easier: @@ -1065,7 +1065,7 @@ suggestion or fix for casting 64-bit integer values: 32-bit integer values fit into `integer` types, up to 53 bit precision fits into `numeric` and beyond that truly large integers may have to converted (rather crudely) to text and re-parsed. Using a different representation as -for example from the [GNU Multiple Precision Arithmetic Library](http://gmplib.org/) +for example from the [GNU Multiple Precision Arithmetic Library](https://gmplib.org/) may be an alternative. However, with care, and via the package \pkg{bit64}, \proglang{R} can use @@ -1083,7 +1083,7 @@ system. Specific per-platform notes: -- **Windows** users probably want the [MiKTeX](http://miktex.org/). +- **Windows** users probably want the [MiKTeX](https://miktex.org/). Suggestions for a more detailed walk through would be appreciated. - **macOS** users seem to fall into camps which like or do not like brew / homebrew. One suggestion was to install @@ -1109,7 +1109,7 @@ generator scripts to explicitly enumerate arguments, and that number has to stop at some limit. We chose 20. A good discussion is available at -[this StackOverflow question](http://stackoverflow.com/questions/27371543) +[this StackOverflow question](https://stackoverflow.com/questions/27371543) concerning data.frame creation with \pkg{Rcpp}. One solution offers a custom `ListBuilder` class to circumvent the limit; another suggests to simply nest lists. @@ -1168,7 +1168,7 @@ Note: In `cpp`, the default `bool` values are `true` and But of course. In a nutshell, this boils down to \emph{what your compiler supports}, and also \emph{what R supports}. We expanded a little on this in -[Rcpp Gallery article](http://gallery.rcpp.org/articles/rcpp-and-c++11-c++14-c++17/) providing more detail. What follows in an abridged summary. +[Rcpp Gallery article](https://gallery.rcpp.org/articles/rcpp-and-c++11-c++14-c++17/) providing more detail. What follows in an abridged summary. You can always \emph{locally} set appropriate `PKG_CXXFLAGS` as an environment variable, or via `~/.R/Makevars`. You can also set plugins and/or R @@ -1201,7 +1201,7 @@ conda install gxx_linux-64 helps within this environment as it installs the corresponding `x86_64-conda_cos6-linux-gnu-c++` compiler. Documentation for this and other systems is provided -[at this page](https://conda.io/docs/user-guide/tasks/build-packages/compiler-tools.html). +[at this page](https://docs.conda.io/docs/user-guide/tasks/build-packages/compiler-tools.html). ## Can I speed up compilation? @@ -1230,12 +1230,12 @@ exclude these different (layered) bits of functionality. You bet. We use \proglang{doxygen} to generate html, latex and man page documentation from the source. The html documentation is available for -[browsing](http://dirk.eddelbuettel.com/code/rcpp/html/index.html), as a -[very large pdf file](http://dirk.eddelbuettel.com/code/rcpp/Rcpp_refman.pdf), +[browsing](https://dirk.eddelbuettel.com/code/rcpp/html/index.html), as a +[very large pdf file](https://dirk.eddelbuettel.com/code/rcpp/Rcpp_refman.pdf), and all three formats are also available a zip-archives: -[html](http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-html.zip), -[latex](http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-latex.zip), and -[man](http://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-man.zip). +[html](https://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-html.zip), +[latex](https://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-latex.zip), and +[man](https://dirk.eddelbuettel.com/code/rcpp/rcpp-doc-man.zip). ## Does it really work @@ -1252,13 +1252,13 @@ The mailing list hosted at R-forge is by far the best place. You may also want to look at the list archives to see if your question has been asked before. -You can also use [StackOverflow via its 'rcpp' tag](http://stackoverflow.com/questions/tagged/rcpp). +You can also use [StackOverflow via its 'rcpp' tag](https://stackoverflow.com/questions/tagged/rcpp). ## Where can I read old questions and answers The normal [Rcpp-devel](https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel) mailing list hosting at R-forge contains an archive, which can be -[searched via swish](http://lists.r-forge.r-project.org/mailman/swish.cgi?query=listname=rcpp-devel). +[searched via swish](https://lists.r-forge.r-project.org/mailman/swish.cgi?query=listname=rcpp-devel). Alternatively, one can also use [Mail-Archive on Rcpp-devel](http://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/info.html) @@ -1278,7 +1278,7 @@ You can also spread the word about \pkg{Rcpp}. There are many packages on CRAN that use \proglang{C++}, yet are not using \pkg{Rcpp}. You could blog about it, or get the word out otherwise. -Last but not least the [Rcpp Gallery](http://gallery.rcpp.org) is open +Last but not least the [Rcpp Gallery](https://gallery.rcpp.org) is open for user contributions. ## I don't like it. How can I help {#dont-like-help} @@ -1302,7 +1302,7 @@ From late 2008 to late 2013, we used the which contained \pkg{Rcpp} and a number of related packages. It still has the full history as well as number of support files. -We have since switched to a [Git repository at Github](http://github.com/RcppCore/Rcpp) +We have since switched to a [Git repository at Github](https://github.com/RcppCore/Rcpp) for \pkg{Rcpp} (as well as for \pkg{RcppArmadillo} and \pkg{RcppEigen}). # Known Issues @@ -1573,7 +1573,7 @@ elements. With the release of \proglang{R}'s 3.0.0, long vector support was adde allow for largest vector possible to increase up to $2^{52}$ elements on x64 bit operating systems (c.f. [Long Vectors help entry](https://stat.ethz.ch/R-manual/R-devel/library/base/html/LongVectors.html)). Once this was established, support for long vectors within the \pkg{Rcpp} paradigm -was introduced with \pkg{Rcpp} version 0.12.0 (c.f [\pkg{Rcpp} 0.12.0 annoucement](http://dirk.eddelbuettel.com/blog/2015/07/25/)). +was introduced with \pkg{Rcpp} version 0.12.0 (c.f [\pkg{Rcpp} 0.12.0 annoucement](https://dirk.eddelbuettel.com/blog/2015/07/25/)). However, the requirement for using long vectors in \pkg{Rcpp} necessitates the presence of compiler support for the `R_xlen_t`, which is platform diff --git a/vignettes/rmd/Rcpp-attributes.Rmd b/vignettes/rmd/Rcpp-attributes.Rmd index c644917f3..0115031d9 100644 --- a/vignettes/rmd/Rcpp-attributes.Rmd +++ b/vignettes/rmd/Rcpp-attributes.Rmd @@ -12,11 +12,11 @@ author: address: - code: a - address: \url{https://rstudio.com} + address: \url{https://posit.co} - code: b - address: \url{http://dirk.eddelbuettel.com} + address: \url{https://dirk.eddelbuettel.com} - code: c - address: \url{https://romain.rbind.io/} + address: \url{https://github.com/romainfrancois} # For footer text TODO(fold into template, allow free form two-authors) lead_author_surname: Allaire, Eddelbuettel, François diff --git a/vignettes/rmd/Rcpp-extending.Rmd b/vignettes/rmd/Rcpp-extending.Rmd index 11c1f9587..1ff14ed98 100644 --- a/vignettes/rmd/Rcpp-extending.Rmd +++ b/vignettes/rmd/Rcpp-extending.Rmd @@ -10,9 +10,9 @@ author: address: - code: a - address: \url{http://dirk.eddelbuettel.com} + address: \url{https://dirk.eddelbuettel.com} - code: b - address: \url{https://romain.rbind.io/} + address: \url{https://github.com/romainfrancois} # For footer text lead_author_surname: Eddelbuettel and François diff --git a/vignettes/rmd/Rcpp-introduction.Rmd b/vignettes/rmd/Rcpp-introduction.Rmd index b0f1845ec..0d310049c 100644 --- a/vignettes/rmd/Rcpp-introduction.Rmd +++ b/vignettes/rmd/Rcpp-introduction.Rmd @@ -11,9 +11,9 @@ author: affiliation: b address: - code: a - address: Debian and R Projects; Chicago, IL, USA; \url{edd@debian.org} + address: Debian and R Projects; Chicago, IL, USA; \code{edd@debian.org} - code: b - address: Depts of Informatics and Statistics, Univ. of Illinois at Urbana-Champaign; Champaign, IL, USA; \url{balamut2@illinois.edu} + address: Depts of Informatics and Statistics, Univ. of Illinois at Urbana-Champaign; Champaign, IL, USA; \code{balamut2@illinois.edu} # For footer text TODO(fold into template, allow free form two-authors) lead_author_surname: Eddelbuettel and Balamuta @@ -189,10 +189,9 @@ the Rtools kit provided by R Core available at x == Rx). NumericVector xx(x); - + // clone is slower and uses extra memory. // Safe. No side effects. NumericVector yy(clone(y)); - + xx[0] = yy[0] = -1.5; int zz = xx[0]; @@ -299,18 +299,18 @@ using namespace Rcpp; // [[Rcpp::export]] double muRcpp(NumericVector x){ int n = x.size(); // Size of vector - double sum = 0; // Sum value - + double sum = 0; // Sum value + // For loop, note cpp index shift to 0 - for(int i = 0; i < n; i++){ + for(int i = 0; i < n; i++){ // Shorthand for sum = sum + x[i] - sum += x[i]; + sum += x[i]; } - + return sum/n; // Obtain and return the Mean } -// Place dependent functions above call or +// Place dependent functions above call or // declare the function definition with: double muRcpp(NumericVector x); @@ -320,12 +320,12 @@ double varRcpp(NumericVector x, bool bias = true){ double mean = muRcpp(x); double sum = 0; int n = x.size(); - - for(int i = 0; i < n; i++){ + + for(int i = 0; i < n; i++){ sum += pow(x[i] - mean, 2.0); // Square } - - return sum/(n-bias); // Return variance + + return sum/(n-bias); // Return variance } ``` @@ -397,8 +397,8 @@ RNGScope scope; // For details see Section 6.7.1--Distribution // functions of the `Writing R Extensions' manual. // In some cases (e.g. rnorm), dist-specific -// arguments can be omitted; when in doubt, -// specify all dist-specific arguments. The use +// arguments can be omitted; when in doubt, +// specify all dist-specific arguments. The use // of doubles rather than integers for dist- // specific arguments is recommended. Unless // explicitly specified, log=FALSE. @@ -477,7 +477,7 @@ Environment e = glob.new_child(); ```cpp // Do NOT expect to have a performance gain -// when calling R functions from R! +// when calling R functions from R! // Retrieve functions from default loaded env. Function rnorm("rnorm"); @@ -485,7 +485,7 @@ rnorm(100, _["mean"] = 10.2, _["sd"] = 3.2 ); // Passing in an R function and obtaining results // Make sure function conforms with return type! -NumericVector callFunction(NumericVector x, +NumericVector callFunction(NumericVector x, Function f) { NumericVector res = f(x); return res; diff --git a/vignettes/rmd/Rcpp-sugar.Rmd b/vignettes/rmd/Rcpp-sugar.Rmd index 2beb2edc2..9384b78a9 100644 --- a/vignettes/rmd/Rcpp-sugar.Rmd +++ b/vignettes/rmd/Rcpp-sugar.Rmd @@ -10,9 +10,9 @@ author: address: - code: a - address: \url{http://dirk.eddelbuettel.com} + address: \url{https://dirk.eddelbuettel.com} - code: b - address: \url{https://romain.rbind.io/} + address: \url{https://github.com/romainfrancois} # For footer text lead_author_surname: Eddelbuettel and François @@ -494,7 +494,7 @@ Note that the parameterization used in these sugar functions may differ between the top-level functions exposed in an \proglang{R} session. For example, the internal \code{rexp} is parameterized by \code{scale}, whereas the R-level \code{stats::rexp} is parameterized by \code{rate}. -Consult \href{http://cran.r-project.org/doc/manuals/r-release/R-exts.html#Distribution-functions}{Distribution Functions} +Consult \href{https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Distribution-functions-1}{Distribution Functions} for more details on the parameterization used for these sugar functions. One point to note is that the programmer using these functions needs to diff --git a/vignettes/rmd/Rcpp.bib b/vignettes/rmd/Rcpp.bib index 7a5f5115b..84b2864cd 100644 --- a/vignettes/rmd/Rcpp.bib +++ b/vignettes/rmd/Rcpp.bib @@ -10,7 +10,7 @@ @manual{Abrahams+Grosse-Kunstleve:2003:Boost.Python organization = "Boost Consulting", title = "Building Hybrid Systems with Boost.Python", year = 2003, - url = "https://www.boostpro.com/writing/bpl.pdf" + url = "https://www.boost.org/doc/libs/latest/libs/python/doc/html/article.html" } @Book{Abrahams+Gurtovoy:2004:TemplateMetaprogramming, @@ -60,7 +60,7 @@ @InProceedings{Bates+DebRoy:2001:C++Classes Universit\"at Wien, Vienna, Austria}, editor = {Kurt Hornik and Friedrich Leisch}, year = {2001}, - url = {https://www.ci.tuwien.ac.at/Conferences/DSC-2001/Proceedings/}, + url = {https://www.r-project.org/conferences/DSC-2001/Proceedings/}, note = {ISSN 1609-395X} } @@ -554,7 +554,7 @@ @MISC{Eigen:Web author = {Ga\"{e}l Guennebaud and Beno\^{i}t Jacob and others}, title = {Eigen v3}, year = 2012, - url = {https://eigen.tuxfamily.org} + url = {https://libeigen.gitlib.io/} } @Manual{GSL, @@ -773,7 +773,7 @@ @Article{PeerJ:Rcpp issue = {e3188v1}, year = 2017, month = {August}, - url = {https://doi.org/10.7287/peerj.preprints.3188v1/}, + url = {https://peerj.com/preprints/3188v1/}, doi = {10.7287/peerj.preprints.3188v1/} } @@ -790,7 +790,7 @@ @manual{QuantLib author = {{QuantLib Core Team}}, year = 2021, title = {QuantLib: a free/open-source library for quantitative finance}, - url = {https://quantlib.org} + url = {https://www.quantlib.org} } @manual{R:Administration, @@ -886,7 +886,7 @@ @TechReport{Sanderson:2010:Armadillo Experiments }, institution = {{NICTA}}, year = 2010, - url = "https://arma.sf.net" + url = "https://arma.sourceforge.net" } @Book{Stroustrup:1997:Cpp, @@ -952,7 +952,7 @@ @InProceedings{Urbanek:2003:Rserve Statistical Computing, Vienna, Austria}, editor = {Kurt Hornik and Friedrich Leisch and Achim Zeileis}, year = {2003}, - url = {https://www.ci.tuwien.ac.at/Conferences/DSC-2003/Proceedings/}, + url = {https://www.r-project.org/conferences/DSC-2003/Proceedings/}, note = {{ISSN 1609-395X}} } @@ -996,7 +996,7 @@ @Book{Venables+Ripley:2002:MASS address = {New York}, year = 2002, note = {ISBN 0-387-95457-0}, - url = {https://www.stats.ox.ac.uk/pub/MASS4}, + url = {https://www.stats.ox.ac.uk/pub/MASS4/}, } @misc{arxiv:corels, @@ -1005,7 +1005,7 @@ @misc{arxiv:corels author = {Elaine Angelino and Nicholas Larus-Stone and Daniel Alabi and Margo Seltzer and Cynthia Rudin}, year = 2017, - howpublished = {\href{https://www.arxiv.org/1704.01701}{arXiv:1704.01701}}, + howpublished = {\href{https://www.arxiv.org/abs/1704.01701}{arXiv:1704.01701}}, archivePrefix ={arXiv}, primaryClass = {stat.ML} } @@ -1013,7 +1013,7 @@ @misc{arxiv:corels @Misc{github:corels, author = {Nicholas Laurus-Stone}, title = {corels: {Learning Certifiably Optimal Rule Lists}}, - howpublished = {\url{https://github.com/nlarusstone/corels}. Also online at \url{https://corels.eecs.harvard.edu/corels/}}, + howpublished = {\url{https://github.com/corels/corels}. Also online at \url{https://corels.cs.ubc.ca/corels/Larus-Stone_thesis.pdf}}, month = 06, year = 2019 } @@ -1021,7 +1021,7 @@ @Misc{github:corels @Misc{github:rcppcorels, author = {Dirk Eddelbuettel}, title = {RcppCorels: R binding for the 'Certifiably Optimal RulE ListS (Corels)' Learner}, - howpublished = {\url{https://github.com/eddelbuettel/rcppcorels}}, + howpublished = {\url{https://github.com/corels/rcppcorels}}, month = 11, year = 2019 } From 185026d1c56c45560f05c56eecd501f6788acab8 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Wed, 7 Jan 2026 14:47:42 -0600 Subject: [PATCH 33/51] Another round of URL updates --- ChangeLog | 1 + README.md | 6 +++--- inst/bib/Rcpp.bib | 2 +- vignettes/rmd/Makefile | 11 +++++------ vignettes/rmd/Rcpp-FAQ.Rmd | 5 ++--- vignettes/rmd/Rcpp-introduction.Rmd | 4 ++-- vignettes/rmd/Rcpp-package.Rmd | 2 +- vignettes/rmd/Rcpp.bib | 2 +- 8 files changed, 16 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 105cca1ea..6d0673fb7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,7 @@ * vignettes/rmd/Rcpp.bib: Update to several URLs * inst/bib/Rcpp.bib: Idem * vignettes/rmd/*: Idem + * README.md: Idem 2026-01-06 Dirk Eddelbuettel diff --git a/README.md b/README.md index b7bd39c3a..2ffadf41f 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ [![CRAN indirect](https://jangorecki.gitlab.io/rdeps/Rcpp/indirect_usage.svg?sanitize=true)](https://cran.r-project.org/package=Rcpp) [![BioConductor use](https://jangorecki.gitlab.io/rdeps/Rcpp/BioC_usage.svg?sanitize=true)](https://cran.r-project.org/package=Rcpp) [![JSS](https://img.shields.io/badge/JSS-10.18637%2Fjss.v040.i08-brightgreen)](https://doi.org/10.18637/jss.v040.i08) -[![Springer useR!](https://img.shields.io/badge/Springer%20useR!-10.1007%2F978--1--4614--6868--4-brightgreen)](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1461468671&linkCode=as2&tag=rcpp-20&linkId=3P5LNUWOAQ2YMEJ6) +[![Springer useR!](https://img.shields.io/badge/Springer%20useR!-10.1007%2F978--1--4614--6868--4-brightgreen)](https://link.springer.com/book/10.1007/978-1-4614-6868-4) [![TAS](https://img.shields.io/badge/TAS-10.1080%2F00031305.2017.1375990-brightgreen)](https://doi.org/10.1080/00031305.2017.1375990) ### Synopsis @@ -37,7 +37,7 @@ provides a good entry point to Rcpp as do the [Rcpp website](https://www.rcpp.org), the [Rcpp page](https://dirk.eddelbuettel.com/code/rcpp.html) and the [Rcpp Gallery](https://gallery.rcpp.org). Full documentation is provided by the -[Rcpp book](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1461468671&linkCode=as2&tag=rcpp-20&linkId=3P5LNUWOAQ2YMEJ6). +[Rcpp book](https://link.springer.com/book/10.1007/978-1-4614-6868-4). Other highlights: @@ -78,7 +78,7 @@ Among the other vignettes are the [Rcpp FAQ](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-FAQ.pdf) and the introduction to [Rcpp Attributes](https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-attributes.pdf). -Additional documentation is available via the [Rcpp book](https://www.amazon.com/gp/product/1461468671/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1461468671&linkCode=as2&tag=rcpp-20&linkId=3P5LNUWOAQ2YMEJ6) +Additional documentation is available via the [Rcpp book](https://link.springer.com/book/10.1007/978-1-4614-6868-4) by Eddelbuettel (2013, Springer); see 'citation("Rcpp")' for details. ### Performance diff --git a/inst/bib/Rcpp.bib b/inst/bib/Rcpp.bib index 84b2864cd..4c2a6af37 100644 --- a/inst/bib/Rcpp.bib +++ b/inst/bib/Rcpp.bib @@ -774,7 +774,7 @@ @Article{PeerJ:Rcpp year = 2017, month = {August}, url = {https://peerj.com/preprints/3188v1/}, - doi = {10.7287/peerj.preprints.3188v1/} + doi = {10.7287/peerj.preprints.3188v1} } @Book{Plauger+Et+Al:2000:STL, diff --git a/vignettes/rmd/Makefile b/vignettes/rmd/Makefile index 973e2cd5a..4de500cf1 100644 --- a/vignettes/rmd/Makefile +++ b/vignettes/rmd/Makefile @@ -11,13 +11,12 @@ rmdvignettes := $(rmdsources:.Rmd=.pdf) all: ${rmdvignettes} Rcpp-jss-2011.pdf -Rcpp-jss-2011.tex: Rcpp-jss-2011.Rnw - Rscript -e 'Sweave("$<")' - -Rcpp-jss-2011.pdf: Rcpp-jss-2011.tex - Rscript -e 'tools::texi2pdf("$<", texi2dvi="pdflatex")' +Rcpp-jss-2011.pdf: Rcpp-jss-2011.Rnw + Rscript -e 'Sweave("Rcpp-jss-2011.Rnw")' + pdflatex Rcpp-jss-2011.tex bibtex Rcpp-jss-2011.aux - Rscript -e 'tools::texi2pdf("$<", texi2dvi="pdflatex")' + pdflatex Rcpp-jss-2011.tex + pdflatex Rcpp-jss-2011.tex Rscript -e 'tools::compactPDF("$@", gs_quality="ebook")' cp -vax $@ .. diff --git a/vignettes/rmd/Rcpp-FAQ.Rmd b/vignettes/rmd/Rcpp-FAQ.Rmd index 3b0871101..5e7f01ded 100644 --- a/vignettes/rmd/Rcpp-FAQ.Rmd +++ b/vignettes/rmd/Rcpp-FAQ.Rmd @@ -478,7 +478,7 @@ able to mix. In such cases, it is better to provide collaborators with the By default, the macOS operating environment lacks the ability to parallelize sections of code using the [\proglang{OpenMP} -standard](https://www.openmp.org/wp/). Within \proglang{R} 3.4.*, the default +standard](https://www.openmp.org/specifications/). Within \proglang{R} 3.4.*, the default developer environment was _changed_ to allow for \proglang{OpenMP} to be used on macOS by using a non-default toolchain provided by R Core Team maintainers for macOS. Having said this, it is still important to protect any reference @@ -1257,8 +1257,7 @@ You can also use [StackOverflow via its 'rcpp' tag](https://stackoverflow.com/qu ## Where can I read old questions and answers The normal [Rcpp-devel](https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel) -mailing list hosting at R-forge contains an archive, which can be -[searched via swish](https://lists.r-forge.r-project.org/mailman/swish.cgi?query=listname=rcpp-devel). +mailing list hosting at R-forge contains an archive. Alternatively, one can also use [Mail-Archive on Rcpp-devel](http://www.mail-archive.com/rcpp-devel@lists.r-forge.r-project.org/info.html) diff --git a/vignettes/rmd/Rcpp-introduction.Rmd b/vignettes/rmd/Rcpp-introduction.Rmd index 0d310049c..638a44678 100644 --- a/vignettes/rmd/Rcpp-introduction.Rmd +++ b/vignettes/rmd/Rcpp-introduction.Rmd @@ -625,7 +625,7 @@ in place of `sample(n, n, replace = TRUE)` to sample row ids. This is an equivalent substitution since equal weight is being placed upon all row ids and replacement is allowed.\footnote{For more flexibility in sampling see Christian Gunning's Sample extension for \pkg{RcppArmadillo} and -\href{http://gallery.rcpp.org/articles/using-the-Rcpp-based-sample-implementation/}{Rcpp Gallery: Using the \pkg{RcppArmadillo}-based Implementation of R's sample()} or consider using the \code{Rcpp::sample()} sugar function added in 0.12.9 by Nathan Russell.} +\href{https://gallery.rcpp.org/articles/using-the-Rcpp-based-sample-implementation/}{Rcpp Gallery: Using the \pkg{RcppArmadillo}-based Implementation of R's sample()} or consider using the \code{Rcpp::sample()} sugar function added in 0.12.9 by Nathan Russell.} Note that the upper bound of the interval, `n`, will never be reached. While this may seem flawed, it is important to note that vectors and matrices in \cpp use a zero-based indexing system, meaning that they begin at 0 instead of 1 @@ -718,7 +718,7 @@ classes \citep{Sanderson+Curtin:2016} via the \pkg{RcppArmadillo} package running this example, the \pkg{RcppArmadillo} package must be installed using `install.packages('RcppArmadillo')`.\footnote{macOS users may encounter `-lgfortran` and `-lquadmath` errors on compilations with this package if the development environment -is not appropriately set up. \href{https://cran.r-project.org/web/packages/Rcpp/vignettes/Rcpp-FAQ.pdf}{Section 2.16 of the Rcpp FAQ} provides details regarding the necessary `gfortran` binaries.} +is not appropriately set up. \href{https://cran.r-project.org/package=Rcpp/vignettes/Rcpp-FAQ.pdf}{Section 2.16 of the Rcpp FAQ} provides details regarding the necessary `gfortran` binaries.} One important caveat when using additional packages within the \rcpp ecosystem is the correct header file may not be `Rcpp.h`. In a majority of cases, the additional package ships a dedicated header diff --git a/vignettes/rmd/Rcpp-package.Rmd b/vignettes/rmd/Rcpp-package.Rmd index afd20b2d7..0533c2b1f 100644 --- a/vignettes/rmd/Rcpp-package.Rmd +++ b/vignettes/rmd/Rcpp-package.Rmd @@ -76,7 +76,7 @@ header-includes: > \newcommand{\proglang}[1]{\textsf{#1}} \newcommand{\pkg}[1]{\textbf{#1}} \newcommand{\faq}[1]{FAQ~\ref{#1}} - \newcommand{\rdoc}[2]{\href{http://www.rdocumentation.org/packages/#1/functions/#2}{\code{#2}}} + \newcommand{\rdoc}[2]{\code{#2}} \newcommand{\sugar}{\textsl{Rcpp sugar}~} vignette: > diff --git a/vignettes/rmd/Rcpp.bib b/vignettes/rmd/Rcpp.bib index 84b2864cd..4c2a6af37 100644 --- a/vignettes/rmd/Rcpp.bib +++ b/vignettes/rmd/Rcpp.bib @@ -774,7 +774,7 @@ @Article{PeerJ:Rcpp year = 2017, month = {August}, url = {https://peerj.com/preprints/3188v1/}, - doi = {10.7287/peerj.preprints.3188v1/} + doi = {10.7287/peerj.preprints.3188v1} } @Book{Plauger+Et+Al:2000:STL, From ac4a6ec83354f5e08e85f159fd880e27ec4399d6 Mon Sep 17 00:00:00 2001 From: Dirk Eddelbuettel Date: Thu, 8 Jan 2026 06:11:23 -0600 Subject: [PATCH 34/51] Rebuilt vignettes several times Big thank you to @kurthornik for patient checking By now even updated package ping to repair a \doi macro --- ChangeLog | 2 ++ vignettes/Rcpp-FAQ.pdf | Bin 201629 -> 200244 bytes vignettes/Rcpp-attributes.pdf | Bin 106431 -> 106831 bytes vignettes/Rcpp-extending.pdf | Bin 64312 -> 64629 bytes vignettes/Rcpp-introduction.pdf | Bin 295455 -> 295414 bytes vignettes/Rcpp-jss-2011.pdf | Bin 156562 -> 162021 bytes vignettes/Rcpp-libraries.pdf | Bin 83129 -> 83392 bytes vignettes/Rcpp-modules.pdf | Bin 132643 -> 130806 bytes vignettes/Rcpp-package.pdf | Bin 88258 -> 87800 bytes vignettes/Rcpp-quickref.pdf | Bin 71433 -> 71614 bytes vignettes/Rcpp-sugar.pdf | Bin 100038 -> 100337 bytes 11 files changed, 2 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6d0673fb7..0715e7675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2026-01-07 Dirk Eddelbuettel + * vignettes/pdf/*: Rebuilt + * vignettes/rmd/Rcpp.bib: Update to several URLs * inst/bib/Rcpp.bib: Idem * vignettes/rmd/*: Idem diff --git a/vignettes/Rcpp-FAQ.pdf b/vignettes/Rcpp-FAQ.pdf index bf46ff1470290ba2af75b66dd3e5c8591971dfec..c2745605c1d107e1fc180b4820d1df4ea33ad685 100644 GIT binary patch delta 130276 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

?o}2ftS5}BR#oqO8{Jbz1)?-Z)<`8| zLD7juLaa(q`k36s)P5M_3~<)4MymX!^KP$XCMPMg8~?VAOxf(Jxri|_?QSt5(VAme z8~uDZ)IU6$URj{SwHipnD=MI7Y$A$-wt>hjBcR3~@`p?NH#1RLDhm#VZOo@!FW)6u z1ZEp8lT9=TuR_QL4ycJ{0R)?9+n;LUG?{7KsFI>{x1#BxkS_dfiq;Xe2f0*0eq}I= zFIN;uR=&q*=AvuBJ`cfF93p|%DsN0y0h1DqDYTHS2UyA915-We+Z*6TjO;=C0v#C* z-U1N9pG7+PUP-}hPmw`YRm)OHMW0n{!sjPWs-MEOk4Lv@1X~(l4WvF(XKo61-c034 zh2AKY0B;V0n{{}AvHekz|CBUJ$2j=~vxEGAXY=cX&1RCK30nCUt9Io1uj- z(>2~AnUjB7FbYACBgpaii~yQs=ec0@K&P3a(wPv!CeL34ODnawT@(kYP1HO(C6+0a zlwrtK^X@b?SFvj&7+7W?kE^YneA<*x9mR^QM!uVIfLxw9lLzC18u`9x9oL2c21Nl+ zJ7UgUHd=mVgMF2kqOIK6#^AVON!o+nBhX+nX z3b{)A6;DQF0qZDu&uf{6cr;MHF3?XRmm4C&-J3Gc|AMVa3z(yyODG-LW4o5?&Vd}A zm|35TakTPO4?lRVCP+<()>gCP2-eLXW=@8|b206hh}em6l?ewS!*< z6`)dmIJUl1=0p_8#%zRezvwU7`9ATJC+o#>pe$pK59IvqWda|Ravy!$!6bY*M+|%w zHx>p{-Y|}81v;Knfv<(%Ow^gdE)bCuX2A#L5YYD!iaJ62nfJ~u4zh01)A$Pej<9#f z2Zc@7fgik|p=tKp#+#2eaY;JzJ^zYrKLQMV@A+-@^4*$$bPP0{$G|)`ZW8F26z~=; ze{OPsYluf z!$o`(F^=ub)|xo;8^(~iT&{d%_|x&QQj1|xGFy$l=g^6 zm4yuOHQ*LEi@dcZ6?t>K_i!PB)I}Z~c_2nCL1u$~2N%%+_u=mw4@gHl;3PJrq}Xla zNkar7RU1>hrQ!r5){?~W)e;4U-2hnSU3((M996cIX&T8fY6tO<1|<#(-*5V3ZVTsB z6@QB-=5xs4`CnulEkd4fDTWdu{DY#KLK=#hX2A0a8cbzk$ATAOC8I+BGh=?FMC))= z-wipgufX^Ub*QqcsL95hsx?dUuabN{Ok+N|_%+(l)Ft~IRZ^sUuzA84YEm#K^AobyUM=AJy&zUGft)6PD zqnkCr+$SL>FzVM`Yg0JV$~ZSy(Vy2KAn^Q~AEV#Jc_(b~_TwlH{D7w~h>Ju6<8y7(4pM)@z7dDMNh?@i!Tk^YB zq#F+X@tl@VL2O&zUw>Dk0t9J1%WHX4CUoN>dIA^)^x&BsMF$oo6IdV!ZHo1;;ef)1 zrxoUWNqiBwFeR%z(uy!}JN!v8V!Mc_V-*78fx{&0ZKUFJIS2}?nfUjuy3AY3-OH~I zVk$2C^~sBFJi+w?_-^vTmKfKDTdygF6Fv=hOu_^;UwBok{K(99jrXPJ?m7n0IUtdx ze=g4}z`Y!m*zQ6c(mpKjHY(-4+5m+xSH6YygGMhj4HYcOl2bTV^d7}Z)AP!Ff37-c z3^w(hfN!+d{sh}9fZSkcx1{nsoa26pLh0dhL&4v~y6_YhEVv@DhsH+ygME{q4| zuJu`b2FAc+R^PLZOCeR4S&G#x0&+imt^C?CI&D7LQEaGDK-=WC2)y0o;Hf^xh1Up? zpdMa8hh{YD&7fDuAi^^bhS?e^=L<4#^t)zcj$_owlumYbjtEU#yZEm%(nk7OR z)yX!O{_5Rms^XnLy^+d!GogDd8MXaB7VmCzh3?djZtIb{JB8(o3}k z@=Q7kee>^Wf!?AP(N==Fh@jz45Z|ruJx0#A0{pGOI=}7Da??021^DdWap*q<*H)K8 z3xM%5aBzDz;xLZQaxR|7(LDTI)@Ltn1{L8m>6X>zL|joUMW5y24vzW8HYVZ*P-~+AKcVmy+(qc(Py@cS~Pxvl8|nkFQJ_Mn}vh&Ry6(n zCDU0iTji%mBZ)nYifY(+1%6?p7T9>PW~X+6Gh%vi5azt70`uHRKZm&4PYits^iwpX zt%;<29cgP5>{13jTQ`Htdh8EQryv*X*@4ONJYSd+JikL6&>nE!6Zjg?)rwp3HPRvo zsS`Y+l`H0{J`YN{hIN?q0(Rd^vUMzH1&&1K#3h_bAXV@hfVsqg$|&Mu19`L8)1+8o zQO&%st@J~BPPPskj@RHZp{Rx$5;PJ6F)y6X37E2)@69^TuqR}69}TWY+_7Q`l|8J34z~LUKu{BUS_V`dz*sp zE!5bAC9fYN`mL7h?l|B>uWwRzr#BzTkv;K;l`-d&XF?|8M%n-?`!$-}RH$1q=2jlY zKruV=Mm-T`)LAtRYdk_TEufp!SYL09Av(_ul^b$DEgHD`H<+&b{`}@_2nbCnRT1it z)+p7jn{YC%c4zdM5yh;fJoAY5!&U{m+07TrIns&B*i|OiaW!4Lse1#O;A3sm#Z|Ye zeC4-3ro~EoZ^v*;HJ986>*?g*0+w@V;D&q09VikNxn+m4Er))XPN}CbM^m@r&&@=3 z)zdvuO*;^&n1)brW4>c8JhS#58`jUvUJnrfj?-cY&^o_)hYD_qB*<ofT&VD|zOJk(A;I03%!t!Hz5e-L>i(WG8k7{~09AJXszwfda{ zeMmd`MqFaMirxkM-D@1}xam&eWw6yH`|1;Ij$>D!o0+*#9rnHNl!z!NDQ z9B`69xs8j6u%7q8E;Y0oEqnUhhzR(Lwv5Wyp7u5I&LuPHJCA5xue-TdeMt!KN-y5p zm+fL$RJ)P*UQEA$I89FRmN+R5W|1vL0-y!D=AdMSHtRoNbz{E zcZf)&KGUMtVe~iD{L;6Su$Ui@)4QJg)vIGXwQDfynOl{jC(w)& zMLW<@A`mh1cJT4989REyBKA_Htly(Jy0&~U_mxIGe%4qeDimMF;v5{_nfn;W__$g2 z3Ype%Hh#g9Uv5e9&z3&WJNmIc^LaXs0l$q`trqARXy)T>-FZFr z7+Cs$7(|?!UOzx+p5@OVIs-2X@A>o6aEaO>h}2A9uJsyHDu4Pv!5;tZ@`LonFcche z=dTamgk0EcO$Cv+q_Xr}NgtaEvpBgU)Ne_-tmeLz3mC|xR_w}T$99?8ME z1%cu{Qrq!3%c?gp&$g%Nd_}nPH_n)tHbKQO=#xJ~25#k8`{x)(J%IcJY~h-3zsum{ zrZHRVPy#-Z{n-6t2f@*Jm|-tAiJvd|~YsiLmQ0$4Jm*&9Q~@E#6J;%~`D;ZH(V^J^z!snueou1bc2H$==3e^+bO-PN?Y4Ld;K-cnbex9VSy*ZU-_dv z3XQ$6C}T;COyxusA-ZO#MGo_<3h_1MFhBd4PE%4X5i;8Wb&LSHz3TmpnpU2+gu>Im-eAfh{+*=-^CkDBHBNQVV z2w2Vg?%UjM`Pk!rt15@SjgTQzYwEvI%@X!uF6^d5aoI;9kcQHwUhlgvs5cvc=r-ZM z9`E+!bkzg#3$?e)mbi>Hey&xj!N2+k3ADmQoe3h12n_edBw#(-kMZN#rT<(qq3pp3 zOwAsjzBR^$Xa55TqqiBkBx>lH`XGG4h;QArL$+YXOK-2o;$9B5yS?-9o$K(sGKmX| z)f$M^p{}-^!=3jDzPlEJN^>}_#O4}YOMU8x-(pfj3Xs6M2%@5mP)=$sCYC$i-V2~j zV9Xu$-T|^sFTOP&LLd~EzB8wmsia6B(=3GXzJ7SBN@yo^XT1@RO?gB7Zw}ho{&l`i z1@EFw##C(fQiW=#6v{i>Z~5lSiH@8%_6EZaDl+(vyF z!KtLtd@tqFNk6vVZ|A(5dsXDcm9v>Tc(m*&&f@-19CmCLsRU*}@af?a05}Es-P;FBaW}(ax}a1e1gTlcuzi zb%_ry)j<{X0n=;!{e!Y_F~0Y%5_iaBAql~|@+M2FW1j|{Je?-ch&%Jo{NCj&kY27{ zZ7+Qbtt1{8MIW*}66l@YTH!IZ z8zgB2`x{Kz>wUNP=_Y3Ho$Lj1GempttM`#0fYcXwb6>i15HWZMIxi<18Hw_hmvKRe zN8tVvY6o*Yx4g==neztAY*fMl7G?D6h9#WW{`=8e`+~AxH7G<>z*cgwDP$J|?5Ezf zf)3@8`%1von;l1MXZD+c8d0^ZL9OMS$rqSPlg1jXoW(VT0WprQcE~Qi6359VjdC>k z)sY6^jV*W-T?gNA$FL-5{oFc;LMq+yrO;m%Jp|;MQ zz)E%zI5R0Q0xvg1{e#UdaCD|AHp&bpAJrVWo#F3nytuNnzFx2McE7qC>XuvoB}=|E zL-KOPm}Vy;wcl$mAVhR<@(w-LB69!sSAQrqJlTj0>?PUqF*vPhdvI}K#CAfKs1rIe zl^)PQRkYX9BrwEgTED?hS)tLdFC#M~8LR@Wpv`cy;LFNwB~{2_=5VQ*|)D6ObRVAPhBQ(xwh(z_LUb zi@lhZe0O}ZFBT!bS!iSzfyH-<;9~Y&mi{KmXMOXuz4G4!d93((fAuXOmdr@f?Nty+ z8USyM408>?+pPG+*?*0PBdjKAAJhI!4{V)+NnHYyxIn}2DS?o&`|R!;h4}Zux(5KP zIvo;6W~e6}ZZc=(8>L_5pGYP6W+8^*KV}D;iAdf6h+b!1HK#WS=>K_{gPDMWLe5A= z03qiv&|F$F$tNEEVro+(oXTd3n$BxUz}a^@LZ@ z2$wZHlTeGCLb8e8)TmhS+?dz(#=$u=6PHlYrFq)nNSofo`6-{y@4wks@CCyKihO36 z6tgftF)hDhj<#0E>CAt#b&YhD8}rSTQbUA0cc(dv+yL53k18kW5~ag4!Wf1C_bRHl zWWf~lps>L^WB=|2a5f43nk@;ol@lUS?1kl4;t@MyL65-=Y_Ji`nH+Vo9`l>=a*d`h zB-h+;$5#p<-ZZk-GN-hEcH+xi<1Nym(mc`TsV0;rDiJzpz1oQX1KuR zE`x@?Bs(mp5Nb`8In~c$R1>EGW2{y5YvqIpW%wjLBPjMyEATWg{5L=pa|JnS4V5Ox zmWmX+mHYnNR5DZzVZM+ShwWn7_}ct06!mK~b6Um1)muC;GfSnItKu;S{N`VgBcOFe zh|QInAX2>H(a`{QuB`S88L~(vDxq*Di7s7Kww*6A+_nl7$<{eA+O~NEY(IV4p=52qx z_4T~DOH=1)H`H8Z+z$h9dE&|--$h~Z5Z{dg1e#@aCMpCnfj&w9`LT52Bs((ixUqg_ z(ZA~}DEbf4JWB#HTN<#y#?ojWO&S<3`p`A8!8NZ0mN{RVbX%ujie(vlraNb+P@};p zrz}J@yeYSg!a;at0o^4v-_qk2Fk-U!9wNlvuN)>@t7fB=ZH9>BMPTZV^5AGMRAhd@DKf*>RWpdG9zyv1 zRl!)(jG(zMlbb&cg^gQz@GYEwlU_r>xDUVrtO`m8do8U+%P3d87sZ4Lz|U&YEJck8 z0aV$G1j!^LtXGGiT7DN;BU4k-IqdV@6zaUchNKC}fmt!HMy2>WW@fN>s)O+a{c zeh#){a}Wn>)E@ZH9MAKotgPF-Pt@7Ob(RH>d+zO@m$ zJ*-!fZgwmN?NHRlj60&M_#<427UOdM?kwy{2#S$&B-sb(AK~xY*crlSG;~f%F>=>N zzYdYAwi`C#?b5(y;eA%amMx!l^MuwAEc+wWokthL)Q(tvoRVoYbEg8Y9h)_k{v!H# zsYIHflQCJwxGHP)(JI#2Eqh1U*(?*H-z@Y*l&_n?uY_u}_JC&I`-kD1hleVClM~Vo z;?OS~|AZ~z{=l@aCc}lLYI6BO`aT*G$TSxl$x&SmMS4m;4Z~2GR(sK-J>iKaL)`5U z(z*v;-r6N)ED&=7HaCspZcbPt<3+MTou!*@n68_N7F}T$2a$*}-VQOyNUCBw|A)cp zUxGCIlgq>@Hmb3~fnBhijabW=!a9vhUsdX!U++~whc3GF7!vaD6rlwxcG5)qp>YQX z(H7CMqYw!QnEJc;`@LtqlY~0#>c+dw!yeN2B5BS3Q|8{@HCG=}_T%-rldBz$C9G@n z=F%zU8y>?zb)@+od3JGAM#~vP2v^uU2@Ex)wGsKRbq4k8+2eCNHCpl~V=eS<-hX{E zjcqW1DuU&Fc697kvK8w#(YRa2I{9Msoxen3z?hOqEbU_g{kh8UkP{^eBVYGRTO%QE zHat6ThkSDhRwiB=Huys9XXyy~R6wXLZgX|9FhtwIYs9-W+eZ#fUm~qu%=skb>El_N z5U5{UCgLX@4Pva#26lciv9t1J~<6^KZI(TDod9{NJ09hw5krwTfOefPzC;Cggh znmF*UJbO0fKM`_U?Qy84a)lf-V>j%|opTy7B_i81QfDY77|~rS;#adIv_G%Gl@gLMV#m|p<OdW9wPxgn6(-+h_MDp5OHcraZ8 zj^<-@!77RGz8YggEMz=z0}+wJjfq@~!nF_+`HRg~2_Mv3n~{xPAlaM2eUg@ zZ_uP5&_hGa2)9XM*6h7-<9w5z^qU)agw%3LilgMDa)V5cv&9ghZzga*#32>|EE9To zA=|3Aj#C|ZkXr@7%NDK5CrytlZJFo*oA z9GtZ4uu;@>I(=cj6XhHp4*gzR*J6FcZ0J}Nh*usMsmlgheeNoA@(@q^@ds>?lcRz8 zp$}bmO{^fZNuXhlSLt|lU+m1FbcCUPp=%^*ezrSpT;t3>ch?!#;N!UvI83h}XQts5 ziHlR)=I?2z3+^oW_n?k7f%`a3Ps%MC#=^? z;b2UnvqJvcSy}2!x~7fY>6fjhd-6hhZF^Zc#;dx&vKCu`+5*niAUvPkv&mIRTPM zPV4pAK7yT1P8(YAyUqwj^d*|=;!6dxTT~DjOKlY7fmb7dgFz)Kj5PP0Lsa0}oT_U< z#NF^WdVe)S>O=5zbC&QfK6YH9(&TML6s_m<)u=5Ss3UbijWlYs7YhCDV$Bd7(NVt% zUJeK5m)cAwVRglYNJL%ZzI33$gPHfw@ZFbaA$F}W`b-#Ou zcm0zys@bVkwf5dmJ#V|A;6+NQ1xl!R4{^a|_kSL9hR4wtFuzH@ma4nF&hkGbN|e{+ zR*nIpbz1sW0`jyBePJZznHPY=I(|1;qF^x-o~QfA!FX4l;;a^fQh*_~gQ9iBXPo}o zJp?AgO}qI=M+>!)8{N8yEu0BT0$St{NHCN|BKk_1???OnX-5}+y?s0p_Y2ciwit^e zny18I!!NU}(%o}=c}Mop1}>uXf|alGHeqV5BOc|n1Ltk4D6hJyMJQnSMF^YBXqh+K zxp@mHr4)?7tz{nH%kT<6mk{0ZqN9BHm91(;Au7M&4}FHVs+)WZWYN``x)I8t=f zDAf_xwWRanThQo;W!X;qBFc~k?(~w8G}ljbrdUHpGsEd{CIXnir{?bvt4&c!vOinT z`Hl+rx=R-&?x#YmsS9l zk(yM`##&gDpbvWv_%D$g97pw|*Iiwlju4Hga~MNnP3c{@dP#_OY2BIK%m%l9`!Rhs zxHv0_`gTo|n~bo5W~P#^2u89eN1yCs^XV5`2tX+i>^=@paSR7k53pPzF5L99!X2nm_;ZKuo0if7lb$8Mz;|FVW*ZiaPH=k9%!E zua(@5xkbMg(o6>au+g48R(+Yz`mnUJ+n@0msM1!}4UPaBpZZ%Ade`qk5v;srVn`}Y z`NR?N(yxX9TyA8C4}Gi9byBOSSnat?h7*rwG*_79luV3qwR3A@*72oWN9kT=x{7M! zXJ@HO{04qyFzA{JSe&f@OiqocI}=z}&8vg|LSs9K*DGl_@le)_ug>sX`?Y11ogYT9 z`QLi8-H-ru)H@P9#kE9~Jb@|A_Q^-OI?vs;1rimEOJgSeWr&NCD?|Q)bqD(K=>5T+ zbVbg-ZB5vqihMMjD0iqS8XPJ|jjV8_I0_+Nz@O z*TKuLbC9w(wKdhqVZscWO;=g|Xm3tC;dhQ&v(|B@EtRC6`87>CZyt_Jl{sE{%f($R z{W}5a#O*jPlA zZ974=Ba~b&V~}fFSlT6PM{Fpburmj(x}a%&I}m?*hq$a9us#1x<%|Bp3X@vO(!?w- z9b|*XsE@kCfTpiq%!T}D^kZq zzwKz#?20U)?bu8c7JXOJNEzv1I%fnJ-FO`b-4+Aki~X?mJ!9)Htty7ZSLYt?F|9Ky zQY>D>HEy3Ibs^Jlb*&yV=sLbz>?+8$K~X6z^WSgdzO4cAt*_f@`{>5Ao!9s7SPK36 zOv+?u4AfB~wjX5_l;joMBULVKbJ&(*9pGm8cLgkivLRIuh8+!+Wf>bn&liBIud&eG zP$jVM+A%?1$lzAnG2ZV{Wy)6wyNen9zFktr%;vP0C=k@%N%CB;k`w6~ypr3^@I;L% zu0HeAqB6RGD-7m~+CF~iQ3MMnM;R*4I-&|1{?J*JbTKb!qmBtz>^g6A)LJ<#+X1Yi zm!dtFLu&ZRpDeC4FH>-Q(F3pueuz=jy`rbB+VJ`)C6Frql^+F*3`ihDAX^-LVsjTi*fo1K7^(6_kI3H-#gua5sV&`r9Fxf3?3AS z>60H~hCv_+=Gy2(#T<`f%id%N1EnQA$PHW1(AG7-Hd+HV{H%`%mcQ z6M{-8Nes%3J+q1dsh9@7FS~Z-1%4GESs27d2c@8JTyj(JYCem4vSwRC+s1TsP+8Sd z!#(`OPX>D47YyFaFv6WBU<-X8t@Z7$Czi&#$n$ zA!~@s8^mIcxw6|b!e{AZ6ApswxfIlDy3U78>C_;5m4e-y4OSGirnVSySyBPU?Sxqd z#QQRwyzPCN-|@TE{s=8Q@EJV_?|1e{F92+P7;FvdV7gNp-SqURUwWae+kO_T@m(pa z{KrsH4kH6+CahdhOc|&467q*Rg?s|KC`*i(Eg~#}MHwQp?8Z^G*R~OG=YH-DA&wzw z#ZsMq(KONBWU!}T3Wh0=vIYF^tq;DbyW~V5W(l^Vr;Kg0gXr&CHvnJE{%!mx$oD8~ zOtkm9Yyc&>x=;s^VCA2nY`ZrY8LeugSp;h(kCyC?AVCQPl2O3&94Xs`GS!~&m{VdLK@x>%jide|9&X8%6Zm!#SM_avs!Gi$LbU> z?d9prt(%BM6jilWy4~a;mGgGhrS12S9?5|V3J;4Gy~i@qqFxE6 zUxH>O!#`5V+Hi>^^MT;1n-M7y3(-d@YqjVlfhuE-!a*e_nGONeP=i5gK-h%y5@Y|3 z(Gf1Cyld^vk1Sy1dj?d|7+ew>8Ks*8xt4p<1lps z5W$=X(I`P^(C}!M|H$EwTSIYViP4d2z{1(?r}F~y+W zf>r@*9&`@tey1wR2AF=bw zpL;(!IR+Z7Pm^fhv}7{*5`C^g5B`7VcyO4}{(`>)FqW?9)xEQ%uHRv;lOUu@%4MM+ z_M215;l?KPp#Y6F_aPh2Tl6#8S;58LRy@9;gT;wV&)>VhS`tGjSv9)J^G? zXpEwlROX5AW*{UCoiEW`hI(+8rMS!>@I<{d;^z(i{0CIEBLSDwwvb6I5WmLOUdW(A z9ndVAZ*Jk9+DY0Ao}n-hBw(KU9-wx6DL9VRdIG^|w$Y+aR>z^tMUr^YTBdDTQpC}v zY2rjhf=NbHg3lsOKNyrbh;fPmG)R33X2ry72WUWi$&#vjuRzy_y-aoS$M-Kc(#RVe_p)rvi2}mpYzTB^R-4} zsWckw@wLhhc8j?9qklrrRr3PH1M%$DYJ4nZDL;z;^FzuS4ernK?`YBhlmjV-OWDM9Nkw z!PtyImibnfX0Y$JkWBZ8_SVTy|L zZfAE+fmRiiCtiIF2w=qTl%iA{UwZo`^YFVw@#nTS4rf*RHQmA1<~i=@_}M1LFMS0b

xk{GfKd|h(v#shK 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

D50a(0GrN1&w2 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 CCantq diff --git a/vignettes/Rcpp-attributes.pdf b/vignettes/Rcpp-attributes.pdf index b1f7f14bc40b5f529542628bf97190d13352ea1a..7eca2b9520b271daccedd0213cc5233cc5c9fb93 100644 GIT binary patch delta 41908 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

kjYrdI>`d4V=vj2 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