The Rcpp Core Team is once again thrilled, pleased, and chuffed (am I
doing this right for LinkedIn?) to announce a new release (now at
1.0.14) of the Rcpp package. It
arrived on CRAN earlier today,
and has since been uploaded to Debian. Windows and macOS builds
should appear at CRAN in the next few days, as will builds in different
Linux distribution–and of course r2u should catch up
tomorrow too. The release was only uploaded yesterday, and as always get
flagged because of the grandfathered .Call(symbol)
as well
as for the url to the Rcpp book (which
has remained unchanged for years) ‘failing’. My email reply was promptly
dealt with under European morning hours and by the time I got up the
submission was in state ‘waiting’ over a single reverse-dependency
failure which … is also spurious, appears on some systems and not
others, and also not new. Imagine that: nearly 3000 reverse dependencies
and only one (spurious) change to worse. Solid testing seems to help. My
thanks as always to the CRAN
for responding promptly.
This release continues with the six-months January-July cycle started with release 1.0.5 in July 2020. This time we also need a one-off hotfix release 1.0.13-1: we had (accidentally) conditioned an upcoming R change on 4.5.0, but it already came with 4.4.2 so we needed to adjust our code. As a reminder, we do of course make interim snapshot ‘dev’ or ‘rc’ releases available via the Rcpp drat repo as well as the r-universe page and repo and strongly encourage their use and testing—I run my systems with these versions which tend to work just as well, and are also fully tested against all reverse-dependencies.
Rcpp has long established itself as the most popular way of enhancing R with C or C++ code. Right now, 2977 packages on CRAN depend on Rcpp for making analytical code go faster and further. On CRAN, 13.6% of all packages depend (directly) on Rcpp, and 60.8% of all compiled packages do. From the cloud mirror of CRAN (which is but a subset of all CRAN downloads), Rcpp has been downloaded 93.7 million times. The two published papers (also included in the package as preprint vignettes) have, respectively, 1947 (JSS, 2011) and 354 (TAS, 2018) citations, while the the book (Springer useR!, 2013) has another 676.
This release is primarily incremental as usual, generally preserving
existing capabilities faithfully while smoothing our corners and / or
extending slightly, sometimes in response to changing and tightened
demands from CRAN or R standards. The move towards a
more standardized approach for the C API of R once again to a few
changes; Kevin did once again did most of these PRs. Other contributed
PRs include Gábor permitting builds on yet another BSD variant, Simon
Guest correcting sourceCpp()
to work on read-only files,
Marco Colombo correcting a (surprisingly large) number of vignette
typos, Iñaki rebuilding some documentation files that tickled (false)
alerts, and I took care of a number of other maintenance items along the
way.
The full list below details all changes, their respective PRs and, if applicable, issue tickets. Big thanks from all of us to all contributors!
Changes in Rcpp release version 1.0.14 (2025-01-11)
Changes in Rcpp API:
Support for user-defined databases has been removed (Kevin in #1314 fixing #1313)
The
SET_TYPEOF
function and macro is no longer used (Kevin in #1315 fixing #1312)An errorneous cast to
int
affecting large return object has been removed (Dirk in #1335 fixing #1334)Compilation on DragonFlyBSD is now supported (Gábor Csárdi in #1338)
Use read-only
VECTOR_PTR
andSTRING_PTR
only with with R 4.5.0 or later (Kevin in #1342 fixing #1341)Changes in Rcpp Attributes:
Changes in Rcpp Deployment:
One unit tests for arm64 macOS has been adjusted; a macOS continuous integration runner was added (Dirk in #1324)
Authors@R is now used in DESCRIPTION as mandated by CRAN, the
Rcpp.package.skeleton()
function also creates it (Dirk in #1325 and #1327)A single datetime format test has been adjusted to match a change in R-devel (Dirk in #1348 fixing #1347)
Changes in Rcpp Documentation:
Thanks to my CRANberries, you can also look at a diff to the previous release Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page. Bugs reports are welcome at the GitHub issue tracker as well (where one can also search among open or closed issues).
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. If you like this or other open-source work I do, you can sponsor me at GitHub.