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

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

[nongnu] elpa/geiser-chicken f43bfec 007/102: Various improvements


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-chicken f43bfec 007/102: Various improvements
Date: Sun, 1 Aug 2021 18:26:45 -0400 (EDT)

branch: elpa/geiser-chicken
commit f43bfec1f7c6059aa5c1556d37ebce80f649758e
Author: Dan Leslie <dan@ironoxide.ca>
Commit: Dan Leslie <dan@ironoxide.ca>

    Various improvements
    - Can now optionally compile Geiser components for enormous speed
    improvements; enabled by default
    - Apropos was returning many duplicates, which was causing slowdowns;
    duplicates are now filtered
    - Now check for #<unspecified> results and return something
    - Fixed a typo in a comment
    - Fixed a typo in calling string-length
---
 geiser/emacs.scm | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/geiser/emacs.scm b/geiser/emacs.scm
index 05c5101..e4e84c0 100644
--- a/geiser/emacs.scm
+++ b/geiser/emacs.scm
@@ -231,11 +231,12 @@
   (define (describe-symbol sym #!key (exact? #f))
     (let* ((str (symbol->string sym))
            (found (apropos-information-list (regexp (make-apropos-regex str)) 
#:macros? #t)))
-      (if exact?
-          (filter (lambda (v)
-                    (equal? str (string-substitute ".*#([^#]+)" "\\1" 
(symbol->string (car v)))))
-                  found)
-          found)))
+      (delete-duplicates
+       (if exact?
+           (filter (lambda (v)
+                     (equal? str (string-substitute ".*#([^#]+)" "\\1" 
(symbol->string (car v)))))
+                   found)
+           found))))
 
   ;; Wraps output from geiser functions
   (define (call-with-result module thunk)
@@ -255,9 +256,14 @@
 
       (switch-module original-module)
 
-      (set! result (if (list? result)
-                       (map (lambda (v) (with-output-to-string (lambda () 
(write v)))) result)
-                       (list (with-output-to-string (lambda () (write 
result))))))
+      (set! result
+        (cond
+         ((list? result)
+          (map (lambda (v) (with-output-to-string (lambda () (write v)))) 
result))
+         ((eq? result (if #f #t))
+          (list output))
+         (else
+          (list (with-output-to-string (lambda () (write result)))))))
 
       (let ((out-form
              `((result ,@result)
@@ -415,7 +421,7 @@
 
     (map fmt (find sym)))
 
-  ;; Builds the documentation from Chicken Doc for a specific ymbol
+  ;; Builds the documentation from Chicken Doc for a specific symbol
   (define (make-doc symbol #!optional (filter-for-type #f))
     (with-output-to-string
       (lambda ()
@@ -590,7 +596,7 @@
     (let* ((directory (if (symbol? directory)
                           (symbol->string directory)
                           directory))
-           (directory (if (not (equal? #\/ (string-ref directory (- 
(string-length directory 1)))))
+           (directory (if (not (equal? #\/ (string-ref directory (- 
(string-length directory)))))
                           (string-append directory "/")
                           directory)))
       (call-with-result #f



reply via email to

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