Rcpp 0.10.3

March 23, 2013
By

(This article was first published on Thinking inside the box , and kindly contributed to R-bloggers)

A new relase 0.10.3 of href="http://dirk.eddelbuettel.com/code/rcpp.html">Rcpp is now on
CRAN
and in Debian.

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.

The complete NEWS
entry for 0.10.3 is below; more details are in the ChangeLog file in the package and on the
Rcpp Changelog 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 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 new registerPlugin 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 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

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

To leave a comment for the author, please follow the link and comment on his blog: Thinking inside the box .

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...



If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.