On 10/04/2013 2:25 PM, brian avants wrote:
hi simon

thank you for your questions ---- answers here:

I won't answer your question directly but some suggestions:
> a) does adding PACKAGE="ANTsR" to .Call change anything? (It should really
> be there if you are using strings as names)
>

this does change things .... for instance, this works:

library(ANTsR)
filename<-getANTsRData('r16')
.Call("antsImageRead", filename,'double',2) #  Succeeds!
.Call("antsImageRead", filename,'double',2,PACKAGE=ANTsR) #  Fails!
# Error in .Call("antsImageRead", filename, "double", 2, PACKAGE = "ANTsR")
:
#  "antsImageRead" not available for .Call() for package "ANTsR"

That makes it look as though it is finding that entry point somewhere other than in the ANTsR.{so|dll} file installed with the package.

the problem is when we call this function:

antsImageRead <- function( filename , dimension , pixeltype = "float" )
{
     rval <- (.Call("antsImageRead", filename, pixeltype, dimension))
     return(rval)
}

That's the one where you should be using the PACKAGE declaration.


the we get the error   antsImageRead not resolved from current namespace ,
e.g.:

> antsImageRead(filename,2)
Error in .Call("antsImageRead", filename, pixeltype, dimension) :
   "antsImageRead" not resolved from current namespace (ANTsR)
>


b) you may want to consider use the more efficient registration - either
> explicit or in NAMESPACE - so in your case you could use
> NAMESPACE: useDynLib(ANTsR, antsImageRead, ...)
> foo.R: .Call(antsImageRead, ...)
>

yes - we have all of our shared libraries registered in the NAMESPACE file
e.g.

useDynLib(libRantsImageRead)

But this doesn't register the entry point. List it explicitly, and it will create an object called antsImageRead in the package namespace that has entry point information.

Duncan Murdoch

etcetera ....

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to