Re: [R] loading an updated version of a package during an active R session?

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Fri, 11 Apr 2008 06:27:05 +0100 (BST)

On Thu, 10 Apr 2008, Roger Levy wrote:

> Prof Brian Ripley wrote:
>> On Wed, 9 Apr 2008, Roger Levy wrote:
>>
>>> I am developing a package and I want to be able to load an updated version
>>> of the package from within an active R session. Suppose,
>>> for example, I have a function f within a package X. In my active
>>> R session, I have already loaded X. Then I change the R source
>>> code of f within X and rebuild the package as a .tar.gz file on the
>>> command line with
>>>
>>> R CMD build X
>>>
>>> Within my R session, is there a way to reload X such that the
>>> updated definition of f will be used? I have tried:
>>>
>>>> detach("package:X") install.packages("X.tar.gz", repos=NULL,
>>>> type="source") library(X)
>>>
>>> but this seems to use the old version of f. Any suggestions would
>>> be much appreciated!
>>
>> It does work for some packages but not in general. If the package
>> has a namespace, you need to unload that, e.g.
>>
>> unloadNamespace("X")
>>
>> before library(X) (and that will detach X as well).
>
> Ah, I see -- I was under the mistaken impression that detaching the
> package would also get rid of the namespace. In my particular case,
> using unloadNamespace() did the trick properly.
>
>> Note too that many (most?) packages with DLLs do not unload the DLL
>> when their namespace is unloaded (or they are detached), in which
>> case you can end up with the new R code and the old compiled code
>
> In my case I am developing on OS X so there are no DLLs, but this is a
> good proviso to know. Does the same proviso apply to shared objects in Unix
> and OS X?

There are DLLs -- it is a generic term for 'dynamic library object', the things library.dynam handles. (That Mac OS uses 'dynamic library' for a different sort of object postdates this usage.)

>
> Best & many thanks.
>
> Roger
>
>> So without more details or the example asked for in the footer it is
>> hard to be explicit about what needs to be done.
>
>
> --
>
> Roger Levy Email: rlevy_at_ucsd.edu
> Assistant Professor Phone: 858-534-7219
> Department of Linguistics Fax: 858-534-4789
> UC San Diego Web: http://ling.ucsd.edu/~rlevy
>

-- 
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 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Fri 11 Apr 2008 - 05:30:03 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Fri 11 Apr 2008 - 07:30:27 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive