From ripley at stats.ox.ac.uk  Fri Feb 24 16:42:50 2012
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Fri, 24 Feb 2012 15:42:50 +0000 (GMT)
Subject: [Rd] function remains loaded in the search space after
 detaching the package
In-Reply-To: <CAO1zAVYjhO7rn0HUukfBkvXdgLP_d+kLRMa09VAhsW7HLyhiwg@mail.gmail.com>
References: <CAO1zAVbj-3ZS6zjPM9iR2+v_jZpccQNLqLsd4pm-jc7Yu6Jh2A@mail.gmail.com>
	<20295.29295.713484.449385@stat.math.ethz.ch>
	<4F477DAD.2050201@stats.ox.ac.uk>
	<CAO1zAVboAimGfvdT0whSd_eDYFpn7RdQK7K2msw9Q+-ycS58jg@mail.gmail.com>
	<alpine.LFD.2.02.1202241248160.8848@toucan.stats.ox.ac.uk>
	<CAO1zAVYjhO7rn0HUukfBkvXdgLP_d+kLRMa09VAhsW7HLyhiwg@mail.gmail.com>
Message-ID: <alpine.LFD.2.02.1202241537320.14608@toucan.stats.ox.ac.uk>

fortunes::fortune('WTFM') applies.  As already pointed out, ?detach 
says

      If a package has a namespace, detaching it does not by default
      unload the namespace (and may not even with ?unload=TRUE?), and
      detaching will not in general unload any dynamically loaded
      compiled code (DLLs).  Further, registered S3 methods from the
      namespace will not be removed.  If you use ?library? on a package
      whose namespace is loaded, it attaches the exports of the already
      loaded namespace.  So detaching and re-attaching a package may not
      refresh some or all components of the package, and is inadvisable.

And that is explicitly mentioned on ?unloadNamespace ....

On Fri, 24 Feb 2012, Joris Meys wrote:

> 2012/2/24 Prof Brian Ripley <ripley at stats.ox.ac.uk>:
>>
>> As
>>
>> getS3method('print', 'object_size')
>>
>> would have confirmed the expectations of a 'one' with a less sketchy
>> understanding of R.
>>
> Yes, getS3method() sends you -not very surprisingly- to the one from
> gdata. I realized, as print(object.size(iris)) gets that one as well,
> and even in my sketchy understanding of R I suspect that both actions
> have a similar underlying mechanism. But that's not my point.
>
> Why would I have to expect the gdata version is still used (under the
> correct assumption that I haven't been writing on the R source code
> myself)? As a maybe-not-so-smart basic user of R, I would expect that
> detach() and eventually unloadNamespace() would revert the effect of
> library() (and loadNamespace() ). Apparently they don't.
>
> The only way to reverse the action of require(gdata) seems to be to
> restart R. That's at least what my limited brain could understand from
> the valuable information given by both you and Martin. Seemingly
> having to restart an application to undo an action, even in the
> presence of functions with names that make you believe they revert a
> former action, might in general be conceived as rather unexpected by
> somebody with the same sketchy understanding of R as me. I would be
> delighted if you could explain to me which part of R I understand
> wrongly to come to this silly observation.

>
> Sincerely,
> Joris
>
>
>
> -- 
> Joris Meys
> Statistical consultant
>
> Ghent University
> Faculty of Bioscience Engineering
> Department of Mathematical Modelling, Statistics and Bio-Informatics
>
> tel : +32 9 264 59 87
> Joris.Meys at Ugent.be
> -------------------------------
> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
>

-- 
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


[Rd] function remains loaded in the search space after detaching the package
Prof Brian Ripley