Charles Berry writes: > Charles Berry ucsd.edu> writes: > >> >> Rainer M Krug krugs.de> writes: >> >> > >> > Thanks - you came before me. I get the same error but managed to work >> > around. >> > >> > This is likely caused by the upgrade of ess, >> >> Likely. >> >> But it may not be an ESS problem per se. >> >> M-x R starts a process that runs asynchronously. In interactive use there >> is no issue (barring something in .First() that slows the startup for >> a very long time). >> >> But, ... >> >> If the (rename-buffer ...) in org-babel-R-initiate-session >> runs before all the setup that ESS performs in the process buffer is >> complete, chaos can result. >> >> Not sure what the best way is to fix this. >> > > OK. Looks like (ess-wait-for-process) fixes this. Here is a patch. Thanks. Haven't tried it yet, but I can't imagine any downside of this patch. Could this be committed? Rainer > > Chuck > == > > From 89472012d80ce9ad4c8722f304c0d29327efa1fc Mon Sep 17 00:00:00 2001 > From: chasberry > Date: Tue, 16 Sep 2014 19:57:59 -0700 > Subject: [PATCH] lisp/ob-R.el: use `ess-wait-for-process' to assure clean > session startup > > * lisp/ob-R.el (org-babel-R-initiate-session): Make sure that (R) has > finished before `rename-buffer' is run. > > TINYCHANGE > --- > lisp/ob-R.el | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/lisp/ob-R.el b/lisp/ob-R.el > index 41b943c..7575acf 100644 > --- a/lisp/ob-R.el > +++ b/lisp/ob-R.el > @@ -35,6 +35,8 @@ > (declare-function inferior-ess-send-input "ext:ess-inf" ()) > (declare-function ess-make-buffer-current "ext:ess-inf" ()) > (declare-function ess-eval-buffer "ext:ess-inf" (vis)) > +(declare-function ess-wait-for-process "ext:ess-inf" > + (&optional proc sec-prompt wait force-redisplay)) > (declare-function org-number-sequence "org-compat" (from &optional to inc)) > (declare-function org-remove-if-not "org" (predicate seq)) > (declare-function org-every "org" (pred seq)) > @@ -262,6 +264,7 @@ This function is called by `org-babel-execute-src-block'." > ;; Session buffer exists, but with dead process > (set-buffer session)) > (require 'ess) (R) > + (ess-wait-for-process) > (rename-buffer > (if (bufferp session) > (buffer-name session) -- Rainer M. Krug email: Rainerkrugsde PGP: 0x0F52F982