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

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

[nongnu] elpa/geiser-racket 9790b39 039/191: Racket: little evaluation n


From: Philip Kaludercic
Subject: [nongnu] elpa/geiser-racket 9790b39 039/191: Racket: little evaluation nits
Date: Sun, 1 Aug 2021 18:31:56 -0400 (EDT)

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

    Racket: little evaluation nits
---
 geiser.rkt         |  1 +
 geiser/eval.rkt    |  9 +++++----
 geiser/modules.rkt |  2 +-
 geiser/user.rkt    | 22 ++++++++++++++++------
 4 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/geiser.rkt b/geiser.rkt
index 1ab7983..44a2ed8 100644
--- a/geiser.rkt
+++ b/geiser.rkt
@@ -20,5 +20,6 @@
 (require errortrace)
 
 (require geiser/user)
+(init-geiser-repl)
 
 ;;; geiser.rkt ends here
diff --git a/geiser/eval.rkt b/geiser/eval.rkt
index 4e7f3db..66eccc6 100644
--- a/geiser/eval.rkt
+++ b/geiser/eval.rkt
@@ -55,10 +55,11 @@
     (append last-result `((output . ,output)))))
 
 (define (eval-in form spec lang)
-  (call-with-result
-   (lambda ()
-     (update-signature-cache spec form)
-     (eval form (module-spec->namespace spec lang)))))
+  (write (call-with-result
+          (lambda ()
+            (update-signature-cache spec form)
+            (eval form (module-spec->namespace spec lang)))))
+  (newline))
 
 (define compile-in eval-in)
 
diff --git a/geiser/modules.rkt b/geiser/modules.rkt
index 9b640ec..5c6ba1f 100644
--- a/geiser/modules.rkt
+++ b/geiser/modules.rkt
@@ -74,7 +74,7 @@
                (call-with-values (lambda () (split-path path))
                  (lambda (_ basename __) (path->string basename)))
                (regexp-replace "\\.[^./]*$" real-path "")))]
-        [(eq? path '#%kernel) "(kernel)"]
+        ;; [(eq? path '#%kernel) "(kernel)"]
         [(string? path) path]
         [(symbol? path) (symbol->string path)]
         [else ""]))
diff --git a/geiser/user.rkt b/geiser/user.rkt
index 20f8a00..88cc24c 100644
--- a/geiser/user.rkt
+++ b/geiser/user.rkt
@@ -11,7 +11,7 @@
 
 #lang racket/base
 
-(provide enter!)
+(provide init-geiser-repl run-geiser-repl enter!)
 
 (require geiser/main geiser/enter geiser/eval (for-syntax racket/base))
 
@@ -29,6 +29,7 @@
                mod))))
 
 (define orig-loader (current-load/use-compiled))
+(define geiser-loader (module-loader orig-loader))
 
 (define orig-reader (current-prompt-read))
 
@@ -56,10 +57,19 @@
          (else form)))
       (_ form))))
 
-(define (init)
+(define geiser-prompt-read
+  (compose (make-repl-reader geiser-read) current-namespace))
+
+(define (init-geiser-repl)
   (compile-enforce-module-constants #f)
-  (current-load/use-compiled (module-loader orig-loader))
-  (current-prompt-read
-   (compose (make-repl-reader geiser-read) current-namespace)))
+  (current-load/use-compiled geiser-loader)
+  (current-prompt-read geiser-prompt-read))
 
-(init)
+(define (run-geiser-repl in out (enforce-module-constants #f))
+  (parameterize [(compile-enforce-module-constants enforce-module-constants)
+                 (current-input-port in)
+                 (current-output-port out)
+                 (current-error-port out)
+                 (current-load/use-compiled geiser-loader)
+                 (current-prompt-read geiser-prompt-read)]
+    (read-eval-print-loop)))



reply via email to

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