[Rd] proto and baseenv()

Peter Danenberg pcd at roxygen.org
Fri Feb 26 05:16:17 CET 2010


> Your preference is inconsistent with how the rest of R works and is
> inflexible since everything inherits from Object.

Really? Here are a couple of counterexamples in S3 and S4 objects:

  > z <- 1
  >
  > ## S4
  > setClass('A', representation(a='numeric'))
  [1] "A"
  > a <- new('A', a=z)
  > a at z
  Error: no slot of name "z" for this object of class "A"
  >
  > ## S3
  > a <- structure(list(a=z), class='A')
  > a$z
  NULL

As far as flexibility is concerned: keep the ability of people to
inherit from the parent environment if they don't mind
namespace-pollution and unpredictability.

I'm merely asking that the default behavior resemble the twenty-three
years of precedent since Ungar's original Self paper.

> Also I think your argument is based partly on repeating the original
> erroneous (relative to the writer's intention) proto code without
> repeating my correction confusing the discussion with simple user
> error.

I acknowledged your correction in an earlier email when I stated that,
"[one has] to choose between eval and parent pollution."



More information about the R-devel mailing list