Rcpp 0.11.0

February 3, 2014
By

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

A new major release 0.11.0 of
Rcpp is now
on the CRAN network for
GNU R and
binaries for Debian have been uploaded
as well.

Before you read on, please note that this release will most likely
require a reinstallation of all your packages using
Rcpp
as it now works without a user-facing shared library.

The biggest change in this version is that it is now effectively
headers-only. Before you wonder, there is still compiled code provided by
Rcpp for use by
packages. But this uses the function registration mechanism of
GNU R instead via
instantiation at package startup. This does make package building easier,
will remove the need to query GNU R for the
Rcpp library file in
src/Makevars when compiling, and should generally avoid building issues such
as the dreaded fails on paths with spaces still annoying users of a
certain OS.

There are a number of other fixes, upgrades and other extensions detailed in
NEWS file extract below, in the ChangeLog file in the package and on the
Rcpp Changelog page
as well as in a release announcement I’ll post later.

Changes in Rcpp version 0.11.0 (2014-02-02)

  • Changes in Rcpp API:

    • Functions provided/used by Rcpp are now registered
      with R and instantiated by client package alleviating the need for
      explicit linking against libRcpp which is therefore no
      longer created.

    • Updated the Rcpp.package.skeleton() function accordingly.

    • New class StretchyList for pair lists with fast addition of
      elements at the front and back. This abstracts the 3 functions
      NewList, GrowList and Insert used in various
      packages and in parsers in R.

    • The function dnt, pnt, qnt sugar
      functions were incorrectly expanding to the no-degree-of-freedoms
      variant.

    • Unit tests for pnt were added.

    • The sugar table function did not handle NAs and NaNs properly
      for numeric vectors. Fixed and tests added.

    • The internal coercion mechanism mapping numerics to strings has
      been updated to better match R (specifically with Inf, -Inf,
      and NaN.)

    • Applied two bug fixes to Vector sort() and RObject
      definition spotted and corrected by Kevin Ushey

    • New checkUserInterrupt() function that provides a C++ friendly
      implementation of R_CheckUserInterrupt.

  • Changes in Rcpp attributes:

    • Embedded R code chunks in sourceCpp are now executed within the working directory of the C++ source file.

    • Embedded R code chunks in sourceCpp can now be disabled.

  • Changes in Rcpp documentation:

    • The Rcpp-FAQ and Rcpp-package vignettes have been updated and expanded.

    • Vignettes are now typeset with grey background for code boxes.

    • The bibtex reference file has been update to reflexct current package versions.

  • Changes in Rcpp unit tests:

    • The file tests/doRUnit.R was rewritten following the
      pattern deployed in RProtoBuf
      which is due to Murray Stokely

    • The function test() was rewritten; it provides an
      easy entry point to running unit tests of the installed package

Thanks to
CRANberries, you can also look at a
diff to the previous release 0.10.6.
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

This post by Dirk Eddelbuettel
originated on his Thinking inside the box blog.
Please report excessive re-aggregation in third-party for-profit settings.

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.