emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] [PATCH] WAS Re: Bug: problem w/ R code blocks [8.3beta (release_8.3


From: Charles Berry
Subject: [O] [PATCH] WAS Re: Bug: problem w/ R code blocks [8.3beta (release_8.3beta-362-ga92789 <at> /usr/local/share/emacs/site-lisp/org/)]
Date: Wed, 17 Sep 2014 03:25:57 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

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 <address@hidden>
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)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]