branch: elpa/geiser-guile
commit cc460a348950c79843b5c9c9b68b86c92077ace4
Author: jakub-w <[email protected]>
Commit: jakub-w <[email protected]>
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