Thanks to Stavros for the report.  This should now be fixed in R-devel.

luke

On Wed, 11 Mar 2009, l...@stat.uiowa.edu wrote:

Looks like an infinite recursion in R_isMissing, which I think may be
turned into an infinite loop if the C compiler is doing tail call
optimization.  I need to understand why this is written the way it is
and also why another case that I would expect to also have this
problem does not before identifying the appropriate fix.

luke

On Tue, 10 Mar 2009, Peter Dalgaard wrote:

Stavros Macrakis wrote:
Tested in: R version 2.8.1 (2008-12-22) / Windows

Recursive default argument references normally give nice clear errors.
 In the first set of examples, you get the error:

  Error in ... :
  promise already under evaluation: recursive default argument
reference or earlier problems?

  (function(a = a) a      ) ()
  (function(a = a) c(a)   ) ()
  (function(a = a) a[1]   ) ()
  (function(a = a) a[[1]] ) ()
  (function(a = a) a$x    ) ()
  (function(a = a) mean(a) )   ()
  (function(a = a) sort(a) ) ()
  (function(a = a) as.list(a) ) ()

But in the following examples, R seems not to detect the 'promise
already under evaluation' condition and instead gets a stack overflow,
with the error message:

  Error: C stack usage is too close to the limit

  (function(a = a)  (a)    ) ()
  (function(a = a)  -a     ) ()
  (function(a = a) var(a) ) ()
  (function(a = a) sum(a) ) ()
  (function(a = a) is.vector(a) ) ()
  (function(a = a) as.numeric(a) ) ()

I don't understand why the two sets of examples behave differently.

Ouch!!!

This shouldn't happen, I'm pretty sure. In particular not the apparently unstoppable loop under Linux. Thanks for pointing it out.






--
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:      l...@stat.uiowa.edu
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

Reply via email to