Sup, y'all

The geiser package had a recent update in which `geiser-eval-region` behaves 
like an async function and does not return evaluation result. In exchange, the 
newly introduced `geiser-eval-region/wait` does that now.

I've attached a patch to update ob-scheme.el to reflect these changes. Without 
them, evaluating scheme dialect code blocks in Org will end up with empty 
results.

To learn more about the change (and how it impacted other people's flows) see 
issue thread below

https://gitlab.com/emacs-geiser/geiser/-/issues/30

Felipe

update to new API call to evaluate region and wait for result

* ob-scheme.el replace `geiser-eval-region` with `geiser-eval-region/wait` as the former changed expected behaviour; the latter returns the result of evaluating.

diff --git a/lisp/org/ob-scheme.el b/lisp/org/ob-scheme.el
index f4836b23fe..89c6abf686 100644
--- a/lisp/org/ob-scheme.el
+++ b/lisp/org/ob-scheme.el
@@ -176,7 +176,7 @@ org-babel-scheme-execute-with-geiser
 	  (setq geiser-impl--implementation nil)
 	  (let ((geiser-debug-jump-to-debug-p nil)
 		(geiser-debug-show-debug-p nil))
-	    (let ((ret (geiser-eval-region (point-min) (point-max))))
+	    (let ((ret (geiser-eval-region/wait (point-min) (point-max))))
 	      (setq result (if output
 			       (or (geiser-eval--retort-output ret)
 				   "Geiser Interpreter produced no output")

Reply via email to