Andre Zege
2011-Feb-17 18:29 UTC
[Rd] Newbie Rccp module question. "Failed to initialize module pointer"???
Hi all. I started looking at Rcpp, which looks pretty great, actually. At the
moment just trying to compile a module to get a feel how it all works without
fully understanding how all the pieces fit together.
Basically, i took the first example from Rcpp modules vignette:
fun.cpp
========================
#include <Rcpp.h>
#include <math.h>
using namespace Rcpp;
double norm(double x, double y){
return sqrt(x*x+y*y);
}
RCPP_MODULE(mod){
function("norm", &norm);
}
==========================
I then run Rcpp.package.skeleton("mypackage"), put fun.cpp in
mypackage/src and
did
R CMD INSTALL mypackage, which seemed to compile mypackage.so OK. However, when
i am trying to use module, i get error message. Namely, after i run R and do
>library("Rcpp")
>library("mypackage")
> mod<-Module("mod")
>mod$norm(3,4)
i get the following
Error in Module(module, mustStart = TRUE) :
Failed to initialize module pointer: Error in
FUN("_rcpp_module_boot_mod"[[1L]], ...): no such symbol
_rcpp_module_boot_mod in
package .GlobalEnv
I am pretty sure my error is a pretty obvious one, could someone give me a
pointer on what to do differently or where to look for reference. Literal search
for the error message doesn't bring anything useful.
Dirk Eddelbuettel
2011-Feb-17 19:14 UTC
[Rd] Newbie Rccp module question. "Failed to initialize module pointer"???
Hi Andre,
Please consider posting on rcpp-devel for Rcpp-related questions.
On 17 February 2011 at 10:29, Andre Zege wrote:
| Hi all. I started looking at Rcpp, which looks pretty great, actually. At the
| moment just trying to compile a module to get a feel how it all works without
| fully understanding how all the pieces fit together.
|
|
| Basically, i took the first example from Rcpp modules vignette:
|
| fun.cpp
| ========================
| #include <Rcpp.h>
| #include <math.h>
|
| using namespace Rcpp;
|
| double norm(double x, double y){
| return sqrt(x*x+y*y);
| }
|
| RCPP_MODULE(mod){
| function("norm", &norm);
| }
| ==========================
|
| I then run Rcpp.package.skeleton("mypackage"), put fun.cpp in
mypackage/src and
| did
|
| R CMD INSTALL mypackage, which seemed to compile mypackage.so OK. However,
when
| i am trying to use module, i get error message. Namely, after i run R and do
|
| >library("Rcpp")
| >library("mypackage")
| > mod<-Module("mod")
You may want to try
mod <- new( mod )
bdtMod <- Module( "bdt" ) # get the module code
bdt <- new( bdtMod$date ) # date class default
constructor for reference instance
| >mod$norm(3,4)
|
| i get the following
|
| Error in Module(module, mustStart = TRUE) :
| Failed to initialize module pointer: Error in
| FUN("_rcpp_module_boot_mod"[[1L]], ...): no such symbol
_rcpp_module_boot_mod in
| package .GlobalEnv
Hm. Not sure what is going there. I can run it via inline as a quick test:
R> inc <- '
+ double norm(double x, double y){
+ return sqrt(x*x+y*y);
+ }
+
+ RCPP_MODULE(mod){
+ function("norm", &norm);
+ }
+ '
R> fx <- cxxfunction( signature(), "" , include = inc, plugin =
"Rcpp" )
R> mod <- Module( "mod", getDynLib(fx) )
R> mod$norm(3,4)
[1] 5
R> mod
Rcpp module 'mod'
1 functions:
norm : 2 arguments
0 classes :
R>
| I am pretty sure my error is a pretty obvious one, could someone give me a
| pointer on what to do differently or where to look for reference. Literal
search
| for the error message doesn't bring anything useful.
What is your version? What is your OS?
We just released Rcpp 0.9.1 a few days ago so I have been running a lot of
tests some of which include building and loading modules. This "should
have
worked" for you.
Again, follow-ups on rcpp-devel which I'll CC will be appreciated. You'd
have
to sign up there to post.
Thanks, Dirk
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
A Zege
2011-Mar-03 01:59 UTC
[Rd] Newbie Rccp module question. "Failed to initialize module pointer"???
Dirk, thanks for your reply. I posted my answer right away and went on vacation. My post was pending since then. Still cannot post, so I opened another profile -- maybe this time it gets through. To answer your questions, I run R-2.12.1 on 64 bit RedHat Linux on Xeon machine. What seems odd that the error message i am getting refers to .GlobalEnv package. The symbol it is looking for, _rcpp_module_boot_mod, is in shared library for my package, i checked it with nm. Is there any doc on how modules are implemented? -- View this message in context: http://r.789695.n4.nabble.com/Newbie-Rccp-module-question-Failed-to-initialize-module-pointer-tp3311388p3332652.html Sent from the R devel mailing list archive at Nabble.com.