A new release 0.11.3 of Rcpp is now on the CRAN network for GNU R, and an updated Debian package has been uploaded too.
Rcpp has become the most popular way of enhancing GNU R with C++ code. As of today, 273 packages on CRAN depend on Rcpp for making analyses go faster and further.
This release brings a fairly large number of continued enhancements, fixes and polishing to Rcpp. These were provided by a total of seven different contributors---which is a new record as well.
See below for a detailed list of changes extracted from the NEWS file, but some highlights included in this release are
InternalFunction interface, and new Timer functionality.Rcpp Attributes as well as a new dryRun option.DESCRIPTION file.Rcpp.package.skeleton() can now deploy functionality from pkgKitten to create Rcpp packages that purr.One sore point, however, is that we missed that packages using Rcpp Modules appear to require a rebuild. We are sorry for the inconvenience; this has highlighted a shortcoming in our fairly robust and extensive tests. While we test our packages against all known CRAN dependents, such tests check for the ability to compile and run freshly and not whether previously built packages still run. We intend to augment our testing in this direction to avoid a repeat occurrence of such a misfeature.
Changes in Rcpp version 0.11.3 (2014-09-27)
Changes in Rcpp API:
The deprecation of
RCPP_FUNCTION_*which was announced with release 0.10.5 last year is proceeding as planned, and the filemacros/preprocessor_generated.hhas been removed.
Timerno longer records time between steps, but times from the origin. It also gains aget_timers(int)methods that creates a vector ofTimerthat have the same origin. This is modelled on theRcpp11implementation and is more useful for situations where we use timers in several threads.Timeralso gains a constructor taking ananotime_tto use as its origin, and aoriginmethod. This can be useful for situations where the number of threads is not known in advance but we still want to track what goes on in each thread.A cast to
boolwas removed in the vector proxy code as inconsistent behaviour between clang and g++ compilations was noticed.A missing
update(SEXP)method was added thanks to pull request by Omar Andres Zapata Mesa.A proxy for
DimNameswas added.A
no_initoption was added for Matrices and Vectors.The
InternalFunctionclass was updated to work withstd::function(provided a suitable C++11 compiler is available) via a pull request by Christian Authmann.A
new_env()function was added toEnvironment.hThe return value of range eraser for Vectors was fixed in a pull request by Yixuan Qiu.
Changes in Rcpp Sugar:
In
ifelse(), the returnedNAtype was corrected foroperator[].Changes in Rcpp Attributes:
Include LinkingTo in DESCRIPTION fields scanned to confirm that C++ dependencies are referenced by package.
Add
dryRunparameter tosourceCpp.Corrected issue with relative path and R chunk use for
sourceCpp.Changes in Rcpp Documentation:
The
Rcpp-FAQvignette was updated with respect to OS X issues.A new entry in the
Rcpp-FAQclarifies the use of licenses.Vignettes build results no longer copied to
/tmpto please CRAN.The Description in
DESCRIPTIONhas been shortened.Changes in Rcpp support functions:
The
Rcpp.package.skeleton()function will now use pkgKitten package, if available, to create a package which passesR CMD checkwithout warnings. A newSuggests:has been added for pkgKitten.The
modules=TRUEcase forRcpp.package.skeleton()has been improved and now runs without complaints fromR CMD checkas well.Changes in Rcpp unit test functions:
Functions from the RUnit package are now prefixed with
RUnit::The
testRcppModuleandtestRcppClasssample packages now passR CMD check --as-crancleanly with NOTES or WARNINGS
Thanks to CRANberries, you can also look at a diff to the previous release As always, even fuller details are on the Rcpp Changelog page and the Rcpp page which also leads to the downloads page, the browseable doxygen docs and zip files of doxygen output for the standard formats. A local directory has source and documentation too. Questions, comments etc should go to the rcpp-devel mailing list off the R-Forge page.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.