[Rcpp-commits] r3951 - in pkg/Rcpp: . inst inst/announce
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Tue Nov 13 03:50:33 CET 2012
Author: edd
Date: 2012-11-13 03:50:31 +0100 (Tue, 13 Nov 2012)
New Revision: 3951
Added:
pkg/Rcpp/inst/announce/ANNOUNCE-0.10.0.txt
Modified:
pkg/Rcpp/ChangeLog
pkg/Rcpp/inst/NEWS.Rd
Log:
draft of 0.10.0 announcement
updates to NEWS and ChangeLog
Modified: pkg/Rcpp/ChangeLog
===================================================================
--- pkg/Rcpp/ChangeLog 2012-11-13 01:08:36 UTC (rev 3950)
+++ pkg/Rcpp/ChangeLog 2012-11-13 02:50:31 UTC (rev 3951)
@@ -1,9 +1,17 @@
+2012-11-12 Dirk Eddelbuettel <edd at debian.org>
+
+ * inst/announce/ANNOUNCE-0.10.0.txt: Announcement draft
+
+2012-11-12 JJ Allaire <jj at rstudio.org>
+
+ * inst/doc/Rcpp-attributes/*: New vignette
+
2012-11-12 Romain Francois <romain at r-enthusiasts.com>
- * include/Rcpp/vector/Vector.h : adding const_iterator and associated
- begin() and end() methods
+ * include/Rcpp/vector/Vector.h : adding const_iterator and associated
+ begin() and end() methods
* include/Rcpp/vector/Matrix.h : idem
-
+
2012-11-11 JJ Allaire <jj at rstudio.org>
* src/Attributes.cpp: fully qualify _ in generated code
Modified: pkg/Rcpp/inst/NEWS.Rd
===================================================================
--- pkg/Rcpp/inst/NEWS.Rd 2012-11-13 01:08:36 UTC (rev 3950)
+++ pkg/Rcpp/inst/NEWS.Rd 2012-11-13 02:50:31 UTC (rev 3951)
@@ -2,7 +2,7 @@
\title{News for Package 'Rcpp'}
\newcommand{\cpkg}{\href{http://CRAN.R-project.org/package=#1}{\pkg{#1}}}
-\section{Changes in Rcpp version 0.9.16 (future)}{
+\section{Changes in Rcpp version 0.10.0 (2012-11-xx)}{
\itemize{
\item Support for C++11 style attributes (embedded in comments) to enable
use of C++ within interactive sessions and to automatically generate module
@@ -19,6 +19,7 @@
\item Rcpp::interfaces attribute to specify the external bindings
\code{compileAttributes()} should generate (defaults to R-only but a
C++ include file using R_GetCCallable can also be generated)
+ \item New vignette "Rcpp-attribute"
}
\item Rcpp modules feature set is expanded :
\itemize{
Added: pkg/Rcpp/inst/announce/ANNOUNCE-0.10.0.txt
===================================================================
--- pkg/Rcpp/inst/announce/ANNOUNCE-0.10.0.txt (rev 0)
+++ pkg/Rcpp/inst/announce/ANNOUNCE-0.10.0.txt 2012-11-13 02:50:31 UTC (rev 3951)
@@ -0,0 +1,153 @@
+
+
+===== Summary =====
+
+Version 0.10.0 of the Rcpp package is now on CRAN and its mirrors.
+
+This new release brings a number of new features, as well as extensions to
+existing features, to the package. Several key aspects are highlighted
+below, and further details can be found in the NEWS and ChangeLog files which
+are included in the package.
+
+
+
+===== Overview =====
+
+Rcpp is an R package and associated C++ library for seamless integration
+between C++ and R.
+
+It has been described in a recent paper in the Journal of Statistical
+Software (Vol 40, Issue 08) which is also included in the package as the
+"Rcpp-introduction" pdf vignette.
+
+As of late 2012, Rcpp is used by over 80 other CRAN packages making it the
+most widely-used language interface for R.
+
+Several key features of the new 0.10.0 release are described below.
+
+
+
+===== Rcpp attributes =====
+
+An existing new addition is provided by "Rcpp attributes". It takes its name
+and inspiration from "C++ attributes", a language addition for C++ which will
+become more widely available via the new C++11 standard. However, "Rcpp
+attributes" is implemented in standard R and C++ and available now for all
+current C++ compiler versions used for R.
+
+By using attributes, we can direct the compilers to automatically generate
+interface code which makes the integration of C++ and even more direct. As a
+concrete example, the R statements
+
+R> prg <- "int f(const int x) {if(x<2) return x; else return f(x-1)+f(x-2);}"
+R> fibCpp <- cppFunction(prg)
+R> fibCpp(20)
+[1] 6765
+
+define a (short) C/C++ program to recursively compute the Fibonacci sequence
+as an R string which is then passed to cppFunction() -- which does all the
+required interface generation and argument marshaling. The resulting object
+can then called like an R function -- but runs at C++ speed.
+
+Other key Rcpp attributes functions and tools are:
+ - sourceCpp() to source exported functions from a file
+ - evalCpp() for inline expression evaluation
+ - compileAttributes() for converting code for use in a package
+ - Rcpp::exports to define the export of a C++ function to R
+ - Rcpp::depends to declare external dependencies for sourceCpp()
+ - Rcpp::interfaces to to specify the external bindings.
+
+Rcpp attributes build upon Rcpp modules (described in another vignette in the
+package), as well as the automatic type converters Rcpp::as<>() and
+Rcpp::wrap. The converters can already be used for a wide variety of
+standard C and C++ types, and can also be adapted to other C++ types and
+libraries as described in the Rcpp-extending vignette.
+
+More detail are provided in the new vignette Rcpp-attributes. We also intend
+to provide further illustrations via our blogs following the release.
+
+
+
+===== Rcpp modules =====
+
+Rcpp modules provide an easy way to expose C++ code to R by means of
+declarations. Rcpp modules have been extended for the new release. A brief
+summary of new key features is:
+
+ - Functions and methods can now return objects from classes that are exposed
+ through modules. The macro RCPP_EXPOSED_CLASS and RCPP_EXPOSED_CLASS_NODECL can be
+ used to declared the required type traits.
+ - Classes exposed through modules can also be used as parameters of exposed
+ functions or methods.
+ - Exposed classes can declare factories, ie a C++ function returning a
+ pointer to the target class, providing an alternative way to construct
+ objects.
+ - "converter" can be used to declare a way to convert ("cast") an object of
+ a type to another type.
+ - inheritance: A class can now declare that it inherits from another class;
+ the exposed class gains methods and properties (fields) from its parent class.
+
+We intend to provide example package using these new features in the near future.
+
+
+
+===== New sugar functions =====
+
+Rcpp sugar provides "syntactic sugar" familiar to R programmers at the C++
+level, including a large number of vectorised functions. In this release, we
+added
+ - which_min() and which_max() returning the index of the first object
+ matching the condition
+ - unique() and sort_unique()
+
+
+
+===== New I/O facilities =====
+
+The Rcpp::Rcout object now supports sync() to flush output directly to the R
+I/O facilities. A new object Rcpp::Rcerr has been added with passes content
+for error messages to REprintf().
+
+
+
+===== New namespace "R::" for Rmath functions =====
+
+A side-effect of Rcpp sugar providing vectorised d/p/q/r functions for the
+various statistical distribution was that the scalar variants of these
+functions (available from Rmath.h) were masked behind a Rf_ prefix.
+Previously, one had to call ::Rf_pnorm5() to compute pnorm() -- but now a
+cleaner interface R::pnorm() is available. Unit tests were added as well.
+
+
+
+===== Links =====
+
+Rcpp main page:
+ http://dirk.eddelbuettel.com/code/rcpp.html
+
+R-forge project page:
+ http://r-forge.r-project.org/projects/rcpp/
+
+Dirk's blog section about Rcpp
+ Rcpp: http://dirk.eddelbuettel.com/blog/code/rcpp/
+
+Romain's blog section about Rcpp:
+ http://romainfrancois.blog.free.fr/index.php?category/R-package/Rcpp
+
+RStudio blog:
+ http://blog.rstudio.org
+
+
+
+===== Support =====
+
+Questions about Rcpp should be directed to the Rcpp-devel mailing list
+ https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
+
+
+
+Dirk Eddelbuettel, Romain Francois, Doug Bates, John Chambers and JJ Allaire
+November 2012
+
+
+
More information about the Rcpp-commits
mailing list