Prof. Ripley,

Thanks for the explanation.  I had set both keep.source and 
keep.source.packages to TRUE for my experiments, but had not realized that a 
new R process would be involved, so did not try the environmental variable 
approach.

>From what you say below, I don't think I am going to accomplish what I wanted, 
>since I want the source to show for users other than myself and there does not 
>seem to be a reasonable way to change the users environment before installing 
>my package (that is getting a bit too big brother to even think about).  I was 
>hoping that there might be some switch somewhere that I had missed that would 
>say keep the source for this function even though the default is not to.  But, 
>it does not look like there is anything like that, and it is not worth 
>implementing just for my one little use.

Hmm, maybe I can set the source manually using .onAttach, I'll have to 
experiment some more.

Thanks,

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.s...@imail.org
801.408.8111


> -----Original Message-----
> From: Prof Brian Ripley [mailto:rip...@stats.ox.ac.uk]
> Sent: Monday, April 04, 2011 3:41 PM
> To: Greg Snow
> Cc: R-devel@r-project.org
> Subject: Re: [Rd] Use keep.source for function in package with lazy
> loading
> 
> On Mon, 4 Apr 2011, Greg Snow wrote:
> 
> > I have a function in one of my packages that I would like to print
> > using the original source rather than the deparse of the function.
> > The package uses lazy loading and the help page for library (under
> > keep.source) says that keep.source does not apply to packages that
> > use lazy loading and that whether those functions keep the source
> > depends on when they are installed.
> 
> Not quite: it is says it is 'determined when it is installed'.
> 
> For a package that does not use lazy loading, what is installed is a
> file of R code.  When library() loads such a package, it sources() the
> R code, and at that point has the option to keep the source or not
> (for that R session).
> 
> For a package which uses lazy loading, the source()ing happens when
> the package is installed: the objects created are then dumped into a
> database.  Whether the source attribute is retained at that point
> depends on the setting of the option "keep.source.pkgs". So if you can
> arrange to install the package with that option set to true, in
> principle (and in my experiments) the source attributes are retained.
> 
> The easiest way to do this would seem to be to set the environment
> variable R_KEEP_PKG_SOURCE to "yes" whilst installing the package.
> 
> > This package is on R-forge and is being built there (and will
> > eventually be used to submit the next version of the package to
> > CRAN).
> >
> > I am not sure what the help means by 'installed', I have set the
> > options to keep the source to TRUE before calling install.package,
> > but that does not seem to work.
> 
> I presume you mean keep.source.pkgs, not keep.source?  That needs to
> be set in the process which is installing the package:
> install.packages() calls R CMD INSTALL in a separate process.
> 
> > Is there a way to "strongly encourage" the source to be kept for
> > this function (or the entire package)?
> >
> > Thanks,
> >
> > --
> > Gregory (Greg) L. Snow Ph.D.
> > Statistical Data Center
> > Intermountain Healthcare
> > greg.s...@imail.org
> > 801.408.8111
> 
> --
> Brian D. Ripley,                  rip...@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-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to