Hello Chuck,
On Monday, 27 Sep 2021 at 18:28, Berry, Charles wrote:
>
> It looks like you have `(setq ess-eval-visibly t)' here. I think that is a
> default setting.
Thanks again for your suggestion. The following patch to be applied on
top of the previous one, solves the issue.
#+begin_src R :session *R* :results output :async yes
Sys.sleep(5)
1:5
#+end_src
#+RESULTS:
: [1] 1 2 3 4 5
The function (ess-eval-buffer), when the parameter VIS is nil, misled me in
the sense that it inverses
the value of ess-eval-visibly.
Note as well that all the tests in test-ob-R.el passed including the
tests for async evaluation from [1] ob-session-async.
[1]: https://github.com/jackkamm/ob-session-async/.
>From 795cc0ebe637aa4ff148c495cf5403ba2baec242 Mon Sep 17 00:00:00 2001
From: Jeremie Juste <djj@debian-BULLSEYE-live-builder-AMD64>
Date: Mon, 27 Sep 2021 22:02:17 +0200
Subject: [PATCH] ob-R.el: Patch async evaluation when :results output
* lisp/ob-R.el (ob-session-async-org-babel-R-evaluate-session): Make
sure that 'ess-eval-visibly' is nil before evaluating the temporary
buffer, but return ess-eval-visibly to it's original state afterwards.
---
lisp/ob-R.el | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lisp/ob-R.el b/lisp/ob-R.el
index 299ccdf1d..188b9ac8f 100644
--- a/lisp/ob-R.el
+++ b/lisp/ob-R.el
@@ -526,8 +526,11 @@ by `org-babel-comint-async-filter'."
(insert body)
(insert "\n")
(insert (format ob-session-async-R-indicator
- "end" uuid))
+ "end" uuid))
+ (setq tmp ess-eval-visibly)
+ (setq ess-eval-visibly nil)
(ess-eval-buffer nil))
+ (setq ess-eval-visibly tmp)
uuid))))
(defun ob-session-async-R-value-callback (params tmp-file)
--
2.30.2
Thanks again to Jack for this useful feature.
Best regards,
Jeremie