On Fri, 3 Oct 2008, Gabor Grothendieck wrote:
On Fri, Oct 3, 2008 at 11:43 AM, Luke Tierney <[EMAIL PROTECTED]> wrote:
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.
These are not good options:
- the workaround does not allow one to inherit methods. This
implies tediously rewriting or writing wrappers every inherited method
in any such subclass. Its really tantamount to eliminating OO for
environments which is not a reasonable solution for a language that
is supposed to be OO.
It would mean sealing environments, making them final, pick your
favorite OO terminology. Standard thing to do in many OO languages
when it is wararanted.
- eliminating attributes on environments is even worse since widely
used packages such as proto, ggplot2 and other packages would suffer.
Maintaining reasonable compatiblity should be a goal of the core
development. It would be better to document the current situation than
to make such a retrograde change.
The authors of proto would finally need to bite the bullet and address
this issue. This would make proto more reliable in the end.
luke
- if time is a problem perhaps the core group needs to add resources
to reasonably address the problems in R. Traditional economics
do not apply to an open source project. There is no monetary cost to
adding additional developers.
luke
On Fri, 3 Oct 2008, Gabor Grothendieck wrote:
On Fri, Oct 3, 2008 at 3:23 AM, Martin Maechler
<[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
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@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: [EMAIL PROTECTED]
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
--
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: [EMAIL PROTECTED]
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel