[ESS] Near-lockup when fontifying large buffer

Jeremy Semeiks jrs at farviolet.com
Tue Jan 17 22:11:42 CET 2006


On Tue, Jan 17, 2006 at 09:12:33AM -0600, Rodney Sparapani wrote:
> >
> >
> >
> >C-g or C-g C-g usually works for me.  It is well known on this list,
> >dating back to the mid 90s ('96 or so).
> >
> >best,
> >-tony
> > 
> >
> Hi Jeremy:
> 
> I think Tony's advice should help, but the version of ESS that you are using
> is getting stale so an upgrade wouldn't hurt.  Also, you don't mention which
> version of xemacs that you are using

I did mention that I'm using XEmacs 21.4, but I didn't mention that
it's patch 15 for SuSE i386. However, I suspect that the specific
version doesn't make much difference, as I've encountered this problem
on other versions of XEmacs 21 as well.

I just upgraded to ESS 5.2.11, but it didn't make a difference.

>but there a couple of variables 
> that you
> can configure that I find useful:
> 
> ;suppress status messages when fontifying
> (setq font-lock-verbose nil)
> ; font-lock using lazy-lock for efficiency/speed
> (require 'font-lock)
> (add-hook 'font-lock-mode-hook 'turn-on-lazy-lock)

I didn't get any improvement from setting these variables. Unsetting
font-lock-verbose just seemed to keep the "fontifying buffer" message
window from popping up, but it didn't keep things from hanging.

Turning on lazy-lock had some interesting effects. The first time I
set it directly with M-:, I didn't see any change; there was still a
large hang. When I set this directly in my init.el file, I couldn't
even start ESS correctly! My window hung after the initial
"options(STERM='iESS', editor='gnuclient -q')" command, without ever
giving me a subsequent ">" prompt.

Tony's advice to use C-g also does something interesting: it outputs
over 20,000 lines like this:

CCL: Exited.

Often, there is still a significant time gap between the printing of
the lines and the return to the command prompt, and sometimes the
command prompt doesn't even return, but rather more data are output
instead after the "CCL: Exited." lines. Multiple pressing of C-g
sometimes fixes things, but sometimes I have to wait a few seconds to
press it again. Various permutations of C-c C-c and C-g have variable
effects, and I haven't figured out why they vary.

Do people get the same suboptimal results when using C-g?

I guess what I'd really like is a single, standardized way to kill a
big output dump and quickly return to R interaction. In most Emacs
comint-type modes (e.g. M-x shell), this functionality just works when
I hit C-c C-c. Are there significant barriers to accomplishing this in
ESS?

Thanks,
Jeremy




More information about the ESS-help mailing list