diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-11-06 21:42:09 +0100 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-11-06 21:42:09 +0100 | 
| commit | 2aad392f96e8fdf6040c3761171045e25fb0a8c9 (patch) | |
| tree | 93b87ab51faeaa35300b45e7a2cc69b027a8bbf8 /scheme | |
| parent | f972d32e556e305936e4aa9f1249fe2846e07a20 (diff) | |
| download | geiser-guile-2aad392f96e8fdf6040c3761171045e25fb0a8c9.tar.gz geiser-guile-2aad392f96e8fdf6040c3761171045e25fb0a8c9.tar.bz2 | |
Racket: little evaluation nits
Diffstat (limited to 'scheme')
| -rw-r--r-- | scheme/racket/geiser.rkt | 1 | ||||
| -rw-r--r-- | scheme/racket/geiser/eval.rkt | 9 | ||||
| -rw-r--r-- | scheme/racket/geiser/modules.rkt | 2 | ||||
| -rw-r--r-- | scheme/racket/geiser/user.rkt | 22 | 
4 files changed, 23 insertions, 11 deletions
| diff --git a/scheme/racket/geiser.rkt b/scheme/racket/geiser.rkt index 1ab7983..44a2ed8 100644 --- a/scheme/racket/geiser.rkt +++ b/scheme/racket/geiser.rkt @@ -20,5 +20,6 @@  (require errortrace)  (require geiser/user) +(init-geiser-repl)  ;;; geiser.rkt ends here diff --git a/scheme/racket/geiser/eval.rkt b/scheme/racket/geiser/eval.rkt index 4e7f3db..66eccc6 100644 --- a/scheme/racket/geiser/eval.rkt +++ b/scheme/racket/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/scheme/racket/geiser/modules.rkt b/scheme/racket/geiser/modules.rkt index 9b640ec..5c6ba1f 100644 --- a/scheme/racket/geiser/modules.rkt +++ b/scheme/racket/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/scheme/racket/geiser/user.rkt b/scheme/racket/geiser/user.rkt index 20f8a00..88cc24c 100644 --- a/scheme/racket/geiser/user.rkt +++ b/scheme/racket/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))) | 
