[Rd] new.env does not recognize parents from subclasses of "environment"
Vitally S.
spinuvit.list at gmail.com
Thu Oct 21 17:58:56 CEST 2010
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>
More information about the R-devel
mailing list