[Rd] new.env does not recognize parents from subclassesof "environment"

William Dunlap wdunlap at tibco.com
Thu Oct 21 18:21:41 CEST 2010


The traceback looks very similar to a problem
in R 2.11.1 reported earlier this month by Troy Robertson.
  > From: r-devel-bounces at r-project.org 
  > [mailto:r-devel-bounces at r-project.org] On Behalf Of Troy Robertson
  > Sent: Wednesday, October 06, 2010 6:13 PM
  > To: 'r-devel at R-project.org'
  > Subject: Re: [Rd] Recursion error after upgrade to 
  > R_2.11.1[Sec=Unclassified]
It was due to a miscount of how many frames to go
up before evaluating an expression in
getMethod("[[<-",".environment") because setMethod()
introduced a local function in the new method.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com  

> -----Original Message-----
> From: r-devel-bounces at r-project.org 
> [mailto:r-devel-bounces at r-project.org] On Behalf Of Vitally S.
> Sent: Thursday, October 21, 2010 9:00 AM
> To: John Chambers
> Cc: r-devel at r-project.org
> Subject: Re: [Rd] new.env does not recognize parents from 
> subclassesof "environment"
> 
> 
> 
> Here is an infinite recursion error  which occurs only with S4
> subclasses assignment.
> 
>  setClass("myenv", contains = "environment")
> #[1] "myenv"
>  env <- new("myenv")
>  env[[".me"]] <- env at .xData
> #Error: evaluation nested too deeply: infinite recursion / 
> options(expressions=)?
>  
> 
> With basic types it works as expected:
> 
> env1 <- new.env()
> env1[[".me"]] <- env1
> 
> May be this is related to active bindings that you mentioned, 
>  but I am still
> reporting it here.
> 
> Vitally.
> 
> 
> >  Thanks for the report.  Should now be fixed in r-devel and 
> 2.12 patched (rev 53383).
> >
> > Please do report any cases where a subclass of environment 
> doesn't work.  There are some known cases in locking and
> > active binding, that will be fixed in due course.
> >
> > The workaround for any such problem is usually as.environment().
> >
> > On 10/20/10 3:17 AM, Vitaly S. wrote:
> >> Dear Developers,
> >>
> >> A lot has been changed in the R12.0 with respect to 
> behavior of "environment"
> >> subclasses.  Many thanks for that.
> >>
> >> One small irregularity, though; new.env does not allow the 
> parent to be from S4
> >> subclass.
> >>
> >>
> >>> setClass("myenv", contains="environment")
> >> [1] "myenv"
> >>> new.env(parent=new("myenv"))
> >> Error in new.env(parent = new("myenv")) : 'enclos' must be 
> an environment
> >>
> >> I wonder if this is a "planed" behavior.
> >>
> >> The use of .xData  slot obviously works:
> >>> new.env(parent=new("myenv")@.xData)
> >> <environment: 063bb9e8>
> >> Thanks,
> >> Vitaly.
> >>
> >> ______________________________________________
> >> R-devel at r-project.org mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-devel>
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 



More information about the R-devel mailing list