emacs-orgmode
[Top][All Lists]
Advanced

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

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


From: Rainer M Krug
Subject: Re: [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 09:20:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin)

Charles Berry <address@hidden> writes:

> 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.

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 <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)

-- 
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982

Attachment: pgpmUHfw8ofk8.pgp
Description: PGP signature


reply via email to

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