From edd at debian.org  Thu Feb 17 20:14:29 2011
From: edd at debian.org (Dirk Eddelbuettel)
Date: Thu, 17 Feb 2011 13:14:29 -0600
Subject: [Rd] Newbie Rccp module question. "Failed to initialize
	module	pointer"???
In-Reply-To: <798847.76881.qm@web39321.mail.mud.yahoo.com>
References: <798847.76881.qm@web39321.mail.mud.yahoo.com>
Message-ID: <19805.29589.842345.489802@max.nulle.part>


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



[Rd] Newbie Rccp module question. "Failed to initialize module pointer"???
Dirk Eddelbuettel