[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-racket 4ad7d89 082/191: Racket: eval geiser-eval's
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-racket 4ad7d89 082/191: Racket: eval geiser-eval's apply arguments properly |
Date: |
Sun, 1 Aug 2021 18:32:04 -0400 (EDT) |
branch: elpa/geiser-racket
commit 4ad7d8984fd1196820a7b58a8ea9c62fb889fc03
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
Racket: eval geiser-eval's apply arguments properly
As Stanisław Halik reported, autodoc was receiving a mlist (instead of
a list) as its argument when invoked in an R5RS context. Turns out we
were evaluating geiser-eval's arguments in the wrong context (the
procedure being applied and the arglist belong to the same namespace).
---
geiser/autodoc.rkt | 7 +++----
geiser/user.rkt | 8 +++++---
geiser/utils.rkt | 4 ++--
3 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/geiser/autodoc.rkt b/geiser/autodoc.rkt
index 6e73271..bdd6422 100644
--- a/geiser/autodoc.rkt
+++ b/geiser/autodoc.rkt
@@ -1,6 +1,6 @@
;;; autodoc.rkt -- suport for autodoc echo
-;; Copyright (C) 2009, 2010 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2011 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -102,9 +102,8 @@
(dynamic-require mod id (const #f))))
(define (autodoc ids)
- (if (not (list? ids))
- '()
- (map (lambda (id) (or (autodoc* id) (list id))) ids)))
+ (map (lambda (id) (or (autodoc* id) (list id)))
+ (if (list? ids) ids '())))
(define (autodoc* id (extra #t))
(define (val)
diff --git a/geiser/user.rkt b/geiser/user.rkt
index 621b47f..4479b42 100644
--- a/geiser/user.rkt
+++ b/geiser/user.rkt
@@ -50,15 +50,17 @@
(define (geiser-eval)
(define geiser-main (module->namespace 'geiser))
+ (define (eval-here form) (eval form geiser-main))
(let* ([mod (read)]
[lang (read)]
[form (read)])
(datum->syntax #f
(list 'quote
(cond [(equal? form '(unquote apply))
- (let* ([proc (eval (read) geiser-main)]
- [args (read)])
- (eval-in `(,proc ,@args) mod lang))]
+ (let* ([proc (eval-here (read))]
+ [args (map eval-here (read))]
+ [ev (lambda () (apply proc args))])
+ (eval-in `(,ev) mod lang))]
[else ((geiser:eval lang) form mod)])))))
(define ((geiser-read prompt))
diff --git a/geiser/utils.rkt b/geiser/utils.rkt
index 4bf9494..80d5150 100644
--- a/geiser/utils.rkt
+++ b/geiser/utils.rkt
@@ -15,6 +15,8 @@
keyword->symbol
symbol->keyword)
+(require racket/mpair)
+
(define (pair->list pair)
(let loop ([d pair] [s '()])
(cond [(null? d) (reverse s)]
@@ -23,5 +25,3 @@
(define keyword->symbol (compose string->symbol keyword->string))
(define (symbol->keyword sym) (string->keyword (format "~a" sym)))
-
-;;; utils.rkt ends here
- [nongnu] elpa/geiser-racket c8dedf3 004/191: Racket: better autodoc for syntax forms, (continued)
- [nongnu] elpa/geiser-racket c8dedf3 004/191: Racket: better autodoc for syntax forms, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 74d80a1 016/191: Racket: following error links in separate window., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 05ff74e 025/191: Racket: better stack traces using errortrace, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 637c944 022/191: Displaying variable values in autodoc., Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2f2fbdd 044/191: Racket: use EOT token for internal communications, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket dd9afbe 048/191: Racket: remote REPLs, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 8160d23 050/191: Partial work (connections working), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket f83efd0 061/191: Support for implementation-specific font lock keywords, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2130465 065/191: Racket: showing submodules in module help, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 19e0bd6 094/191: Racket: reading into elisp-land the cache dir as needed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 4ad7d89 082/191: Racket: eval geiser-eval's apply arguments properly,
Philip Kaludercic <=
- [nongnu] elpa/geiser-racket 1964a0d 096/191: racket: reading into elisp-land the cache dir as needed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket dd2bbc3 090/191: Racket: fix for module compilation for recent rackets, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 51cd041 101/191: Image display functionality refactored to its own module, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket fd450c0 113/191: Racket: make sure stderr is flushed in REPL, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket ead1967 111/191: Racket: fix for module evaluation/entering, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket d986e3b 107/191: racket: correctly jump to symbols defined in .ss modules, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 46bde5a 115/191: Indentation for match-let, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 9fa09a8 129/191: Racket: fix for jump to manual for symbols not in the namespace, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 15b52ff 131/191: Fix for Racket compilation error jumping in REPL, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 85d1e6a 136/191: racket: ,gcd -> ,pwd, Philip Kaludercic, 2021/08/01