And this also fixes PR#7022 (a highly nested polynomial)

        -thomas

On Thu, 12 May 2005, Prof Brian Ripley wrote:

On Thu, 12 May 2005 [EMAIL PROTECTED] wrote:

I suspect that is coincidence, as I can see no source change that would
account for it.

2.0.1 and R-devel work for me and 2.1.0 segfaults with

999 KeepSource = *LOGICAL(GetOption(install("keep.source"), R_NilValue));
(gdb) bt
#0 0x080ca229 in ParseInit () at gram.y:999
#1 0x080cb305 in token () at gram.y:1530


I am not sure that is right, but I am pretty sure that

static char     contextstack[50], *contextp;

just above is an unchecked nesting limit, as in

static void IfPush(void)
{
    if (*contextp==LBRACE ||
        *contextp=='['    ||
        *contextp=='('    ||
        *contextp == 'i')
            *++contextp = 'i';
}

However, although I thought this was the problem, it seems only to apply
to nested if()s.  So I do not currently have a solution.

I was almost right, just a different instance of *++contextp.

Fixed in R-patched, to give

(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
Error: contextstack overflow


-- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Thomas Lumley Assoc. Professor, Biostatistics [EMAIL PROTECTED] University of Washington, Seattle

______________________________________________
R-devel@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to