Right on the heels of the news of 2000 CRAN packages using Rcpp (and also hitting 12.5 of CRAN package, or one in eight), we are happy to announce release 1.0.5 of Rcpp. Since the ten-year anniversary and the 1.0.0 release release in November 2018, we have been sticking to a four-month release cycle. The last release has, however, left us with a particularly bad taste due to some rather peculiar interactions with a very small (but ever so vocal) portion of the user base. So going forward, we will change two things. First off, we reiterate that we have already made rolling releases. Each minor snapshot of the main git branch gets a point releases. Between release 1.0.4 and this 1.0.5 release, there were in fact twelve of those. Each and every one of these was made available via the drat
repo, and we will continue to do so going forward. Releases to CRAN, however, are real work. If they then end up with as much nonsense as the last release 1.0.4, we think it is appropriate to slow things down some more so we intend to now switch to a six-months cycle. As mentioned, interim releases are always just one install.packages()
call with a properly set repos
argument away.
Rcpp has become the most popular way of enhancing R with C or C++ code. As of today, 2002 packages on CRAN depend on Rcpp for making analytical code go faster and further, along with 203 in BioConductor. And per the (partial) logs of CRAN downloads, we are running steady at around one millions downloads per month.
This release features again a number of different pull requests by different contributors covering the full range of API improvements, attributes enhancements, changes to Sugar and helper functions, extended documentation as well as continuous integration deplayment. See the list below for details.
Changes in Rcpp patch release version 1.0.5 (2020-07-01)
Changes in Rcpp API:
The exception handler code in #1043 was updated to ensure proper include behavior (Kevin in #1047 fixing #1046).
A missing
Rcpp_list6
definition was added to support R 3.3.* builds (Davis Vaughan in #1049 fixing #1048).Missing
Rcpp_list{2,3,4,5}
definition were added to the Rcpp namespace (Dirk in #1054 fixing #1053).A further updated corrected the header include and provided a missing else branch (Mattias Ellert in #1055).
Two more assignments are protected with
Rcpp::Shield
(Dirk in #1059).One call to
abs
is now properly namespaced withstd::
(Uwe Korn in #1069).String object memory preservation was corrected/simplified (Kevin in #1082).
Changes in Rcpp Attributes:
Changes in Rcpp Sugar:
Changes in Rcpp support functions:
Changes in Rcpp Documentation:
Changes in Rcpp Deployment:
Travis CI unit tests now run a matrix over the versions of R also tested at CRAN (rel/dev/oldrel/oldoldrel), and coverage runs in parallel for a net speed-up (Dirk in #1056 and #1057).
The exceptions test is now partially skipped on Solaris as it already is on Windows (Dirk in #1065).
The default CI runner was upgraded to R 4.0.0 (Dirk).
The CI matrix spans R 3.5, 3.6, r-release and r-devel (Dirk).
Thanks to 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); questions are also welcome under rcpp
tag at StackOverflow which also allows searching among the (currently) 2455 previous questions.
If you like this or other open-source work I do, you can now sponsor me at GitHub. For the first year, GitHub will match your contributions.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.