[Rcpp-commits] r3770 - pkg/Rcpp/inst
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Sep 16 15:47:40 CEST 2012
Author: edd
Date: 2012-09-16 15:47:40 +0200 (Sun, 16 Sep 2012)
New Revision: 3770
Added:
pkg/Rcpp/inst/NEWS.Rd
Removed:
pkg/Rcpp/inst/NEWS
Log:
renamed NEWS as NEWS.Rd
Deleted: pkg/Rcpp/inst/NEWS
===================================================================
--- pkg/Rcpp/inst/NEWS 2012-09-16 13:47:11 UTC (rev 3769)
+++ pkg/Rcpp/inst/NEWS 2012-09-16 13:47:40 UTC (rev 3770)
@@ -1,938 +0,0 @@
-\name{NEWS}
-\title{News for Package 'Rcpp'}
-\section{Changes in Rcpp version 0.9.14 (2012-xx-yy)}{
- \itemize{
- \item Added new Rcpp sugar functions trunc(), round() and signif(), as well
- as unit tests for them
- \item Be more conservative about where we support clang++ and the inclusion
- of exception_defines.h and prevent this from being attempted on OS X
- where it failed for clang 3.1
- \item Corrected a typo in Module.h who now again permits use of finalizers
- \item Small correction for (unexported) bib() function (which provides a path
- to the bibtex file that ships with Rcpp)
- }
-}
-\section{Changes in Rcpp version 0.9.13 (2012-06-28)}{
- \itemize{
- \item Truly corrected Rcpp::Environment class by having default constructor
- use the global environment, and removing the default argument of
- global environment from the SEXP constructor
- \item Added tests for clang++ version to include bits/exception_defines.h
- for versions 3.0 or higher (similar to g++ 4.6.0 or later), needed to
- include one particular exceptions header
- \item Made more regression tests conditional on the RunAllRcppTests to come
- closer to the CRAN mandate of running tests in sixty seconds
- \item Updated unit test wrapper tests/doRUnit.R as well as unitTests/runTests.R
- }
-}
-\section{Changes in Rcpp version 0.9.12 (2012-06-23)}{
- \itemize{
- \item Corrected Rcpp::Environment class by removing (empty) ctor following
- rev3592 (on May 2) where default argument for ctor was moved
- \item Unit testing now checks for environment variable RunAllRcppTests being
- set to "yes"; otherwise some tests are skipped. This is arguably not
- the right thing to do, but CRAN maintainers insist on faster tests.
- \item Unit test wrapper script runTests.R has new option --allTests to set
- the environment variable
- \item The cleanup script now also considers inst/unitTests/testRcppClass/src
- }
-}
-\section{Changes in Rcpp version 0.9.11 (2012-06-22)}{
- \itemize{
- \item New member function for vectors (and lists etc) containsElementNamed()
- which returns a boolean indicating if the given element name is present
- \item Updated the Rcpp.package.skeleton() support for Rcpp modules by
- carrying functions already present from the corresponding unit test
- which was also slightly expanded; and added more comments to the code
- \item Rcpp modules can now be loaded via loadRcppModules() from .onLoad(),
- or via loadModule("moduleName") from any R file
- \item Extended functionality to let R modify C++ clases imported via modules
- documented in help(setRcppClass)
- \item Support compilation in Cygwin thanks to a patch by Dario Buttari
- \item Extensions to the Rcpp-FAQ and the Rcpp-modules vignettes
- \item The minium version of R is now 2.15.1 which is required for some of
- the Rcpp modules support
- }
-}
-\section{Changes in Rcpp version 0.9.10 (2012-02-16)}{
- \itemize{
- \item Rearrange headers so that Rcpp::Rcout can be used by RcppArmadillo et al
- \item New Rcpp sugar function mapply (limited to two or three input vectors)
- \item Added custom version of the Rcpp sugar diff function for numeric vectors
- skipping unncesserry checks for NA
- \item Some internal code changes to reflect changes and stricter requirements
- in R CMD check in the current R-devel versions
- \item Corrected fixed-value initialization for IntegerVector (with thanks to
- Gregor Kastner for spotting this)
- \item New Rcpp-FAQ entry on simple way to set compiler option for cxxfunction
- }
-}
-\section{Changes in Rcpp version 0.9.9 (2012-12-25)}{
- \itemize{
- \item Reverting the 'int64' changes from release 0.9.8 which adversely
- affect packages using Rcpp: We will re-apply the 'int64' changes in a
- way which should cooperate more easily with 'long' and 'unsigned long'.
- \item Unit test output directory fallback changed to use Rcpp.Rcheck
- \item Conditioned two unit tests to not run on Windows where they now break
- whereas they passed before, and continue to pass on other OSs
- }
-}
-\section{Changes in Rcpp version 0.9.8 (2011-12-21)}{
- \itemize{
- \item wrap now handles 64 bit integers (int64_t, uint64_t) and containers
- of them, and Rcpp now depends on the int64 package (also on CRAN).
- This work has been sponsored by the Google Open Source Programs
- Office.
- \item Added setRcppClass() function to create extended reference classes
- with an interface to a C++ class (typically via Rcpp Module) which
- can have R-based fields and methods in addition to those from the C++.
- \item Applied patch by Jelmer Ypma which adds an output stream class
- 'Rcout' not unlike std::cout, but implemented via Rprintf to
- cooperate with R and its output buffering.
- \item New unit tests for pf(), pnf(), pchisq(), pnchisq() and pcauchy()
- \item XPtr constructor now checks for corresponding type in SEXP
- \item Updated vignettes for use with updated highlight package
- \item Update linking command for older fastLm() example using external
- Armadillo
- }
-}
-\section{Changes in Rcpp version 0.9.7 (2011-09-29)}{
- \itemize{
- \item Applied two patches kindly provided by Martyn Plummer which provide
- support for compilation on Solaris using the SunPro compiler
- \item Minor code reorganisation in which exception specifiers are removed;
- this effectively only implements a run-time (rather than compile-time)
- check and is generally seen as a somewhat depreated C++ idiom. Thanks
- to Darren Cook for alerting us to this issue.
- \item New example 'OpenMPandInline.r' in the OpenMP/ directory, showing how
- easily use OpenMP by modifying the RcppPlugin output
- \item New example 'ifelseLooped.r' showing Rcpp can accelerate loops that may
- be difficult to vectorise due to dependencies
- \item New example directory examples/Misc/ regrouping the new example as
- well as the fibonacci example added in Rcpp 0.9.6
- \item New Rcpp-FAQ example warning of lossy conversion from 64-bit long
- integer types into a 53-bit mantissa which has no clear fix yet.
- \item New unit test for accessing a non-exported function from a namespace
- }
-}
-\section{Changes in Rcpp version 0.9.6 (2011-07-26)}{
- \itemize{
- \item Added helper traits to facilitate implementation of the RcppEigen
- package: The is_eigen_base traits identifies if a class derives from
- EigenBase using SFINAE; and new dispatch layer was added to wrap() to
- help RcppEigen
- \item XPtr now accepts a second template parameter, which is a function
- taking a pointer to the target class. This allows the developper to
- supply his/her own finalizer. The template parameter has a default
- value which retains the original behaviour (calling delete on the
- pointer)
- \item New example RcppGibbs, extending Sanjog Misra's Rcpp illustration of
- Darren Wilkinson's comparison of MCMC Gibbs Sampler implementations;
- also added short timing on Normal and Gaussian RNG draws between Rcpp
- and GSL as R's rgamma() is seen to significantly slower
- \item New example on recursively computing a Fibonacci number using Rcpp and
- comparing this to R and byte-compiled R for a significant speed gain
- }
-}
-\section{Changes in Rcpp version 0.9.5 (2011-07-05)}{
- \itemize{
- \item New Rcpp-FAQ examples on using the plugin maker for inline's
- cxxfunction(), and on setting row and column names for matrices
- \item New sugar functions: mean, var, sd
- \item Minor correction and extension to STL documentation in Rcpp-quickref
- \item wrap() is now resilient to NULL pointers passed as in const char *
- \item loadRcppModules() gains a "direct" argument to expose the module instead
- of exposing what is inside it
- \item Suppress a spurious warning from R CMD check on packages created with
- Rcpp.package.skeleton(..., module=TRUE)
- \item Some fixes and improvements for Rcpp sugar function 'rlnorm()'
- \item Beginnings of new example using OpenMP and recognising user interrupts
- }
-}
-\section{Changes in Rcpp version 0.9.4 (2011-04-12)}{
- \itemize{
- \item New R function "loadRcppModules" to load Rcpp modules automatically
- from a package. This function must be called from the .onLoad function
- and works with the "RcppModules" field of the package's DESCRIPTION file
- \item The Modules example wrapped the STL std::vector received some editing
- to disambiguate some symbols the newer compilers did not like
- \item Coercing of vectors of factors is now done with an explicit callback
- to R's "as.character()" as Rf_coerceVector no longer plays along
- \item A CITATION file for the published JSS paper has been added, and
- references were added to Rcpp-package.Rd and the different vignettes
- }
-}
-\section{Changes in Rcpp version 0.9.3 (2011-04-05)}{
- \itemize{
- \item Fixed a bug in which modules code was not behaving when compiled
- twice as can easily happen with inline'ed version
- \item Exceptions code includes exception_defines.h only when g++ is 4.5 or
- younger as the file no longer exists with g++-4.6
- \item The documentation Makefile now uses the $R_HOME environment variable
- \item The documentation Makefile no longer calls clean in the all target
- \item C++ conformance issue found by clang/llvm addressed by re-ordering
- declarations in grow.h as unqualified names must be declared before
- they are used, even when used within templates
- \item The 'long long' typedef now depends on C++0x being enabled as this
- was not a feature in C++98; this suppresses a new g++-4.5 warning
- \item The Rcpp-introduction vignette was updated to the forthcoming JSS paper
- }
-}
-\section{Changes in Rcpp version 0.9.2 (2011-02-23)}{
- \itemize{
- \item The unitTest runit.Module.client.package.R is now skipped on older OS
- X releases as it triggers a bug with g++ 4.2.1 or older; OS X 10.6 is
- fine but as it no longer support ppc we try to accomodate 10.5 too
- Thanks to Simon Urbanek for pinning this down and Baptiste Auguie
- and Ken Williams for additonal testing
- \item RcppCommon.h now recognises the Intel Compiler thanks to a short
- patch by Alexey Stukalov; this turns off Cxx0x and TR1 features too
- \item Three more setup questions were added to the Rcpp-FAQ vignette
- \item One question about RcppArmadillo was added to the Rcpp-FAQ vignette
- }
-}
-\section{Changes in Rcpp version 0.9.1 (2011-02-14)}{
- \itemize{
- \item A number of internal changes to the memory allocation / protection of
- temporary objects were made---with a heartfelt "Thank You!" to both
- Doug Bates for very persistent debugging of Rcpp modules code, and to
- Luke Tierney who added additional memory allocation debugging tools
- to R-devel (which will be in R 2.13.0 and may also be in R 2.12.2)
- \item Removed another GNU Make-specific variable from src/Makevars in order
- to make the build more portable; this was noticed on FreeBSD
- \item On *BSD, do not try to compute a stack trace but provide file and
- line number (which is the same behaviour as implemented in Windows)
- \item Fixed an int conversion bug reported by Daniel Sabanes Bove on r-devel,
- added unit test as well
- \item Added unit tests for complex-typed vectors (thanks to Christian Gunning)
- \item Expanded the Rcpp-quickref vignette (with thanks to Christian Gunning)
- \item Additional examples were added to the Rcpp-FAQ vignette
- }
-}
-\section{Changes in Rcpp version 0.9.0 (2010-12-19)}{
- \itemize{
- \item The classic API was factored out into its own package RcppClassic which
- is released concurrently with this version.
- \item If an object is created but not initialized, attempting to use
- it now gives a more sensible error message (by forwarding an
- Rcpp::not_initialized exception to R).
- \item SubMatrix fixed, and Matrix types now have a nested ::Sub typedef.
- \item New unexported function SHLIB() to aid in creating a shared library on
- the command-line or in Makefile (similar to CxxFlags() / LdFlags()).
- \item Module gets a seven-argument ctor thanks to a patch from Tama Ma.
- \item The (still incomplete) QuickRef vignette has grown thanks to a patch
- by Christian Gunning.
- \item Added a sprintf template intended for logging and error messages.
- \item Date::getYear() corrected (where addition of 1900 was not called for);
- corresponding change in constructor from three ints made as well.
- \item Date() and Datetime() constructors from string received a missing
- conversion to int and double following strptime. The default format
- string for the Datetime() strptime call was also corrected.
- \item A few minor fixes throughout, see ChangeLog.
- }
-}
-\section{Changes in Rcpp version 0.8.9 (2010-11-27)}{
- \itemize{
- \item Many improvements were made in 'Rcpp modules':
- - exposing multiple constructors
- - overloaded methods
- - self-documentation of classes, methods, constructors, fields and
- functions.
- - new R function "populate" to facilitate working with modules in
- packages.
- - formal argument specification of functions.
- - updated support for Rcpp.package.skeleton.
- - constructors can now take many more arguments.
- \item The 'Rcpp-modules' vignette was updated as well and describe many
- of the new features
- \item New template class Rcpp::SubMatrix<RTYPE> and support syntax in Matrix
- to extract a submatrix:
- NumericMatrix x = ... ;
- // extract the first three columns
- SubMatrix<REALSXP> y = x( _ , Range(0,2) ) ;
- // extract the first three rows
- SubMatrix<REALSXP> y = x( Range(0,2), _ ) ;
- // extract the top 3x3 sub matrix
- SubMatrix<REALSXP> y = x( Range(0,2), Range(0,2) ) ;
- \item Reference Classes no longer require a default constructor for
- subclasses of C++ classes
- \item Consistently revert to using backticks rather than shell expansion
- to compute library file location when building packages against Rcpp
- on the default platforms; this has been applied to internal test
- packages as well as CRAN/BioC packages using Rcpp
- }
-}
-\section{Changes in Rcpp version 0.8.8 (2010-11-01)}{
- \itemize{
- \item New syntactic shortcut to extract rows and columns of a Matrix.
- x(i,_) extracts the i-th row and x(_,i) extracts the i-th column.
- \item Matrix indexing is more efficient. However, faster indexing is
- disabled if g++ 4.5.0 or later is used.
- \item A few new Rcpp operators such as cumsum, operator=(sugar)
- \item Variety of bug fixes:
- - column indexing was incorrect in some cases
- - compilation using clang/llvm (thanks to Karl Millar for the patch)
- - instantation order of Module corrected
- - POSIXct, POSIXt now correctly ordered for R 2.12.0
- }
-}
-\section{Changes in Rcpp version 0.8.7 (2010-10-15)}{
- \itemize{
- \item As of this version, Rcpp depends on R 2.12 or greater as it interfaces
- the new reference classes (see below) and also reflects the POSIXt
- class reordering both of which appeared with R version 2.12.0
- \item new Rcpp::Reference class, that allows internal manipulation of R
- 2.12.0 reference classes. The class exposes a constructor that takes
- the name of the target reference class and a field(string) method
- that implements the proxy pattern to get/set reference fields using
- callbacks to the R operators "$" and "$<-" in order to preserve the
- R-level encapsulation
- \item the R side of the preceding item allows methods to be written in R as
- per ?ReferenceClasses, accessing fields by name and assigning them
- using "<<-". Classes extracted from modules are R reference classes.
- They can be subclassed in R, and/or R methods can be defined using
- the $methods(...) mechanism.
- \item internal performance improvements for Rcpp sugar as well as an added
- 'noNA()' wrapper to omit tests for NA values -- see the included
- examples in inst/examples/convolveBenchmarks for the speedups
- \item more internal performance gains with Functions and Environments
- }
-}
-\section{Changes in Rcpp version 0.8.6 (2010-09-09)}{
- \itemize{
- \item new macro RCPP_VERSION and Rcpp_Version to allow conditional compiling
- based on the version of Rcpp
- #if defined(RCPP_VERSION) && RCPP_VERSION >= Rcpp_Version(0,8,6)
- #endif
- \item new sugar functions for statistical distributions (d-p-q-r functions)
- with distributions : unif, norm, gamma, chisq, lnorm, weibull, logis,
- f, pois, binom, t, beta.
- \item new ctor for Vector taking size and function pointer so that for example
- NumericVector( 10, norm_rand )
- generates a N(0,1) vector of size 10
- \item added binary operators for complex numbers, as well as sugar support
- \item more sugar math functions: sqrt, log, log10, exp, sin, cos, ...
- \item started new vignette Rcpp-quickref : quick reference guide of Rcpp API
- (still work in progress)
- \item various patches to comply with solaris/suncc stricter standards
- \item minor enhancements to ConvolutionBenchmark example
- \item simplified src/Makefile to no longer require GNU make; packages using
- Rcpp still do for the compile-time test of library locations
- }
-}
-\section{Changes in Rcpp version 0.8.5 (2010-07-25)}{
- \itemize{
- \item speed improvements. Vector::names, RObject::slot have been improved
- to take advantage of R API functions instead of callbacks to R
- \item Some small updates to the Rd-based documentation which now points to
- content in the vignettes. Also a small formatting change to suppress
- a warning from the development version of R.
- \item Minor changes to Date() code which may reenable SunStudio builds
- }
-}
-\section{Changes in Rcpp version 0.8.4 (2010-07-09)}{
- \itemize{
- \item new sugar vector functions: rep, rep_len, rep_each, rev, head, tail,
- diag
- \item sugar has been extended to matrices: The Matrix class now extends the
- Matrix_Base template that implements CRTP. Currently sugar functions
- for matrices are: outer, col, row, lower_tri, upper_tri, diag
- \item The unit tests have been reorganised into fewer files with one call
- each to cxxfunction() (covering multiple tests) resulting in a
- significant speedup
- \item The Date class now uses the same mktime() replacement that R uses
- (based on original code from the timezone library by Arthur Olson)
- permitting wide date ranges on all operating systems
- \item The FastLM example has been updated, a new benchmark based on the
- historical Longley data set has been added
- \item RcppStringVector now uses std::vector<std::string> internally
- \item setting the .Data slot of S4 objects did not work properly
- }
-}
-\section{Changes in Rcpp version 0.8.3 (2010-06-27)}{
- \itemize{
- \item This release adds Rcpp sugar which brings (a subset of) the R syntax
- into C++. This supports :
- - binary operators : <,>,<=,>=,==,!= between R vectors
- - arithmetic operators: +,-,*,/ between compatible R vectors
- - several functions that are similar to the R function of the same name:
- abs, all, any, ceiling, diff, exp, ifelse, is_na, lapply, pmin, pmax,
- pow, sapply, seq_along, seq_len, sign
- Simple examples :
- // two numeric vector of the same size
- NumericVector x ;
- NumericVector y ;
- NumericVector res = ifelse( x < y, x*x, -(y*y) ) ;
- // sapply'ing a C++ function
- double square( double x )\{ return x*x ; \}
- NumericVector res = sapply( x, square ) ;
- Rcpp sugar uses the technique of expression templates, pioneered by the
- Blitz++ library and used in many libraries (Boost::uBlas, Armadillo).
- Expression templates allow lazy evaluation of expressions, which
- coupled with inlining generates very efficient code, very closely
- approaching the performance of hand written loop code, and often
- much more efficient than the equivalent (vectorized) R code.
- Rcpp sugar is curently limited to vectors, future releases will
- include support for matrices with sugar functions such as outer, etc ...
- Rcpp sugar is documented in the Rcpp-sugar vignette, which contains
- implementation details.
- \item New helper function so that "Rcpp?something" brings up Rcpp help
- \item Rcpp Modules can now expose public data members
- \item New classes Date, Datetime, DateVector and DatetimeVector with proper
- 'new' API integration such as as(), wrap(), iterators, ...
- \item The so-called classic API headers have been moved to a subdirectory
- classic/ This should not affect client-code as only Rcpp.h was ever
- included.
- \item RcppDate now has a constructor from SEXP as well
- \item RcppDateVector and RcppDatetimeVector get constructors from int
- and both const / non-const operator(int i) functions
- \item New API class Rcpp::InternalFunction that can expose C++ functions
- to R without modules. The function is exposed as an S4 object of
- class C++Function
- }
-}
-\section{Changes in Rcpp version 0.8.2 (2010-06-09)}{
- \itemize{
- \item Bug-fix release for suncc compiler with thanks to Brian Ripley for
- additional testing.
- }
-}
-\section{Changes in Rcpp version 0.8.1 (2010-06-08)}{
- \itemize{
- \item This release adds Rcpp modules. An Rcpp module is a collection of
- internal (C++) functions and classes that are exposed to R. This
- functionality has been inspired by Boost.Python.
- Modules are created internally using the RCPP_MODULE macro and
- retrieved in the R side with the Module function. This is a preview
- release of the module functionality, which will keep improving until
- the Rcpp 0.9.0 release.
- The new vignette "Rcpp-modules" documents the current feature set of
- Rcpp modules.
- \item The new vignette "Rcpp-package" details the steps involved in making a
- package that uses Rcpp.
- \item The new vignette "Rcpp-FAQ" collects a number of frequently asked
- questions and answers about Rcpp.
- \item The new vignette "Rcpp-extending" documents how to extend Rcpp
- with user defined types or types from third party libraries. Based on
- our experience with RcppArmadillo
- \item Rcpp.package.skeleton has been improved to generate a package using
- an Rcpp module, controlled by the "module" argument
- \item Evaluating a call inside an environment did not work properly
- \item cppfunction has been withdrawn since the introduction of the more
- flexible cxxfunction in the inline package (0.3.5). Rcpp no longer
- depends on inline since many uses of Rcpp do not require inline at
- all. We still use inline for unit tests but this is now handled
- locally in the unit tests loader runTests.R.
- Users of the now-withdrawn function cppfunction can redefine it as:
- cppfunction <- function(...) cxxfunction( ..., plugin = "Rcpp" )
- \item Support for std::complex was incomplete and has been enhanced.
- \item The methods XPtr<T>::getTag and XPtr<T>::getProtected are deprecated,
- and will be removed in Rcpp 0.8.2. The methods tag() and prot() should
- be used instead. tag() and prot() support both LHS and RHS use.
- \item END_RCPP now returns the R Nil values; new macro VOID_END_RCPP
- replicates prior behabiour
- }
-}
-\section{Changes in Rcpp version 0.8.0 (2010-05-17)}{
- \itemize{
- \item All Rcpp headers have been moved to the inst/include directory,
- allowing use of 'LinkingTo: Rcpp'. But the Makevars and Makevars.win
- are still needed to link against the user library.
- \item Automatic exception forwarding has been withdrawn because of
- portability issues (as it did not work on the Windows platform).
- Exception forwarding is still possible but is now based on explicit
- code of the form:
- try \{
- // user code
- \} catch( std::exception& __ex__)\{
- forward_exception_to_r( __ex___ ) ;
- Alternatively, the macro BEGIN_RCPP and END_RCPP can use used to enclose
- code so that it captures exceptions and forward them to R.
- BEGIN_RCPP
- // user code
- END_RCPP
- \item new __experimental__ macros
- The macros RCPP_FUNCTION_0, ..., RCPP_FUNCTION_65 to help creating C++
- functions hiding some code repetition:
- RCPP_FUNCTION_2( int, foobar, int x, int y)\{
- return x + y ;
- The first argument is the output type, the second argument is the
- name of the function, and the other arguments are arguments of the
- C++ function. Behind the scenes, the RCPP_FUNCTION_2 macro creates an
- intermediate function compatible with the .Call interface and handles
- exceptions
- Similarly, the macros RCPP_FUNCTION_VOID_0, ..., RCPP_FUNCTION_VOID_65
- can be used when the C++ function to create returns void. The generated
- R function will return R_NilValue in this case.
- RCPP_FUNCTION_VOID_2( foobar, std::string foo )\{
- // do something with foo
- The macro RCPP_XP_FIELD_GET generates a .Call compatible function that
- can be used to access the value of a field of a class handled by an
- external pointer. For example with a class like this:
- class Foo\{
- public:
- int bar ;
- RCPP_XP_FIELD_GET( Foo_bar_get, Foo, bar ) ;
- RCPP_XP_FIELD_GET will generate the .Call compatible function called
- Foo_bar_get that can be used to retrieved the value of bar.
- The macro RCPP_FIELD_SET generates a .Call compatible function that
- can be used to set the value of a field. For example:
- RCPP_XP_FIELD_SET( Foo_bar_set, Foo, bar ) ;
- generates the .Call compatible function called "Foo_bar_set" that
- can be used to set the value of bar
- The macro RCPP_XP_FIELD generates both getter and setter. For example
- RCPP_XP_FIELD( Foo_bar, Foo, bar )
- generates the .Call compatible Foo_bar_get and Foo_bar_set using the
- macros RCPP_XP_FIELD_GET and RCPP_XP_FIELD_SET previously described
- The macros RCPP_XP_METHOD_0, ..., RCPP_XP_METHOD_65 faciliate
- calling a method of an object that is stored in an external pointer. For
- example:
- RCPP_XP_METHOD_0( foobar, std::vector<int> , size )
- creates the .Call compatible function called foobar that calls the
- size method of the std::vector<int> class. This uses the Rcpp::XPtr<
- std::vector<int> > class.
- The macros RCPP_XP_METHOD_CAST_0, ... is similar but the result of
- the method called is first passed to another function before being
- wrapped to a SEXP. For example, if one wanted the result as a double
- RCPP_XP_METHOD_CAST_0( foobar, std::vector<int> , size, double )
- The macros RCPP_XP_METHOD_VOID_0, ... are used when calling the
- method is only used for its side effect.
- RCPP_XP_METHOD_VOID_1( foobar, std::vector<int>, push_back )
- Assuming xp is an external pointer to a std::vector<int>, this could
- be called like this :
- .Call( "foobar", xp, 2L )
- \item Rcpp now depends on inline (>= 0.3.4)
- \item A new R function "cppfunction" was added which invokes cfunction from
- inline with focus on Rcpp usage (enforcing .Call, adding the Rcpp
- namespace, set up exception forwarding). cppfunction uses BEGIN_RCPP
- and END_RCPP macros to enclose the user code
- \item new class Rcpp::Formula to help building formulae in C++
- \item new class Rcpp::DataFrame to help building data frames in C++
- \item Rcpp.package.skeleton gains an argument "example_code" and can now be
- used with an empty list, so that only the skeleton is generated. It
- has also been reworked to show how to use LinkingTo: Rcpp
- \item wrap now supports containers of the following types: long, long double,
- unsigned long, short and unsigned short which are silently converted
- to the most acceptable R type.
- \item Revert to not double-quote protecting the path on Windows as this
- breaks backticks expansion used n Makevars.win etc
- \item Exceptions classes have been moved out of Rcpp classes,
- e.g. Rcpp::RObject::not_a_matrix is now Rcpp::not_a_matrix
- }
-}
-\section{Changes in Rcpp version 0.7.12 (2010-04-16)}{
- \itemize{
- \item Undo shQuote() to protect Windows path names (which may contain
- spaces) as backticks use is still broken; use of $(shell ...) works
- }
-}
-\section{Changes in Rcpp version 0.7.11 (2010-03-26)}{
- \itemize{
- \item Vector<> gains a set of templated factory methods "create" which
- takes up to 20 arguments and can create named or unnamed vectors.
- This greatly facilitates creating objects that are returned to R.
- \item Matrix now has a diag() method to create diagonal matrices, and
- a new constructor using a single int to create square matrices
- \item Vector now has a new fill() method to propagate a single value
- \item Named is no more a class but a templated function. Both interfaces
- Named(.,.) and Named(.)=. are preserved, and extended to work also on
- simple vectors (through Vector<>::create)
- \item Applied patch by Alistair Gee to make ColDatum more robust
- \item Fixed a bug in Vector that caused random behavior due to the lack of
- copy constructor in the Vector template
- }
-}
-\section{Changes in Rcpp version 0.7.10 (2010-03-15)}{
- \itemize{
- \item new class Rcpp::S4 whose constructor checks if the object is an S4
- object
- \item maximum number of templated arguments to the pairlist function, the
- DottedPair constructor, the Language constructor and the Pairlist
- constructor has been updated to 20 (was 5) and a script has been
- added to the source tree should we want to change it again
- \item use shQuote() to protect Windows path names (which may contain spaces)
- }
-}
-\section{Changes in Rcpp version 0.7.9 (2010-03-12)}{
- \itemize{
- \item Another small improvement to Windows build flags
- \item bugfix on 64 bit platforms. The traits classes (wrap_type_traits, etc)
- used size_t when they needed to actually use unsigned int
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rcpp -r 3770
More information about the Rcpp-commits
mailing list