Charles Berry <ccberry <at> ucsd.edu> writes: > > Rainer M Krug <Rainer <at> 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. Chuck == >From 89472012d80ce9ad4c8722f304c0d29327efa1fc Mon Sep 17 00:00:00 2001 From: chasberry <ccbe...@ucsd.edu> 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) -- 1.8.5.2 (Apple Git-48)