Dear all, I am puzzled at the behaviour of is.loaded() when a dyn.load() call to a a FORTRAN shared library is included in a file to be sourced. A reproducible example is the following:
1. the attached fortran subroutine try_it.f90 performs a summation of the elements of a REAL*8 vector compile with gfortran try_it.f90 -shared -s -otry_it.dll 2. create a file to be sourced (see the attached try_it.R) containing the following commands: BEGIN try_it.R ************************************ dyn.load("try_it.dll"); try.it <- function(X){ N <- length(X); S <- .Fortran("try_it_",as.double(X),as.integer(N),S=as.double(0))$S return(S) } END try_it.R ************************************ 3. Switch to R
source("try_it.R") try.it(1:10)
Error in .Fortran("try_it_", as.double(X), as.integer(N), S = as.double(0)) : Fortran symbol name "try_it_" not in load table
is.loaded("try_it_")
[1] TRUE
try.it(1:10)
[1] 55
it looks like is.loaded() triggers the loading, inserting is.loaded("try_it_")in the file try_it.R does the trick but is this behaviour expected? Thank you, Regards Simone
R.version
_ platform i386-pc-mingw32 arch i386 os mingw32 system i386, mingw32 status major 2 minor 4.1 year 2006 month 12 day 18 svn rev 40228 language R version.string R version 2.4.1 (2006-12-18) -- ______________________________________________________ Simone Giannerini Dipartimento di Scienze Statistiche "Paolo Fortunati" Universita' di Bologna Via delle belle arti 41 - 40126 Bologna, ITALY Tel: +39 051 2098262 Fax: +39 051 232153 ______________________________________________________
______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel