Gabor Grothendieck
2008-Oct-03 15:08 UTC
[Rd] Attributes of top level environments clobbered (was Re: [R] possible bug in function 'var' in R 2.7.2?)
On Fri, Oct 3, 2008 at 3:23 AM, Martin Maechler <maechler at stat.math.ethz.ch> wrote:> a much better (and much less error-prone) idea would be to install > R 2.8.0 alpha even now. > It will become 'beta' early next week. > > We are asking the R community to please install and use > pre-release versions of R (if you can / are allowed to) > at least from beta onwards, and report problems you see early on > *before* the final release.The bug discussed in the following year-old post suggested that the problem of clobbering attributes of top level environment objects would be fixed for 2.7 but its still in R version 2.7.2 (2008-08-25)" and also still in "R version 2.8.0 alpha (2008-10-01 r46589)" https://stat.ethz.ch/pipermail/r-devel/2007-October/047184.html The Avoiding R Bugs section of this page: http://r-proto.googlecode.com has more discussion as well as a list of some other R bugs. This can be tested by creating a package with these two files only: ---DESCRIPTION--- Package: testlazy Version: 1.0-0 Date: 2008-10-03 Title: Test lazy loading Author: G Grothendieck Maintainer: G Grothendieck <ggrothendieck at gmail.com> Description: Test lazy loading with top level objects. Depends: proto LazyLoad: yes License: GPL-2 ---R/testlazy.R--- TopLevel <- proto() --- And then testing it: library(testlazy) class(TopLevel) If its class is "environment" only then the class attribute was stripped.
Luke Tierney
2008-Oct-03 15:43 UTC
[Rd] Attributes of top level environments clobbered (was Re: [R] possible bug in function 'var' in R 2.7.2?)
I will look into fixing it sometime if no one else feels like doing it. The environment aspect is not high priority; some other related issues are more so (locking and active bindings as I recall). But even thoughs may not make it to the top of my queue any time soon. The issue of placing attributes on environments has come up before, many times. It is routinely advised against. For better or worse, the way environments were exposed to the R level is not designed to support this properly. Fixing this so that attributes are supported reliably is non-trivial, and it is hard to justify the effort given that there are standard work-arounds (such as putting the environment in a list and attaching attributes to the list). An alternative way of removing the issues associated with attributes on environments, in line with the way NULL works, is to disable placing attributes on environments, at least from the R level. This option is looking increasingly attractive. luke On Fri, 3 Oct 2008, Gabor Grothendieck wrote:> On Fri, Oct 3, 2008 at 3:23 AM, Martin Maechler > <maechler at stat.math.ethz.ch> wrote: >> a much better (and much less error-prone) idea would be to install >> R 2.8.0 alpha even now. >> It will become 'beta' early next week. >> >> We are asking the R community to please install and use >> pre-release versions of R (if you can / are allowed to) >> at least from beta onwards, and report problems you see early on >> *before* the final release. > > The bug discussed in the following year-old post suggested that > the problem of clobbering attributes of top level environment objects > would be fixed for 2.7 but its still in R version 2.7.2 (2008-08-25)" > and also still in "R version 2.8.0 alpha (2008-10-01 r46589)" > > https://stat.ethz.ch/pipermail/r-devel/2007-October/047184.html > > The Avoiding R Bugs section of this page: > > http://r-proto.googlecode.com > > has more discussion as well as a list of some other R bugs. > > This can be tested by creating a package with these two files only: > > ---DESCRIPTION--- > Package: testlazy > Version: 1.0-0 > Date: 2008-10-03 > Title: Test lazy loading > Author: G Grothendieck > Maintainer: G Grothendieck <ggrothendieck at gmail.com> > Description: Test lazy loading with top level objects. > Depends: proto > LazyLoad: yes > License: GPL-2 > ---R/testlazy.R--- > TopLevel <- proto() > --- > > And then testing it: > > library(testlazy) > class(TopLevel) > > If its class is "environment" only then the class attribute was stripped. > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Luke Tierney Chair, Statistics and Actuarial Science Ralph E. Wareham Professor of Mathematical Sciences University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: luke at stat.uiowa.edu Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
Possibly Parallel Threads
- Attributes of top level environments clobbered (was Re: [R] possible bug in function 'var' in R 2.7.2?)
- puzzled by cat() behaviour when argument '...' is a vector (and argument 'sep' contains "\n")
- viewport bug in 2.8.0?: Error: Cannot pop the top-level viewport (grid and graphics output mixed?)
- R 2.8.0 qqnorm produces error with object of class zoo?
- possible bug in function 'var' in R 2.7.2?