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

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

[nongnu] elpa/geiser-guile cc460a3 283/284: Fix Geiser for Guile 3.0.6


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-guile cc460a3 283/284: Fix Geiser for Guile 3.0.6
Date: Sun, 1 Aug 2021 18:30:01 -0400 (EDT)

branch: elpa/geiser-guile
commit cc460a348950c79843b5c9c9b68b86c92077ace4
Author: jakub-w <jakub-w@riseup.net>
Commit: jakub-w <jakub-w@riseup.net>

    Fix Geiser for Guile 3.0.6
    
    Fixes emacs-geiser/guile#9
    
    In geiser-eval REPL meta-command:
    All `mod`, `form` and `args` are now syntax objects. The
    geiser-guile's logic will handle `mod` and `form` as is because
    they're just passed to guile's eval and compile procedures.
    `args` are processed by geiser-eval meta-command itself, so
    it's necessary to convert it back to a datum. We lose some metadata,
    but all elements in the `args` list are also syntax objects so I don't
    think it's a big deal.
    
    `syntax->datum` was introduced before guile 2 so this change is
    backward compatible.
---
 src/geiser/emacs.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/geiser/emacs.scm b/src/geiser/emacs.scm
index 6f2fc29..555add2 100644
--- a/src/geiser/emacs.scm
+++ b/src/geiser/emacs.scm
@@ -35,11 +35,12 @@ Meta-command used by Geiser to emit a new line."
 (define-meta-command ((geiser-eval geiser) repl (mod form args) . rest)
   "geiser-eval module form args ()
 Meta-command used by Geiser to evaluate and compile code."
-  (if (null? args)
-      (call-with-error-handling
-       (lambda () (ge:compile form mod)))
-      (let ((proc (eval form this-module)))
-        (ge:eval `(,proc ,@args) mod))))
+  (let ((args (syntax->datum args)))
+    (if (null? args)
+       (call-with-error-handling
+        (lambda () (ge:compile form mod)))
+       (let ((proc (eval form this-module)))
+          (ge:eval `(,proc ,@args) mod)))))
 
 (define-meta-command ((geiser-load-file geiser) repl file)
   "geiser-load-file file



reply via email to

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