Roger,

can you give us a simple, reproducible example, please? From your description it's not clear to me what is your speculation and what are the facts. Running dyn.load twice is very dangerous in general unless you know what you're doing, especially with dylibs involving Fortran, because those usually contain initializer functions that may have unexpected side effects. This is common to all platforms, not just Macs.

Cheers,
Simon


On Aug 25, 2008, at 18:23 , roger koenker wrote:

I had a rather mysterious problem that now seems to have been
attributable to dyn.load()ing the same object twice in one R session
and I would be curious to know if this is a known issue, or something
that I should try to document further:

I had a single fortran subroutine which I was making into a .so file
with the usual R CMD SHLIB ritual.  Then I would run a test problem
which involved dyn.load()ing the .so object, sourcing an R function
that called .Fortran, generating some random data and finally invoking
the R function when I sourced a file that looked like this:

# Initial test of parq algorithm
p <- 30
n <- 200
x <- matrix(rnorm(p*n),n,p)
y <- rnorm(n)
dyn.load("parq.so")
source("parq.q")
z <- parq(x,y,lambda = -1)

That is z contained a perfectly sensible result, but when I sourced this file a second time and then tried to look at "z" the R process hung. This
happened on both my old G5 desktop running 2.7.1 and on a new intel
mac-pancake running 2.7.1.  However, on several other machines 3
linuxes and one solaris everything was copasetic, no hangups after
the second invocation.

After much agonizing under the assumption that there was something
wrong with memory allocation in my fortran -- a hypothesis that had
quite a lot of historical support -- I finally tried just running the parq
function without the double  invocation of dyn.load  and this worked
perfectly.  From which I draw the moral:

        Don't dyn.load twice, it's not (mac)-nice.

url:    www.econ.uiuc.edu/~roger            Roger Koenker
email    [EMAIL PROTECTED]            Department of Economics
vox:     217-333-4558                University of Illinois
fax:       217-244-6678                Champaign, IL 61820

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac



_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to