From murdoch at stats.uwo.ca  Tue Oct  3 20:39:42 2006
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Tue, 03 Oct 2006 14:39:42 -0400
Subject: [Rd] developing a package with a name space
In-Reply-To: <4522AA6C.5040904@biostat.wisc.edu>
References: <4522AA6C.5040904@biostat.wisc.edu>
Message-ID: <4522AE6E.5050401@stats.uwo.ca>

On 10/3/2006 2:22 PM, Erik Iverson wrote:
> Hello -
> 
> I'm currently maintaining an R package that uses a name space, and am 
> also starting a new R package that will use a name space.
> 
> According the the R News June 2003 issue, "Adding a name space to a 
> package may complicate debugging code ... it is a good idea not to add a 
> name space to a package until it is completely debugged, and to remove 
> the name space if further debugging is needed ... other alternatives are 
> being explored ... ".
> 
> Is renaming/removing the NAMESPACE file still the favored approach when 
> developing and debugging code for an R package?
> 
> I suppose the alternative I have in mind is something like sourcing an R 
> file, and using assignInNamespace(), may be more trouble than it is worth.
> 
> I am doing this development using ESS by the way.
> 

It depends on the type of debugging you're doing.  The reason for that 
suggestion is that usually when you edit a new function, it will live in 
the global environment, rather than the namespace.  This means it won't 
see objects in the namespace, and they'll see a local copy before they 
see it.

You can make it see things there by setting its environment to be the 
namespace.  I always forget the syntax for that, so I usually do 
something like

environment(newfn) <- environment(someexportedfn)

Note that if you use fix(), the environment is automatically preserved, 
but you'll still create your new copy in the global environment.

To let other functions see it, you need to use assignInNamespace().

Duncan Murdoch




[Rd] developing a package with a name space
Duncan Murdoch