[Rcpp-devel] [ANN] Rcpp 0.10.5

Dirk Eddelbuettel edd at debian.org
Sun Sep 29 21:46:49 CEST 2013


Rcpp 0.10.5 is now on CRAN. A short blog post is at

   http://dirk.eddelbuettel.com/blog/    
   http://dirk.eddelbuettel.com/blog/2013/09/29#rcpp_0.10.5

and included as text (without links, obviously) below.

There is a fairly large number of small improvements in here, most notably
maybe of the subtle improvements on (const) references passing.  Thanks for
everybody for testing, suggestions and input -- and of course to everybody
(Romain, JJ, myself) for code.

Thanks,  Dirk


  Sun, 29 Sep 2013                                                           
                                                                         
  Rcpp 0.10.5                                                            
  A new version of Rcpp is now on the CRAN network for GNU R; binaries   
  for Debian have been uploaded as well.                                 
                                                                         
  Once more, this release brings a large number of exciting changes to   
  Rcpp. Some concern usability, some bring new features, some increase   
  performance; see below for the detailed list. We have now released     
  three updates on a quarterly cycle; if we keep this up the next        
  version ought to be ready at the end of December.                      
                                                                         
  As in the past, we tested the release rather rigorously by checking    
  against all packages I could (relatively easily) built on my server:   
  this time it successfully passed \code{R CMD check} for all 107        
  packages I can build locally out of a total of 136 packages. (Two      
  failed: one for an error in \code{Makevars}, and one for the need of   
  an X11 server during tests; this may get addressed in the in test      
  script next time). As all of these 107 packages passed, we do not      
  expect any issues with dependent packages. Should there be issues we   
  would appreciate a note, preferably with reproducible code, to the     
  rcpp-devel mailing list.                                               
                                                                         
  The complete NEWS entry for 0.10.4 is below; more details are in the   
  ChangeLog file in the package and on the Rcpp Changelog page.          
                                                                         
      Changes in Rcpp version 0.10.5 (2013-09-28)                        
                                                                         
      * Changes in R code:                                               
                                                                         
           * New R function demangle that calls the DEMANGLE macro.      
                                                                         
           * New R function sizeof to query the byte size of a type.     
             This returns an object of S3 class bytes that has a print   
             method showing bytes and bits.                              
                                                                         
      * Changes in Rcpp API:                                             
                                                                         
           * Add defined(__sun) to lists of operating systems to test    
             for when checking for lack of backtrace() needed for stack  
             traces.                                                     
                                                                         
           * as<T*>, as<const T*>, as<T&> and as<const T&> are now       
             supported, when T is a class exposed by modules, i.e. with  
             RCPP_EXPOSED_CLASS                                          
                                                                         
           * DoubleVector as been added as an alias to NumericVector     
                                                                         
           * New template function is<T> to identify if an R object can  
             be seen as a T. For example is<DataFrame>(x). This is a     
             building block for more expressive dispatch in various      
             places (modules and attributes functions).                  
                                                                         
           * wrap can now handle more types, i.e. types that iterate     
             over std::pair<const KEY, VALUE> where KEY can be converted 
             to a String and VALUE is either a primitive type (int,      
             double) or a type that wraps. Examples :                    
                                                                         
                * std::map<int, double> : we can make a String from an   
                  int, and double is primitive                           
                                                                         
                * boost::unordered_map<double, std::vector<double> >: we 
                  can make a String from a double and                    
                  std::vector<double> can wrap itself                    
                                                                         
             Other examples of this are included at the end of the wrap  
             unit test file (runit.wrap.R and wrap.cpp).                 
                                                                         
           * wrap now handles containers of classes handled by modules.  
             e.g. if you expose a class Foo via modules, then you can    
             wrap vector<Foo>, ... An example is included in the wrap    
             unit test file.                                             
                                                                         
           * RcppLdFlags(), often used in Makevars files of packages     
             using Rcpp, is now exported from the package namespace.     
                                                                         
      * Changes in Attributes:                                           
                                                                         
           * Objects exported by a module (i.e. by a RCPP_MODULE call in 
             a file that is processed by sourceCpp) are now directly     
             available in the environment. We used to make the module    
             object available, which was less useful.                    
                                                                         
           * A plugin for openmp has been added to support use of        
             OpenMP.                                                     
                                                                         
           * Rcpp::export now takes advantage of the more flexible as<>, 
             handling constness and referenceness of the input types.    
             For users, it means that for the parameters of function     
             exported by modules, we can now use references, pointers    
             and const versions of them. The file Module.cpp file has an 
             example.                                                    
                                                                         
           * No longer call non-exported functions from the tools        
             package                                                     
                                                                         
           * No longer search the inline package as a fallback when      
             loading plugins for the the Rcpp::plugins attribute.        
                                                                         
      * Changes in Modules:                                              
                                                                         
           * We can now expose functions and methods that take T& or     
             const T& as arguments. In these situations objects are no   
             longer copied as they used to be.                           
                                                                         
      * Changes in sugar:                                                
                                                                         
           * is_na supports classes DatetimeVector and DateVector        
                                                                         
      * Changes in Rcpp documentation:                                   
                                                                         
           * The vignettes have been moved from inst/doc/ to the         
             vignettes directory which is now preferred.                 
                                                                         
           * The appearance of the vignettes has been refreshed by       
             switching to the Bistream Charter font, and microtype       
             package.                                                    
                                                                         
      * Deprecation of RCPP_FUNCTION_*:                                  
                                                                         
           * The macros from the preprocessor_generated.h file have been 
             deprecated. They are still available, but they print a      
             message in addition to their expected behavior.             
                                                                         
           * The macros will be permanently removed in the first Rcpp    
             release after July 2014.                                    
                                                                         
           * Users of these macros should start replacing them with more 
             up-to-date code, such as using 'Rcpp attributes' or 'Rcpp   
             modules'.                                                   
                                                                         
  Thanks to CRANberries, you can also look at a diff to the previous     
  release 0.10.4. 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                                                       
                                                                         
                                             /code/rcpp | permanent link 
                                                                                              

-- 
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com


More information about the Rcpp-devel mailing list