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

Mayeul KAUFFMANN mayeul.kauffmann at tiscali.fr
Thu Aug 19 23:32:51 CEST 2004


Hello everyone,

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

Most of the time, warnings are more than 1000 characters long and thus are
truncated.
Most of the time, this generates printouts with unbalanced parentheses.

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

Specifically, I use ESS and XEmacs for Windows Users of R (by John Fox)
which is advised to do at http://ess.r-project.org/
with a buffer for text editing and an inferior ESS (R) buffer.
(I downloaded the latest Xemacs and ESS a month ago).

After too many warnings (with unbalanced parentheses), Xemacs  swithes to
an ESS-error buffer which says "error Nesting too deep for parser".
In some case, when back in R buffer, typing any letter switches back to
the ESS-error Buffer.
In other case, it simply takes ages (until you kill Xemacs) or it crashes.
In most case, the R process is lost.

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.

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

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

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

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


Mayeul KAUFFMANN
Univ. Pierre Mendes France
Grenoble - France



More information about the R-devel mailing list