[Rcpp-commits] r3969 - pkg/Rcpp
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Wed Nov 14 21:37:35 CET 2012
Author: jjallaire
Date: 2012-11-14 21:37:35 +0100 (Wed, 14 Nov 2012)
New Revision: 3969
Modified:
pkg/Rcpp/TODO
Log:
add todo for windows/posix source cpp hook consistency
Modified: pkg/Rcpp/TODO
===================================================================
--- pkg/Rcpp/TODO 2012-11-14 16:42:58 UTC (rev 3968)
+++ pkg/Rcpp/TODO 2012-11-14 20:37:35 UTC (rev 3969)
@@ -1,154 +1,157 @@
-
-Current active misfeatures
-
- o Rcpp.package.skeleton() does not work with supplied functions,
- eg Rcpp.package.skeleton("foo", list=c("funA", "funB")) ends
- in error.
-
- o Sugar ops unit tests on +, -, ... need double, fail with int
-
-Current inactive misfeatures
-
- o Bugs found by Doug when using -ltcmalloc from the Google
- Performance ToolsOne:
- - Rcpp::Dimension tickled from Rcpp::Matrix
- - Rcpp::Function and eval
- Both should be tickleable using the one-but-last version of
- minqa and an R-devel version built with --enable-strict-barrier
-
- Update by DE: Cannot replicate this on my Linux box
-
- o Bob Carpenter post to rcpp-devel on Mar 23 with Rcpp modules,
- freshly generated from skeleton, breaking under 64 bit OS X
- _And_ while this works for me on R 2.14.2 on 64 bit Linux, it
- also breaks for me with R-devel and does not build:
- ** testing if installed package can be loaded
- Error : .onLoad failed in loadNamespace() for 'mypkg2', details:
- call: value[[3L]](cond)
- error: failed to load module yada from package mypkg2
- no binding for "World"
- Error: loading failed
-
- Update by DE: Bob now says this may be local, so let's disregard.
-
-Documentation
-
- o Glenn Lawyer post to rcpp-devel on Mar 14 with Rcpp modules patch
-
- o Add a vignette about Rcpp sugar [in progress]
-
- o Finish the quickref vignette
-
- o Maybe a vignette about stats functions
-
- o Add a vignette about the API
-
-API
-
- o Rcpp::Factor and Rcpp::Ordered
-
- o const operators, as requested on Rcpp-devel:
- http://permalink.gmane.org/gmane.comp.lang.r.rcpp/494
-
- o Fast indexing and g++ 4.5.0 or later: open issue of why this compiler
- gets upset when the previous version(s) coped just fine
-
-Modules
-
- o Class inheritance. If we have Foo and Bar : public Foo, and we expose
- both Foo and Bar to R, R level class Bar should enjoy methods of Foo
- and the S4 inheritance should reflect the C++ level inheritance
-
-Syntactic sugar
-
- o recycling : binary operators and math functions of 2 or more arguments
- need to recycle their arguments.
-
- o not sure rep should be lazy, i.e. rep( x, 4 ) fetches x[i] 4 times,
- maybe we should use LazyVector like in outer to somehow cache the
- result when it is judged expensive to calculate
-
- o The current impl of "diff" might cause problems (e.g. with ifelse) due to
- laziness, it is probably best to not make it lazy
-
- o crossprod
-
- o SUGAR_MATH: is there overhead in having the function pointer, should
- the macro generate code that statically calls the function ? It would
- probably be harder to write/debug
-
- o Vector * Matrix, Matrix * Matrix
-
- o duplicated, unique, count, sum
-
- o operator%
-
- o operator/ needs to handle the case of division by 0
-
- o min, max with specialization of the binary operators, so that we can do
- things like this lazily:
-
- min( x ) < 4
-
- o matrix functions : apply
-
- o for character vectors: nchar, grepl, sub, gsub
-
- o Compound operators: ++,--,+=, -=, ...
-
- o other statistical distribution functions :
-
- multinom : this only has dmultinom which is handled in R, so maybe we can
- skip it
-
- signrank : has the weird call to .C( "signrank_free" ), need to understand that
-
- wilcox : has the weird call to .C( "wilcox_free" ), need to understand that
-
- tukey : only has p and q, no r or d
-
- o other random generators:
-
- rmultinom : tricky because it generates a matrix
-
- rnbeta : the R version is implemented in R (not in C),
- should we still have it in Rcpp in compile code ?
-
- rnf : idem
-
- rnt : idem
-
-Attributes
-
- o Allow externally specified build directory for sourceCpp (to support
- caching across R sessions)
-
- o Proactively detect types that can't be handled by as/wrap and print
- a clearer error message
-
- o Enhance Rcpp.package.skeleton to accept a source file with an
- Rcpp::depends attribute and do the right thing (use inline plugins
- to get the right Makevars, etc.)
-
- o Mechanism for users to include additional types and classes
- in header generated by Rcpp::interfaces
-
- o Add unit tests
-
- o Mechanism for specifying default values for exported R functions
- (Rcpp::defaults attribute?)
-
- o onBuildCompleted hook should pass succeeded = false if the loading
- of the dynamic library fails
-
- o Typechecking on CppFunction calls so that seg-faults don't occur
- when passing incorrect types
-
-Testing
-
- o all r* functions : rnorm, etc ...
-
- o many dpq functions have not been tested yet
-
- o new autogenerated sugar functions: cos, acosh, atan, cos, cosh, log,
- log10, sqrt, sin, sinh, tan, tanh
+
+Current active misfeatures
+
+ o Rcpp.package.skeleton() does not work with supplied functions,
+ eg Rcpp.package.skeleton("foo", list=c("funA", "funB")) ends
+ in error.
+
+ o Sugar ops unit tests on +, -, ... need double, fail with int
+
+Current inactive misfeatures
+
+ o Bugs found by Doug when using -ltcmalloc from the Google
+ Performance ToolsOne:
+ - Rcpp::Dimension tickled from Rcpp::Matrix
+ - Rcpp::Function and eval
+ Both should be tickleable using the one-but-last version of
+ minqa and an R-devel version built with --enable-strict-barrier
+
+ Update by DE: Cannot replicate this on my Linux box
+
+ o Bob Carpenter post to rcpp-devel on Mar 23 with Rcpp modules,
+ freshly generated from skeleton, breaking under 64 bit OS X
+ _And_ while this works for me on R 2.14.2 on 64 bit Linux, it
+ also breaks for me with R-devel and does not build:
+ ** testing if installed package can be loaded
+ Error : .onLoad failed in loadNamespace() for 'mypkg2', details:
+ call: value[[3L]](cond)
+ error: failed to load module yada from package mypkg2
+ no binding for "World"
+ Error: loading failed
+
+ Update by DE: Bob now says this may be local, so let's disregard.
+
+Documentation
+
+ o Glenn Lawyer post to rcpp-devel on Mar 14 with Rcpp modules patch
+
+ o Add a vignette about Rcpp sugar [in progress]
+
+ o Finish the quickref vignette
+
+ o Maybe a vignette about stats functions
+
+ o Add a vignette about the API
+
+API
+
+ o Rcpp::Factor and Rcpp::Ordered
+
+ o const operators, as requested on Rcpp-devel:
+ http://permalink.gmane.org/gmane.comp.lang.r.rcpp/494
+
+ o Fast indexing and g++ 4.5.0 or later: open issue of why this compiler
+ gets upset when the previous version(s) coped just fine
+
+Modules
+
+ o Class inheritance. If we have Foo and Bar : public Foo, and we expose
+ both Foo and Bar to R, R level class Bar should enjoy methods of Foo
+ and the S4 inheritance should reflect the C++ level inheritance
+
+Syntactic sugar
+
+ o recycling : binary operators and math functions of 2 or more arguments
+ need to recycle their arguments.
+
+ o not sure rep should be lazy, i.e. rep( x, 4 ) fetches x[i] 4 times,
+ maybe we should use LazyVector like in outer to somehow cache the
+ result when it is judged expensive to calculate
+
+ o The current impl of "diff" might cause problems (e.g. with ifelse) due to
+ laziness, it is probably best to not make it lazy
+
+ o crossprod
+
+ o SUGAR_MATH: is there overhead in having the function pointer, should
+ the macro generate code that statically calls the function ? It would
+ probably be harder to write/debug
+
+ o Vector * Matrix, Matrix * Matrix
+
+ o duplicated, unique, count, sum
+
+ o operator%
+
+ o operator/ needs to handle the case of division by 0
+
+ o min, max with specialization of the binary operators, so that we can do
+ things like this lazily:
+
+ min( x ) < 4
+
+ o matrix functions : apply
+
+ o for character vectors: nchar, grepl, sub, gsub
+
+ o Compound operators: ++,--,+=, -=, ...
+
+ o other statistical distribution functions :
+
+ multinom : this only has dmultinom which is handled in R, so maybe we can
+ skip it
+
+ signrank : has the weird call to .C( "signrank_free" ), need to understand that
+
+ wilcox : has the weird call to .C( "wilcox_free" ), need to understand that
+
+ tukey : only has p and q, no r or d
+
+ o other random generators:
+
+ rmultinom : tricky because it generates a matrix
+
+ rnbeta : the R version is implemented in R (not in C),
+ should we still have it in Rcpp in compile code ?
+
+ rnf : idem
+
+ rnt : idem
+
+Attributes
+
+ o Allow externally specified build directory for sourceCpp (to support
+ caching across R sessions)
+
+ o Proactively detect types that can't be handled by as/wrap and print
+ a clearer error message
+
+ o Enhance Rcpp.package.skeleton to accept a source file with an
+ Rcpp::depends attribute and do the right thing (use inline plugins
+ to get the right Makevars, etc.)
+
+ o Mechanism for users to include additional types and classes
+ in header generated by Rcpp::interfaces
+
+ o Add unit tests
+
+ o Mechanism for specifying default values for exported R functions
+ (Rcpp::defaults attribute?)
+
+ o onBuildCompleted hook should pass succeeded = false if the loading
+ of the dynamic library fails
+
+ o onBuildCompleted hook should join output lines for API
+ consistency between windows and posix
+
+ o Typechecking on CppFunction calls so that seg-faults don't occur
+ when passing incorrect types
+
+Testing
+
+ o all r* functions : rnorm, etc ...
+
+ o many dpq functions have not been tested yet
+
+ o new autogenerated sugar functions: cos, acosh, atan, cos, cosh, log,
+ log10, sqrt, sin, sinh, tan, tanh
More information about the Rcpp-commits
mailing list