This is the fourth release in the 0.10.* series, and further extends and solidifies the excellent Rcpp attributes. A few other bugs were fixed as well, and support for wide character strings has been added.
We once again tested this fairly rigorously by checking against 86 of the 100 CRAN packages depending on Rcpp. All of these passed. So we do not expect any issues with dependent packages, but one never knows.
NEWS entry for 0.10.3 is below; more details are in the ChangeLog file in the package and on the Rcpp Changelog page.
Thanks to CRANberries, you can also look at a diff to the previous release 0.10.2. As always, even fuller details are on the Rcpp Changelog page and the Rcpp page which also leads to the downloads, 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
Changes in Rcpp version 0.10.3 (2013-03-23)
Changes in R code:
Prevent build failures on Windowsn when Rcpp is installed in a library path with spaces (transform paths in the same manner that R does before passing them to the build system).
Changes in Rcpp attributes:
Rcpp modules can now be used with
Standalone roxygen chunks (e.g. to document a class) are now transposed into RcppExports.R
Rcpp::pluginsattribute for binding directly to inline plugins. Plugins can be registered using the new
cpp11plugin for specifying the use of C++11 in a translation unit
Merge existing values of build related environment variables for sourceCpp
Add global package include file to RcppExports.cpp if it exists
Stop with an error if the file name passed to
sourceCpphas spaces in it
Return invisibly from void functions
Ensure that line comments invalidate block comments when parsing for attributes
Eliminated spurious empty hello world function definition in Rcpp.package.skeleton
Changes in Rcpp API:
The very central use of R API R_PreserveObject and R_ReleaseObject has been replaced by a new system based on the functions Rcpp_PreserveObject, Rcpp_ReleaseObject and Rcpp_ReplaceObject which shows better performance and is implemented using a generic vector treated as a stack instead of a pairlist in the R implementation. However, as this preserve / release code is still a little rough at the edges, a new #define is used (in config.h) to disable it for now.
Platform-dependent code in Timer.cpp now recognises a few more BSD variants thanks to contributed defined() test suggestions
Support for wide character strings has been added throughout the API. In particular String, CharacterVector, wrap and as are aware of wide character strings