From vdergachev at rcgardis.com  Wed Dec 20 00:18:43 2006
From: vdergachev at rcgardis.com (Vladimir Dergachev)
Date: Tue, 19 Dec 2006 18:18:43 -0500
Subject: [Rd] data frame subset patch, take 2
In-Reply-To: <17796.26630.481777.933234@cmath-3.math.ethz.ch>
References: <200612061333.09050.vdergachev@rcgardis.com>
	<17796.26025.698050.64495@cmath-3.math.ethz.ch>
	<17796.26630.481777.933234@cmath-3.math.ethz.ch>
Message-ID: <200612191818.43988.vdergachev@rcgardis.com>

On Saturday 16 December 2006 4:41 pm, Martin Maechler wrote:
>
> Correction: the problems show on both platforms;
>
> one is in mgcv, gam(), an error in [[ <-  -- pretty clearly linked to your
> changes but not reproducible when tried isolatedly
> interactively,
>
> the other one is a seg.fault "memory not mapped" when running
> the  example
>
>    > nuke.boot <- boot(nuke.data, nuke.fun, R=999, m=1,
>
>    +      fit.pred=new.fit, x.pred=new.data)
>
>
>     MM> My guess: typically when dealing with model.frames (which
>     MM> internally are "just" data frames with a particular "terms"
> attribute) MM> but the problems are not reproducible when run
> interactively. MM> It may really be that .subset() and .subset2() are
> sometimes MM> used in cases they should not be in your new code; or they
> even have a bug that MM> is not triggered unless by using them in the new
> context of [.data.frame
>
>     MM> So I'm sorry, but we might have to wait for a "take 3"
>     MM> or rather try to find the problem with your patch.
>     MM> Maybe you can try yourself?

Hi Martin, 

   thank you very much for the feedback !

   Of course, there is going to be take 3 :)

   I have reproduced your tests with slightly different results:
boot.Rcheck fails, stats.Rcheck segfaults, cluster.Rcheck fails.

   More importantly I was able to reproduce the problem interactively with 
boot.Rcheck. When interactive I found that the issue has random outcomes - 
sometimes it segfaults and sometimes it produces this:

   1) boot.Rcheck fails with 

> nuke.boot <- boot(nuke.data, nuke.fun, R=999, m=1, 
+      fit.pred=new.fit, x.pred=new.data)
Error: incompatible types (from NULL to list) in [[ assignment
Execution halted

    but does not segfault. Other times it errors out in different places or 
goes through fine. On one occasion I observed a very interesting behaviour - 
the R console looked like it was completely confused about which functions 
are being called and about arguments passed to them.

   After some tinkering, I realized that, perhaps, the problem is with me 
adding .subassign and .subassign2 functions and this somehow interfering with 
saved workspaces. So I did make clean (after updating SVN) and the problem 
appears to be gone.

   Could you try dong make clean && make on your installation and reporting 
the results ?

                              thank you very much !

                                           Vladimir Dergachev



[Rd] data frame subset patch, take 2
Vladimir Dergachev