Re: [Rd] Unbalanced parentheses printed by warnings() crash text editor

From: Martin Maechler <>
Date: Fri 20 Aug 2004 - 22:29:41 EST

>>>>> "PD" == Peter Dalgaard <> >>>>> on 20 Aug 2004 12:01:39 +0200 writes:

    PD> Duncan Murdoch <> writes:
>> >I could have sent this to the ESS or Xemacs devel list, but ESS & Xemacs'
>> >attempt to find balanced parentheses accross many lines seems sensible,
>> >and is needed with very long functions.
>> Yes, it's sensible to try, but it is a bug that they don't fail
>> gracefully.

    PD> (Actually, it is not sensible; ESS should try harder to figure out
    PD> what is actually R code. Much as I love ESS, it is a persistent fly in
    PD> the ointment when the opening blurb comes up with "for" and "in" in
    PD> magenta.)

I'm chiming in, since I have been addressed explicitly here (for whatever reason):

Yes, yes, and yes to Duncan's and Peter's notes:

Martin Maechler

For the sake of ESS-help, here's the original message as well:

>>>>> "Mayeul" == Mayeul KAUFFMANN <> >>>>> on Thu, 19 Aug 2004 23:32:51 +0200 writes:

    Mayeul> ... Hope it is the good place for this     Mayeul> (I discuss the question of the right place below).

    Mayeul> Most of the time, warnings are more than 1000

[?? you probably mean something like '100', not '1000', right?]

    Mayeul> characters long and thus are truncated. Most of the     Mayeul> time, this generates printouts with unbalanced parentheses.

    Mayeul> Intelligent text editors which do parentheses
    Mayeul> highlighting get very confused with this.  After too
    Mayeul> many warnings, they give errors, and may even crash.

crashing *must* be a bug of the editor setup (ESS - XEmacs - Windows), not of R.

    Mayeul> Specifically, I use ESS and XEmacs for Windows Users
    Mayeul> of R (by John Fox) which is advised to do at
    Mayeul> with a buffer for text
    Mayeul> editing and an inferior ESS (R) buffer.  (I
    Mayeul> downloaded the latest Xemacs and ESS a month ago).

    Mayeul> After too many warnings (with unbalanced
    Mayeul> parentheses), Xemacs swithes to an ESS-error buffer
    Mayeul> which says "error Nesting too deep for parser".  In
    Mayeul> some case, when back in R buffer, typing any letter
    Mayeul> switches back to the ESS-error Buffer.  In other
    Mayeul> case, it simply takes ages (until you kill Xemacs)     Mayeul> or it crashes. In most case, the R process is lost.
    Mayeul> I could have sent this to the ESS or Xemacs devel
    Mayeul> list, but ESS & Xemacs' attempt to find balanced
    Mayeul> parentheses accross many lines seems sensible, and
    Mayeul> is needed with very long functions.

    Mayeul> A workaround would be to change the function that print warnings.

    Mayeul> Instead of, for instance,
    Mayeul> "error message xxxxxxxxxx in: function.yyyyyy(zzzzzzzzz,zzzzzzz, ..."

    Mayeul> It may print
    Mayeul> "error message xxxxxxxxxx in: function.yyyyyy(zzzzzzzzz,zzzzzzz, ...)"

    Mayeul> The function should truncate the error message, find
    Mayeul> how many parenthesis and brackets are open in the
    Mayeul> remaining part, substract the number of closing
    Mayeul> parenthesis and brackets, and add that many
    Mayeul> parenthesis at the end.  (Xemacs parentheses
    Mayeul> highligher regards "(" and "[" as equivalent)

    Mayeul> Mayeul KAUFFMANN

    Mayeul> Univ. Pierre Mendes France
    Mayeul> Grenoble - France mailing list Received on Fri Aug 20 22:34:12 2004

This archive was generated by hypermail 2.1.8 : Fri 18 Mar 2005 - 08:59:20 EST