Nathan,

Two more comments. First, I am not sure you can even do what you did.  When I
call Rcpp.armadillo.package() as (where I omit the R file argument -- no
point including a file loading inline in a package, or redefining these
functions)

  
RcppArmadillo.package.skeleton(name='inlineExample',list=c('plus.two.cpp','plus.two.r'))

I get 

R> 
RcppArmadillo.package.skeleton(name='inlineExample',list=c('plus.two.cpp','plus.two.r'))
Creating directories ...
Creating DESCRIPTION ...
Creating NAMESPACE ...
Creating Read-and-delete-me ...
Saving functions and data ...
Making help files ...
Done.
Further steps are described in './inlineExample/Read-and-delete-me'.

Adding RcppArmadillo settings
 >> added Depends: Rcpp, RcppArmadillo
 >> added LinkingTo: Rcpp, RcppArmadillo
 >> added useDynLib directive to NAMESPACE
 >> added Makevars file with Rcpp settings
 >> added Makevars.win file with RcppArmadillo settings
 >> added example header file using Rcpp/RcppArmadillo
 >> added example src file using armadillo classes
 >> added example R file calling the C++ example
Warning message:
In dump(item, file = file.path(code_dir, sprintf("%s.R", list0[item]))) :
  deparse of an S4 object will not be source()able
R> 


indicating the result from cxxfunction() will not be representable. And
indeed:

edd@max:/tmp$ R CMD INSTALL inlineExample
* installing to library ‘/usr/local/lib/R/site-library’
* installing *source* package ‘inlineExample’ ...
** libs
ccache g++-4.6 -I/usr/share/R/include -DNDEBUG   
-I"/usr/local/lib/R/site-library/Rcpp/include" 
-I"/usr/local/lib/R/site-library/RcppArmadillo/include"   -fpic  -g -O0 -Wall 
-c rcpparma_hello_world.cpp -o rcpparma_hello_world.o
g++-4.6 -shared -o inlineExample.so rcpparma_hello_world.o 
-L/usr/local/lib/R/site-library/Rcpp/lib -lRcpp 
-Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -llapack -lblas -lgfortran 
-lm -lquadmath -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/inlineExample/libs
** R
Error in parse(outFile) : 3:21: unexpected '<'
2: structure(function (UmatrixR) 
3: .Primitive(".Call")(<
                      ^
ERROR: unable to collate and parse R files for package ‘inlineExample’
* removing ‘/usr/local/lib/R/site-library/inlineExample’
edd@max:/tmp$ 

That is is simply not supported. You have to subscribe your inline'd object
by hand.

Second, and as for the manual page leading to an error: we can reproduce that
via

  package.skeleton(name='pkgskelExample',list=c('plus.two.r'))

which is free of any Rcpp-isms.  So this appears to be "simply" a bug in R.

Dirk

-- 
Dirk Eddelbuettel | [email protected] | http://dirk.eddelbuettel.com  
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to