Re: [Rd] Use keep.source for function in package with lazy loading

2011-04-18 Thread Greg Snow
Thanks, that looks great.  

Looking for other options I found a way to do something I had not originally 
considered, but like even better now.  My original purpose on this was a string 
with some tabs in it that when the function was viewed without the source were 
turned into "\t" which looked ugly and partly countered what I was trying to do.

My current attempt can be seen by looking at the 'petals' function in the 
development version of the TeachingDemos package on R-Forge.  It works great on 
windows, now I just need to find some people to test it on Mac and Linux to 
make sure that everything is doing what it should there.

-- 
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: Sunday, April 10, 2011 4:52 AM
> To: Greg Snow
> Cc: R-devel@r-project.org
> Subject: RE: [Rd] Use keep.source for function in package with lazy
> loading
> 
> R-devel now has a KeepSource DESCRIPTION field to accomplish what I
> think you are seeking.
> 
> On Tue, 5 Apr 2011, Greg Snow wrote:
> 
> > 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 me

Re: [Rd] Use keep.source for function in package with lazy loading

2011-04-10 Thread Prof Brian Ripley
R-devel now has a KeepSource DESCRIPTION field to accomplish what I 
think you are seeking.


On Tue, 5 Apr 2011, Greg Snow wrote:


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, UKFax:  +44 1865 272595




--
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, UKFax:  +44 1865 272595

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Use keep.source for function in package with lazy loading

2011-04-05 Thread Greg Snow
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, UKFax:  +44 1865 272595

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Use keep.source for function in package with lazy loading

2011-04-04 Thread Prof Brian Ripley

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, UKFax:  +44 1865 272595

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel