[ESS] ESS and R... death to Emacs...

Dan Bolser dmb at mrc-dunn.cam.ac.uk
Thu Mar 16 15:56:23 CET 2006


Martin Maechler wrote:
>>>>>>"Dan" == Dan Bolser <dmb at mrc-dunn.cam.ac.uk>
>>>>>>    on Thu, 16 Mar 2006 12:01:45 +0000 writes:
> 
> 
>     Dan> Martin Maechler wrote:
>     >>>>>>> "Dan" == Dan Bolser <dmb at mrc-dunn.cam.ac.uk>
>     >>>>>>> on Thu, 16 Mar 2006 10:26:54 +0000 writes:
>     >> 
>     >> 
>     Dan> Hi,
>     Dan> I am R Version 2.2.1  (2005-12-20 r36812)
>     Dan> ESS version 5.2.12
>     Dan> Linux 2.6.15-1.1833_FC4 i686 athlon i386 GNU/Linux
>     >> 
>     >> 
>     Dan> The following R/ESS session causes a permanant 'hang', and kills my 
>     Dan> emacs session...
>     >> 
>     Dan> # Start Emacs,
>     Dan> # Start an R process (M-x R)
>     Dan> # Evaluate the following line;
>     Dan> par(ask=T)
>     >> 
>     Dan> # Evaluate the following *region*;
>     Dan> plot(rnorm(50))
>     Dan> plot(rnorm(50))
>     >> 
>     >> 
>     >> 
>     Dan> When the last two lines are sent *together* to the R process (via M-x 
>     Dan> ess-eval-region), the session 'crashes'.
>     >> 
>     Dan> Anyone else got the same problem?
>     >> 
>     >> I see no problem (GNU emacs 21.3).
> 
>     Dan> Hmmm... I am GNU Emacs 21.4.1... not sure if that will make a diff.
> 
> no, it doesn't.  I have 21.3 on some machines and 21.4 on others.
> 

OK


>     Dan> Can I just confirm that you did the steps *exactly* as specified 
>     Dan> (because it 'kills' my emacs session 100% of the time)...
> 
>     Dan> 1) start an R process from within a buffer of emacs (M-x R)
>     Dan> 2) (actually) split the screen (C-x 2)
>     Dan> 3) (actually) jump back to the original buffer (C-x b <ret>)
>     Dan> 4) send the first line 'par(ask=T)' with 'ess-eval-line' (and <ret>)
> 
> I always use C-c C-n which is a bit different from C-c C-j (ess-eval-line)
> but the point is in "5)" :
>  
>     Dan> 5) send the following *region* after marking with the mouse...
> 
>     Dan> plot(rnorm(50))
>     Dan> plot(rnorm(50))
> 
>     Dan> using ess-eval-region
> 
> I see no problem --- only because I always have customized
> ess-eval-visibly-p to 'nil' instead of the default 't'.
> 

I see... What does that do? Where do I set it? Sorry for my ignorance :D

> But even if I set it to 't'; there's no big problem:
> 
> Simple  C-g  solves the ``hanging''  -- as in other situations 
> in ESS, e.g., when a long-lasting computation keeps emacs
> waiting for the prompt, a simple C-g  stops the "waiting loop".
> 
>     Dan> ...
> 
>     Dan> My emacs session is hanging...
> 
> I
> 
>     Dan> Is there an option to set to allow me to see R 'thinking' while it is 
>     Dan> buisy? Like if I had a big loop that output progress information, all 
>     Dan> the progress information gets dumped at the end, after the loop has 
>     Dan> finished. I would like to see progress 'as it happens' ... I think it is 
>     Dan> related to this problem (anybody else see that with different version 
>     Dan> of emacs?)
> 
>     Dan> Cheers,
>     Dan> Dan.
> 
> 
> 
> 
>     >> Martin Maechler, ETH Zurich
>     >> 
>     Dan> Basically I think the fact that the emacs buffer 'hangs' while R is 
>     Dan> 'buisy' causes the problem. The first plot request is sent, and the 
>     Dan> buffer hangs as R becomes 'buisy', then R asks for user input, but that 
>     Dan> request is never echoed back to the user (because the buffer is 
>     Dan> 'hanging'). This is just a guess.
>     >> 
>     Dan> If the emacs buffer didn't go unresponsive while R is buisy, I don't 
>     Dan> think this problem would occur. Like when you run a big process in R, 
>     Dan> you can't use that emacs session for anything else because it is waiting 
>     Dan> on R to finish.
> 
> unless you use  C-g ...
> 
>     Dan> Any way to get round this 'hang'?
> 
> I think it's the simple  C-g  ..
> 

Yay! You are absolutely right!

I thought I had tried everything!

Smashing!




>     >> 
>     Dan> Cheers,
>     Dan> Dan.




More information about the ESS-help mailing list