Mon, 23 Jul 2018

Another bi-monthly update in the 0.12.* series of Rcpp landed on CRAN early this morning following less than two weekend in the incoming/ directory of CRAN. As always, thanks to CRAN for all the work they do so well.

Rcpp has become the most popular way of enhancing GNU R with C or C++ code. As of today, 1403 packages on CRAN depend on Rcpp for making analytical code go faster and further, along with another 138 in the current BioConductor release 3.7.

A pretty decent number of changes, contributed by a number of Rcpp core team members as well as Rcpp user, went into this. Full details are below.

Changes in Rcpp version 0.12.18 (2018-07-21)

Changes in Rcpp API:

The StringProxy::operator== is now const correct (Romain in #855 fixing #854).

The Environment::new_child() is now const (Romain in #858 fixing #854).

Next eval codes now properly unwind (Lionel in the large and careful #859 fixing #807).

In debugging mode, more type information is shown on abort() (Jack Wasey in #860 and #882 fixing #857).

A new class was added which allow suspension of the RNG synchronisation to address an issue seen in RcppDE (Kevin in #862).

Evaluation calls now happen in the base environment (which may fix an issue seen between conflicted and some BioConductor packages) (Kevin in #863 fixing #861).

Call stack display on error can now be controlled more finely (Romain in #868).

The new Rcpp_fast_eval is used instead of Rcpp_eval though this still requires setting RCPP_USE_UNWIND_PROTECT before including Rcpp.h (Qiang Kou in #867 closing #866).

The Rcpp::unwindProtect() function extracts the unwinding from the Rcpp_fast_eval() function and makes it more generally available. (Lionel in #873 and #877).