[R] How to detach binary objects/libraries?

ripley@stats.ox.ac.uk ripley at stats.ox.ac.uk
Mon Mar 25 22:46:57 CET 2002

On 25 Mar 2002, Peter Dimitrov wrote:

> Hi all,
> First, I want to apologize if this question has been already answered. I
> have a RedHat 7.2. system with recently patched version of R-1.4.1. I'm
> in a process of writing R package, say X, that loads some C++ code.
> Currently, while adding functionality to it in both R and C++ sources,
> I'm getting crashes every time I detach/load/access the C++ function(s).
> Typical transcript follows:
> > library(X)
> Loading required package: mva
> > is.loaded("exp_dist_fast") # The name of the C stub function
> [1] TRUE
> > detach(package:X)
> > is.loaded("exp_dist_fast")
> [1] TRUE # Problem?
> > library(X) # Load X after changes in the C/C++ code
> > is.loaded("exp_dist_fast") # or .C("exp_dist_fast",...)
> Process R:1 segmentation fault at Mon Mar 25 12:17:57 2002
> What is the way to cleanly unload the object code and is there better
> mechanism than detach(package:X)?

Does you package use .Last.lib to unload your shared library, X.so?
If not, that will probably be your problem, as library.dynam will not
reload it (and you probably use library.dynam).

Take a look at package tcltk for an example.

I'm not sure what Linux does if you change a shared library that is in
use, but it is not a good idea (and fatal on Solaris, for example).

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list