https://github.com/cran/Rcpp
Raw File
Tip revision: 51c6282356d62e4d4647c8b47630accf5d9f6e5e authored by Dirk Eddelbuettel on 14 October 2012, 09:12:33 UTC
version 0.9.15
Tip revision: 51c6282
TODO

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
    	
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    
back to top