<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/rcpp-0-12-15-numerous-tweaks-and-enhancements/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://dirk.eddelbuettel.com/blog/2018/01/20#rcpp_0.12.15"> Thinking inside the box </a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>The fifteenth release in the 0.12.* series of <a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp.html" target="_blank">Rcpp</a> landed on <a rel="nofollow" href="http://cran.r-project.org/" target="_blank">CRAN</a> today after just a few days of gestation in <code>incoming/</code>.</p>
<p>This release follows the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2015/07/25#rcpp_0.12.0" target="_blank">0.12.0 release</a> from July 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2015/09/10#rcpp_0.12.1" target="_blank">0.12.1 release</a> in September 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2015/11/15#rcpp_0.12.2" target="_blank">0.12.2 release</a> in November 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/01/10#rcpp_0.12.3" target="_blank">0.12.3 release</a> in January 2017, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/03/26#rcpp_0.12.4" target="_blank">0.12.4 release</a> in March 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/05/14#rcpp_0.12.5" target="_blank">0.12.5 release</a> in May 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/07/19#rcpp_0.12.6" target="_blank">0.12.6 release</a> in July 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/09/04#rcpp_0.12.7" target="_blank">0.12.7 release</a> in September 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2016/11/18#rcpp_0.12.8" target="_blank">0.12.8 release</a> in November 2016, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/01/15#rcpp_0.12.9" target="_blank">0.12.9 release</a> in January 2017, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/03/19#rcpp_0.12.10" target="_blank">0.12.10.release</a> in March 2017, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/05/23#rcpp_0.12.11" target="_blank">0.12.11.release</a> in May 2017, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/07/15#rcpp_0.12.12" target="_blank">0.12.12 release</a> in July 2017, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/09/28#rcpp_0.12.13" target="_blank">0.12.13.release</a> in late September 2017, and the <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/2017/11/24#rcpp_0.12.14" target="_blank">0.12.14.release</a> in November 2017 making it the nineteenth release at the steady and predictable bi-montly release frequency.</p>
<p><a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp.html" target="_blank">Rcpp</a> has become <em>the</em> most popular way of enhancing <a rel="nofollow" href="http://www.r-project.org/" target="_blank">GNU R</a> with C or C++ code. As of today, 1288 packages on <a rel="nofollow" href="http://cran.r-project.org/" target="_blank">CRAN</a> depend on <a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp.html" target="_blank">Rcpp</a> for making analytical code go faster and further, along with another 91 in <a rel="nofollow" href="https://www.bioconductor.org/" target="_blank">BioConductor</a>.</p>
<p>This release contains a pretty large number of pull requests by a wide variety of authors. Most of these pull requests are very focused on a particular issue at hand. One was larger and ambitious with some forward-looking code for R 3.5.0; however this backfired a little on Windows and is currently &quot;parked&quot; behind a <code>#define</code>. Full details are below.</p>
<blockquote>
<h4>Changes in Rcpp version 0.12.15 (2018-01-16)</h4>
<ul>
<li>
<p>Changes in Rcpp API:</p>
<ul>
<li>
<p>Calls from exception handling to <code>Rf_warning()</code> now correctly set an initial format string (Dirk in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/777" target="_blank">#777</a> fixing <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/issues/776" target="_blank">#776</a>).</p>
</li>
<li>
<p>The ‘new’ Date and Datetime vectors now have <code>is_na</code> methods too. (Dirk in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/783" target="_blank">#783</a> fixing <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/issues/781" target="_blank">#781</a>).</p>
</li>
<li>
<p>Protect more temporary <code>SEXP</code> objects produced by <code>wrap</code> (Kevin in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/784" target="_blank">#784</a>).</p>
</li>
<li>
<p>Use public R APIs for <code>new_env</code> (Kevin in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/785" target="_blank">#785</a>).</p>
</li>
<li>
<p>Evaluation of R code is now safer when compiled against R 3.5 (you also need to explicitly define <code>RCPP_PROTECTED_EVAL</code> before including <code>Rcpp.h</code>). Longjumps of all kinds (condition catching, returns, restarts, debugger exit) are appropriately detected and handled, e.g. the C++ stack unwinds correctly (Lionel in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/789" target="_blank">#789</a>). [ Committed but subsequently disabled in release 0.12.15 ]</p>
</li>
<li>
<p>The new function <code>Rcpp_fast_eval()</code> can be used for performance-sensitive evaluation of R code. Unlike <code>Rcpp_eval()</code>, it does not try to catch errors with <code>tryEval</code> in order to avoid the catching overhead. While this is safe thanks to the stack unwinding protection, this also means that R errors are not transformed to an <code>Rcpp::exception</code>. If you are relying on error rethrowing, you have to use the slower <code>Rcpp_eval()</code>. On old R versions <code>Rcpp_fast_eval()</code> falls back to <code>Rcpp_eval()</code> so it is safe to use against any versions of R (Lionel in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/789" target="_blank">#789</a>). [ Committed but subsequently disabled in release 0.12.15 ]</p>
</li>
<li>
<p>Overly-clever checks for <code>NA</code> have been removed (Kevin in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/790" target="_blank">#790</a>).</p>
</li>
<li>
<p>The included tinyformat has been updated to the current version, Rcpp-specific changes are now more isolated (Kirill in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/791" target="_blank">#791</a>).</p>
</li>
<li>
<p>Overly picky <em>fall-through</em> warnings by gcc-7 regarding <code>switch</code> statements are now pre-empted (Kirill in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/792" target="_blank">#792</a>).</p>
</li>
<li>
<p>Permit compilation on ANDROID (Kenny Bell in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/796" target="_blank">#796</a>).</p>
</li>
<li>
<p>Improve support for NVCC, the CUDA compiler (Iñaki Ucar in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/798" target="_blank">#798</a> addressing <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/issues/797" target="_blank">#797</a>).</p>
</li>
<li>
<p>Speed up tests for NA and NaN (Kirill and Dirk in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/799" target="_blank">#799</a> and <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/800" target="_blank">#800</a>).</p>
</li>
<li>
<p>Rearrange stack unwind test code, keep test disabled for now (Lionel in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/801" target="_blank">#801</a>).</p>
</li>
<li>
<p>Further condition away protect unwind behind #define (Dirk in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/802" target="_blank">#802</a>).</p>
</li>
</ul>
</li>
<li>
<p>Changes in Rcpp Attributes:</p>
<ul>
<li>Addressed a missing Rcpp namespace prefix when generating a C++ interface (James Balamuta in <a rel="nofollow" href="https://github.com/RcppCore/Rcpp/pull/779" target="_blank">#779</a>).</li>
</ul>
</li>
<li>
<p>Changes in Rcpp Documentation:</p>
<ul>
<li>The Rcpp FAQ now shows <code>Rcpp::Rcpp.plugin.maker()</code> and not the outdated <code>:::</code> use applicable non-exported functions.</li>
</ul>
</li>
</ul>
</blockquote>
<p>Thanks to <a rel="nofollow" href="http://dirk.eddelbuettel.com/cranberries/" target="_blank">CRANberries</a>, you can also look at a <a rel="nofollow" href="http://dirk.eddelbuettel.com/cranberries/2018/01/20#Rcpp_0.12.15" target="_blank">diff to the previous release</a>. As always, details are on the <a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp.changelog.html" target="_blank">Rcpp Changelog page</a> and the <a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp.html" target="_blank">Rcpp page</a> which also leads to the downloads page, the <a rel="nofollow" href="http://dirk.eddelbuettel.com/code/rcpp/html/index.html" target="_blank">browseable doxygen docs</a> and zip files of doxygen output for the standard formats. Questions, comments etc should go to the <a rel="nofollow" href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" target="_blank">rcpp-devel mailing list</a> off the <a rel="nofollow" href="http://r-forge.r-project.org/projects/rcpp/" target="_blank">R-Forge page</a>.</p>
<p>
This post by <a rel="nofollow" href="http://dirk.eddelbuettel.com/" target="_blank">Dirk Eddelbuettel</a> originated on his <a rel="nofollow" href="http://dirk.eddelbuettel.com/blog/" target="_blank">Thinking inside the box</a> blog. Please report excessive re-aggregation in third-party for-profit settings.</p>
<p>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://dirk.eddelbuettel.com/blog/2018/01/20#rcpp_0.12.15"> Thinking inside the box </a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/DigjBijQ0us" height="1"></a></div>