emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[nongnu] elpa/geiser-guile d1d05b7 175/284: Guile: using the new syntax


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-guile d1d05b7 175/284: Guile: using the new syntax for sending eval requests
Date: Sun, 1 Aug 2021 18:29:39 -0400 (EDT)

branch: elpa/geiser-guile
commit d1d05b74f9b7613cd42c4bcd0173bb617e50647f
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>

    Guile: using the new syntax for sending eval requests
---
 elisp/geiser-guile.el | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/elisp/geiser-guile.el b/elisp/geiser-guile.el
index e6cf8f1..3e1c03f 100644
--- a/elisp/geiser-guile.el
+++ b/elisp/geiser-guile.el
@@ -114,9 +114,16 @@ This function uses `geiser-guile-init-file' if it exists."
 
 ;;; Evaluation support:
 
-(defun geiser-guile--geiser-procedure (proc)
-  (let ((proc (intern (format "ge:%s" (if (eq proc 'eval) 'compile proc)))))
-    `(@ (geiser emacs) ,proc)))
+(defun geiser-guile--geiser-procedure (proc &rest args)
+  (case proc
+    ((eval compile) (format "((@ (geiser emacs) ge:compile) '%s '%s)"
+                            (mapconcat 'identity (cdr args) " ")
+                            (or (car args) "#f")))
+    ((load-file compile-file)
+     (format "((@ (geiser emacs) ge:%s) %s)" proc (car args)))
+    ((no-values) "((@ (guile) values))")
+    (t (format "(apply (@ (geiser emacs) ge:%s) (list %s))"
+               proc (mapconcat 'identity args "")))))
 
 (defconst geiser-guile--module-re
   "(define-module +\\(([^)]+)\\)")
@@ -205,7 +212,7 @@ This function uses `geiser-guile-init-file' if it exists."
     (if (file-name-absolute-p file) file
       (or (gethash file geiser-guile--file-cache)
           (puthash file
-                   (geiser-eval--send/result `(:eval ((:ge find-file) ,file)))
+                   (geiser-eval--send/result `(:eval (:ge find-file ,file)))
                    geiser-guile--file-cache)))))
 
 (defun geiser-guile--resolve-file-x ()



reply via email to

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