[Rcpp-commits] r3769 - pkg/Rcpp/inst
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Sep 16 15:47:11 CEST 2012
Author: edd
Date: 2012-09-16 15:47:11 +0200 (Sun, 16 Sep 2012)
New Revision: 3769
Modified:
pkg/Rcpp/inst/NEWS
Log:
converted to .Rd
Modified: pkg/Rcpp/inst/NEWS
===================================================================
--- pkg/Rcpp/inst/NEWS 2012-09-08 19:39:00 UTC (rev 3768)
+++ pkg/Rcpp/inst/NEWS 2012-09-16 13:47:11 UTC (rev 3769)
@@ -1,1211 +1,938 @@
-0.9.14 2012-xx-yy
-
- o Added new Rcpp sugar functions trunc(), round() and signif(), as well
- as unit tests for them
-
- o 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
-
- o Corrected a typo in Module.h who now again permits use of finalizers
-
- o Small correction for (unexported) bib() function (which provides a path
- to the bibtex file that ships with Rcpp)
-
-0.9.13 2012-06-28
-
- o 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
-
- o 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
-
- o Made more regression tests conditional on the RunAllRcppTests to come
- closer to the CRAN mandate of running tests in sixty seconds
-
- o Updated unit test wrapper tests/doRUnit.R as well as unitTests/runTests.R
-
-0.9.12 2012-06-23
-
- o Corrected Rcpp::Environment class by removing (empty) ctor following
- rev3592 (on May 2) where default argument for ctor was moved
-
- o 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.
-
- o Unit test wrapper script runTests.R has new option --allTests to set
- the environment variable
-
- o The cleanup script now also considers inst/unitTests/testRcppClass/src
-
-0.9.11 2012-06-22
-
- o New member function for vectors (and lists etc) containsElementNamed()
- which returns a boolean indicating if the given element name is present
-
- o 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
-
- o Rcpp modules can now be loaded via loadRcppModules() from .onLoad(),
- or via loadModule("moduleName") from any R file
-
- o Extended functionality to let R modify C++ clases imported via modules
- documented in help(setRcppClass)
-
- o Support compilation in Cygwin thanks to a patch by Dario Buttari
-
- o Extensions to the Rcpp-FAQ and the Rcpp-modules vignettes
-
- o The minium version of R is now 2.15.1 which is required for some of
- the Rcpp modules support
-
-0.9.10 2012-02-16
-
- o Rearrange headers so that Rcpp::Rcout can be used by RcppArmadillo et al
-
- o New Rcpp sugar function mapply (limited to two or three input vectors)
-
- o Added custom version of the Rcpp sugar diff function for numeric vectors
- skipping unncesserry checks for NA
-
- o Some internal code changes to reflect changes and stricter requirements
- in R CMD check in the current R-devel versions
-
- o Corrected fixed-value initialization for IntegerVector (with thanks to
- Gregor Kastner for spotting this)
-
- o New Rcpp-FAQ entry on simple way to set compiler option for cxxfunction
-
-0.9.9 2012-12-25
-
- o 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'.
-
- o Unit test output directory fallback changed to use Rcpp.Rcheck
-
- o Conditioned two unit tests to not run on Windows where they now break
- whereas they passed before, and continue to pass on other OSs
-
-0.9.8 2011-12-21
-
- o 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.
-
- o 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++.
-
- o 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.
-
- o New unit tests for pf(), pnf(), pchisq(), pnchisq() and pcauchy()
-
- o XPtr constructor now checks for corresponding type in SEXP
-
- o Updated vignettes for use with updated highlight package
-
- o Update linking command for older fastLm() example using external
- Armadillo
-
-0.9.7 2011-09-29
-
- o Applied two patches kindly provided by Martyn Plummer which provide
- support for compilation on Solaris using the SunPro compiler
-
- o 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.
-
- o New example 'OpenMPandInline.r' in the OpenMP/ directory, showing how
- easily use OpenMP by modifying the RcppPlugin output
-
- o New example 'ifelseLooped.r' showing Rcpp can accelerate loops that may
- be difficult to vectorise due to dependencies
-
- o New example directory examples/Misc/ regrouping the new example as
- well as the fibonacci example added in Rcpp 0.9.6
-
- o 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.
-
- o New unit test for accessing a non-exported function from a namespace
-
-0.9.6 2011-07-26
-
- o 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
-
- o 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)
-
- o 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
-
- o New example on recursively computing a Fibonacci number using Rcpp and
- comparing this to R and byte-compiled R for a significant speed gain
-
-0.9.5 2011-07-05
-
- o New Rcpp-FAQ examples on using the plugin maker for inline's
- cxxfunction(), and on setting row and column names for matrices
-
- o New sugar functions: mean, var, sd
-
- o Minor correction and extension to STL documentation in Rcpp-quickref
-
- o wrap() is now resilient to NULL pointers passed as in const char *
-
- o loadRcppModules() gains a "direct" argument to expose the module instead
- of exposing what is inside it
-
- o Suppress a spurious warning from R CMD check on packages created with
- Rcpp.package.skeleton(..., module=TRUE)
-
- o Some fixes and improvements for Rcpp sugar function 'rlnorm()'
-
- o Beginnings of new example using OpenMP and recognising user interrupts
-
-0.9.4 2011-04-12
-
- o 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
-
- o The Modules example wrapped the STL std::vector received some editing
- to disambiguate some symbols the newer compilers did not like
-
- o Coercing of vectors of factors is now done with an explicit callback
- to R's "as.character()" as Rf_coerceVector no longer plays along
-
- o A CITATION file for the published JSS paper has been added, and
- references were added to Rcpp-package.Rd and the different vignettes
-
-0.9.3 2011-04-05
-
- o Fixed a bug in which modules code was not behaving when compiled
- twice as can easily happen with inline'ed version
-
- o Exceptions code includes exception_defines.h only when g++ is 4.5 or
- younger as the file no longer exists with g++-4.6
-
- o The documentation Makefile now uses the $R_HOME environment variable
-
- o The documentation Makefile no longer calls clean in the all target
-
- o 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
-
- o 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
-
- o The Rcpp-introduction vignette was updated to the forthcoming JSS paper
-
-0.9.2 2011-02-23
-
- o 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
-
- o RcppCommon.h now recognises the Intel Compiler thanks to a short
- patch by Alexey Stukalov; this turns off Cxx0x and TR1 features too
-
- o Three more setup questions were added to the Rcpp-FAQ vignette
-
- o One question about RcppArmadillo was added to the Rcpp-FAQ vignette
-
-0.9.1 2011-02-14
-
- o 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)
-
- o Removed another GNU Make-specific variable from src/Makevars in order
- to make the build more portable; this was noticed on FreeBSD
-
- o 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)
-
- o Fixed an int conversion bug reported by Daniel Sabanes Bove on r-devel,
- added unit test as well
-
- o Added unit tests for complex-typed vectors (thanks to Christian Gunning)
-
- o Expanded the Rcpp-quickref vignette (with thanks to Christian Gunning)
-
- o Additional examples were added to the Rcpp-FAQ vignette
-
-0.9.0 2010-12-19
-
- o The classic API was factored out into its own package RcppClassic which
- is released concurrently with this version.
-
- o 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).
-
- o SubMatrix fixed, and Matrix types now have a nested ::Sub typedef.
-
- o New unexported function SHLIB() to aid in creating a shared library on
- the command-line or in Makefile (similar to CxxFlags() / LdFlags()).
-
- o Module gets a seven-argument ctor thanks to a patch from Tama Ma.
-
- o The (still incomplete) QuickRef vignette has grown thanks to a patch
- by Christian Gunning.
-
- o Added a sprintf template intended for logging and error messages.
-
- o Date::getYear() corrected (where addition of 1900 was not called for);
- corresponding change in constructor from three ints made as well.
-
- o 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.
-
- o A few minor fixes throughout, see ChangeLog.
-
-0.8.9 2010-11-27
-
- o 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.
-
- o The 'Rcpp-modules' vignette was updated as well and describe many
- of the new features
-
- o 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) ) ;
-
- o Reference Classes no longer require a default constructor for
- subclasses of C++ classes
-
- o 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
-
-0.8.8 2010-11-01
-
- o 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.
-
- o Matrix indexing is more efficient. However, faster indexing is
- disabled if g++ 4.5.0 or later is used.
-
- o A few new Rcpp operators such as cumsum, operator=(sugar)
-
- o 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
-
-0.8.7 2010-10-15
-
- o 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
-
- o 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
-
- o 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.
-
- o 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
-
- o more internal performance gains with Functions and Environments
-
-0.8.6 2010-09-09
-
- o 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
-
- o 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.
-
- o 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
-
- o added binary operators for complex numbers, as well as sugar support
-
- o more sugar math functions: sqrt, log, log10, exp, sin, cos, ...
-
- o started new vignette Rcpp-quickref : quick reference guide of Rcpp API
- (still work in progress)
-
- o various patches to comply with solaris/suncc stricter standards
-
- o minor enhancements to ConvolutionBenchmark example
-
- o simplified src/Makefile to no longer require GNU make; packages using
- Rcpp still do for the compile-time test of library locations
-
-0.8.5 2010-07-25
-
- o speed improvements. Vector::names, RObject::slot have been improved
- to take advantage of R API functions instead of callbacks to R
-
- o 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.
-
- o Minor changes to Date() code which may reenable SunStudio builds
-
-0.8.4 2010-07-09
-
- o new sugar vector functions: rep, rep_len, rep_each, rev, head, tail,
- diag
-
- o 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
-
- o The unit tests have been reorganised into fewer files with one call
- each to cxxfunction() (covering multiple tests) resulting in a
- significant speedup
-
- o 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
-
- o The FastLM example has been updated, a new benchmark based on the
- historical Longley data set has been added
-
- o RcppStringVector now uses std::vector<std::string> internally
-
- o setting the .Data slot of S4 objects did not work properly
-
-0.8.3 2010-06-27
-
- o 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.
-
- o New helper function so that "Rcpp?something" brings up Rcpp help
-
- o Rcpp Modules can now expose public data members
-
- o New classes Date, Datetime, DateVector and DatetimeVector with proper
- 'new' API integration such as as(), wrap(), iterators, ...
-
- o 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.
-
- o RcppDate now has a constructor from SEXP as well
-
- o RcppDateVector and RcppDatetimeVector get constructors from int
- and both const / non-const operator(int i) functions
-
- o 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
-
-0.8.2 2010-06-09
-
- o Bug-fix release for suncc compiler with thanks to Brian Ripley for
- additional testing.
-
-0.8.1 2010-06-08
-
- o 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.
-
- o The new vignette "Rcpp-package" details the steps involved in making a
- package that uses Rcpp.
-
- o The new vignette "Rcpp-FAQ" collects a number of frequently asked
- questions and answers about Rcpp.
-
- o 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
-
- o Rcpp.package.skeleton has been improved to generate a package using
- an Rcpp module, controlled by the "module" argument
-
- o Evaluating a call inside an environment did not work properly
-
- o 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" )
-
- o Support for std::complex was incomplete and has been enhanced.
-
- o 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.
-
- o END_RCPP now returns the R Nil values; new macro VOID_END_RCPP
- replicates prior behabiour
-
-0.8.0 2010-05-17
-
- o 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.
-
- o 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
-
- o 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 )
-
- o Rcpp now depends on inline (>= 0.3.4)
-
- o 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
-
- o new class Rcpp::Formula to help building formulae in C++
-
- o new class Rcpp::DataFrame to help building data frames in C++
-
- o 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
-
- o 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.
-
- o Revert to not double-quote protecting the path on Windows as this
- breaks backticks expansion used n Makevars.win etc
-
- o Exceptions classes have been moved out of Rcpp classes,
- e.g. Rcpp::RObject::not_a_matrix is now Rcpp::not_a_matrix
-
-0.7.12 2010-04-16
-
- o Undo shQuote() to protect Windows path names (which may contain
- spaces) as backticks use is still broken; use of $(shell ...) works
-
-0.7.11 2010-03-26
-
- o 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.
-
- o Matrix now has a diag() method to create diagonal matrices, and
- a new constructor using a single int to create square matrices
-
- o Vector now has a new fill() method to propagate a single value
-
- o 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)
-
- o Applied patch by Alistair Gee to make ColDatum more robust
-
- o Fixed a bug in Vector that caused random behavior due to the lack of
- copy constructor in the Vector template
-
-0.7.10 2010-03-15
-
- o new class Rcpp::S4 whose constructor checks if the object is an S4
- object
-
- o 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
-
- o use shQuote() to protect Windows path names (which may contain spaces)
-
-0.7.9 2010-03-12
-
- o Another small improvement to Windows build flags
-
- o bugfix on 64 bit platforms. The traits classes (wrap_type_traits, etc)
- used size_t when they needed to actually use unsigned int
-
- o fixed pre gcc 4.3 compatibility. The trait class that was used to
- identify if a type is convertible to another had too many false
- positives on pre gcc 4.3 (no tr1 or c++0x features). fixed by
- implementing the section 2.7 of "Modern C++ Design" book.
-
-0.7.8 2010-03-09
-
- o All vector classes are now generated from the same template class
- Rcpp::Vector<int RTYPE> where RTYPE is one of LGLSXP, RAWSXP, STRSXP,
- INTSXP, REALSXP, CPLXSXP, VECSXP and EXPRSXP. typedef are still
- available : IntegerVector, ... All vector classes gain methods
- inspired from the std::vector template : push_back, push_front,
- erase, insert
-
- o New template class Rcpp::Matrix<RTYPE> deriving from
- Rcpp::Vector<RTYPE>. These classes have the same functionality
- as Vector but have a different set of constructors which checks
- that the input SEXP is a matrix. Matrix<> however does/can not
- guarantee that the object will allways be a matrix. typedef
- are defined for convenience: Matrix<INTSXP> is IntegerMatrix, etc...
-
- o New class Rcpp::Row<int RTYPE> that represents a row of a matrix
- of the same type. Row contains a reference to the underlying
- Vector and exposes a nested iterator type that allows use of
- STL algorithms on each element of a matrix row. The Vector class
- gains a row(int) method that returns a Row instance. Usage
- examples are available in the runit.Row.R unit test file
-
- o New class Rcpp::Column<int RTYPE> that represents a column of a
- matrix. (similar to Rcpp::Row<int RTYPE>). Usage examples are
- available in the runit.Column.R unit test file
-
- o The Rcpp::as template function has been reworked to be more
- generic. It now handles more STL containers, such as deque and
- list, and the genericity can be used to implement as for more
- types. The package RcppArmadillo has examples of this
-
- o new template class Rcpp::fixed_call that can be used in STL algorithms
- such as std::generate.
-
- o RcppExample et al have been moved to a new package RcppExamples;
- src/Makevars and src/Makevars.win simplified accordingly
-
- o New class Rcpp::StringTransformer and helper function
- Rcpp::make_string_transformer that can be used to create a function
- that transforms a string character by character. For example
- Rcpp::make_string_transformer(tolower) transforms each character
- using tolower. The RcppExamples package has an example of this.
-
[TRUNCATED]
To get the complete diff run:
svnlook diff /svnroot/rcpp -r 3769
More information about the Rcpp-commits
mailing list