Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
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
- Several API cleanups, polishes and a pre-announced code removal
- New
InternalFunction
interface, and newTimer
functionality. - More robust functionality of
Rcpp Attributes
as well as a newdryRun
option. - The Rcpp FAQ was updated, as was the main Description: in the
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.h
has been removed.
Timer
no longer records time between steps, but times from the origin. It also gains aget_timers(int)
methods that creates a vector ofTimer
that have the same origin. This is modelled on theRcpp11
implementation and is more useful for situations where we use timers in several threads.Timer
also gains a constructor taking ananotime_t
to use as its origin, and aorigin
method. 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
bool
was 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
DimNames
was added.A
no_init
option was added for Matrices and Vectors.The
InternalFunction
class 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.h
The return value of range eraser for Vectors was fixed in a pull request by Yixuan Qiu.
Changes in Rcpp Sugar:
In
ifelse()
, the returnedNA
type was corrected foroperator[]
.Changes in Rcpp Attributes:
Include LinkingTo in DESCRIPTION fields scanned to confirm that C++ dependencies are referenced by package.
Add
dryRun
parameter tosourceCpp
.Corrected issue with relative path and R chunk use for
sourceCpp
.Changes in Rcpp Documentation:
The
Rcpp-FAQ
vignette was updated with respect to OS X issues.A new entry in the
Rcpp-FAQ
clarifies the use of licenses.Vignettes build results no longer copied to
/tmp
to please CRAN.The Description in
DESCRIPTION
has 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 check
without warnings. A newSuggests:
has been added for pkgKitten.The
modules=TRUE
case forRcpp.package.skeleton()
has been improved and now runs without complaints fromR CMD check
as well.Changes in Rcpp unit test functions:
Functions from the RUnit package are now prefixed with
RUnit::
The
testRcppModule
andtestRcppClass
sample packages now passR CMD check --as-cran
cleanly 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.
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.