[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