File: TODO

package info (click to toggle)
rcpp 0.11.3-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 9,948 kB
  • ctags: 16,427
  • sloc: ansic: 42,692; cpp: 34,078; makefile: 32; sh: 21
file content (133 lines) | stat: -rw-r--r-- 4,022 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133

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

    o   DataFrame::create(Named("a")=b, Named("b")=b) fails with
        NumericVectors

Documentation

    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   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
        
    o   Vector::resize    

Modules 
        
    o   Class inheritance. Reflect C++ inheritance at the R level. 
        
Syntactic sugar

    o	logical indexing, ie NumericVector( LogicalVector ) 

    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 	crossprod
	
    o	Vector * Matrix, Matrix * Matrix

    o   operator% 
    
    o   operator/ needs to handle the case of division by 0

    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   Add unit tests 

    o   Add random = false parameter to Rcpp::export once we support parsing
        key/value pairs in attribute parameters

    o   Rcpp.package.skeleton should look for Rcpp::depends in cpp_files
        and call inline plugins, etc. as necessary to create a package
        that can build the cpp file(s). Note that packages exporting plugins
        (e.g. Eigen, Armadillo) don't currently provide custom Makevars
        so this won't quite work for those packages.

    o   Detect useDynLib .registration = TRUE and in that case emit .Call
        wrappers as symbols rather than strings w/ PACKAGE =

    o   Solution for the problem of sharing/propagating typedefs to RcppExports 

    o   Allow use of 'inline' keyword on exported functions

    o   Allow sourceCpp to build an entire directory

    o   Consider allowing local includes in sourceCpp (but compilation cache
        must pay mind to any local includes)

    o   Support persistence of sourceCpp created functions across sessions
        (either via long-lived temp dir or via environment persistence)

    o   Additional high-level mechanism for specifying additional build
        configuration (perhaps cxxflags and libs attributes)

    o   Verify whether sourceCpp still needs to check for spaces in the path
        of source file names on Windows

    o   Consider adding -Wall and -Wpedantic for sourceCpp builds


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