Yesterday the eighth update in the 0.12.* series of Rcpp made it to the CRAN network for GNU R where the Windows binary has by now been generated too; the Debian package is on its way as well. This 0.12.8 release follows the 0.12.0 release from late July, the 0.12.1 release in September, the 0.12.2 release in November, the 0.12.3 release in January, the 0.12.4 release in March, the 0.12.5 release in May, the 0.12.6 release in July, and the 0.12.7 release in September --- making it the twelveth release at the steady bi-montly release frequency. While we are keeping with the pattern, we have managed to include quite a lot of nice stuff in this release. None of it is a major feauture, though, and so we have not increased the middle number.
Among the changes this release are (once again) much improved exception handling (thanks chiefly to Jim Hester), better large vector support (by Qiang), a number of Sugar extensions (mostly Nathan, Qiang and Dan) and beginnings of new DateVector
and DatetimeVectors
classes, and other changes detailed below. We plan to properly phase in the new date(time) classes. For now, you have to use a #define
such as this one in Rcpp.h which remains commented-out for now. We plan to switch this on as the new default no earlier than twelve months from now.
Rcpp has become the most popular way of enhancing GNU R with C or C++ code. As of today, 843 packages on CRAN depend on Rcpp for making analytical code go faster and further. That is up by eightyfour packages, or a full ten percent, just since the last release in early September!
Again, we are lucky to have such a large group of contributors. Among them, we have invited Nathan Russell to the Rcpp Core team given his consistently excellent pull requests (as well as many outstanding Stackoverflow answers for Rcpp). More details on changes are below.
Changes in Rcpp version 0.12.8 (2016-11-16)
Changes in Rcpp API:
String and vector elements now use extended
R_xlen_t
indices (Qiang in PR #560)Hashing functions now return unsigned int (Qiang in PR #561)
Added static methods
eye()
,ones()
, andzeros()
for select matrix types (Nathan Russell in PR #569)The exception call stack is again correctly reported; print methods and tests added too (Jim Hester in PR #582 fixing #579)
Variatic macros no longer use a GNU extensions (Nathan in PR #575)
Hash index functions were standardized on returning unsigned integers (Also PR #575)
Changes in Rcpp Sugar:
Changes in Rcpp unit tests
A test for expression vectors was corrected.
The constructor test for datetime vectors reflects the new classes which treats Inf correctly (and still as a non-finite value)
Changes in Rcpp Attributes
Updated Date and Datetime vector classes:
The
DateVector
andDatetimeVector
classes were renamed with a prefixold
; they are currentlytypedef
'ed to the existing name (#557)New variants
newDateVector
andnewDatetimeVector
were added based onNumericVector
(also #557, #577, #581, #587)By defining
RCPP_NEW_DATE_DATETIME_VECTORS
the new classes can activated. We intend to make the new classes the default no sooner than twelve months from this release.The
capabilities()
function can also be used for presence of this feature
Thanks to CRANberries, you can also look at a diff to the previous release. As always, even fuller details are on the Rcpp Changelog page and the Rcpp page which also leads to the downloads page, 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.