Rcpp 0.10.3
Sunday, Mar 24, 2013
2 min read
Rcpp 0.10.3 is on CRAN.
Here is the part of the NEWS file related to this release
-
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 sourceCpp
- Standalone roxygen chunks (e.g. to document a class) are now transposed into
RcppExports.R
- Added
Rcpp::plugins
attribute for binding directly to inline plugins. Plugins can be registered using the newregisterPlugin
function. - Added built-in
cpp11
plugin 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 sourceCpp has 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
-
Changes in Rcpp API
- The very central use of R API
R_PreserveObject
andR_ReleaseObject
has been replaced by a new system based on the functionsRcpp_PreserveObject
,Rcpp_ReleaseObject
andRcpp_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 contributeddefined()
test suggestions - Support for wide character strings has been added throughout the API. In particular
String
,CharacterVector
,wrap
andas
are aware of wide character strings
- The very central use of R API