[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/geiser-racket eafee8d 142/191: racket: new , geiser-load c
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/geiser-racket eafee8d 142/191: racket: new , geiser-load command in REPL |
Date: |
Sun, 1 Aug 2021 18:32:17 -0400 (EDT) |
branch: elpa/geiser-racket
commit eafee8d908228636e9eac99197a9aff26a03326e
Author: Jose Antonio Ortega Ruiz <jao@gnu.org>
Commit: Jose Antonio Ortega Ruiz <jao@gnu.org>
racket: new ,geiser-load command in REPL
... and used also internally for C-c C-k, although it doesn't yet work
as well as i wanted when it comes to load modules. The reason is
probably in geiser/enter, where we don't record modification times per
submodule but per path, which is not correct in the presence of submodules.
---
geiser/eval.rkt | 8 ++++----
geiser/user.rkt | 34 ++++++++++++++++++++++++----------
2 files changed, 28 insertions(+), 14 deletions(-)
diff --git a/geiser/eval.rkt b/geiser/eval.rkt
index 9b510cf..752a405 100644
--- a/geiser/eval.rkt
+++ b/geiser/eval.rkt
@@ -1,6 +1,6 @@
;;; eval.rkt -- evaluation
-;; Copyright (C) 2009, 2010, 2011, 2012 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2011, 2012, 2013 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
@@ -15,8 +15,8 @@
load-file
macroexpand
add-to-load-path
- make-repl-reader)
-
+ make-repl-reader
+ call-with-result)
(require geiser/enter geiser/modules geiser/images)
(require errortrace/errortrace-lib)
@@ -50,7 +50,7 @@
(parameterize ([current-error-port (current-output-port)])
(with-handlers ([exn? set-last-error])
(call-with-values thunk set-last-result)))))])
- (append last-result `((output . ,output)))))
+ (append last-result `(,(cons 'output output)))))
(define (eval-in form spec lang)
(write (call-with-result
diff --git a/geiser/user.rkt b/geiser/user.rkt
index 5ce003d..cd3fea6 100644
--- a/geiser/user.rkt
+++ b/geiser/user.rkt
@@ -48,6 +48,9 @@
[(symbol? parent) mod]
[else #f]))))
+(define (module-error stx mod)
+ (raise-syntax-error #f "Invalid module path" stx mod))
+
(define (enter! mod stx)
(cond [(not mod)
(current-namespace top-namespace)
@@ -56,7 +59,7 @@
[(path-string? mod) (do-enter `(file ,mod) mod)]
[(file-mod? mod) (do-enter mod (cadr mod))]
[(submod-path mod) => (lambda (m) (do-enter m m))]
- [else (raise-syntax-error #f "Invalid module path" stx mod)]))
+ [else (module-error stx mod)]))
(define orig-loader (current-load/use-compiled))
(define geiser-loader (module-loader orig-loader))
@@ -66,15 +69,25 @@
(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-here (read))]
- [args (map eval-here (read))]
- [ev (lambda () (apply proc args))])
- (eval-in `(,ev) mod lang))]
- [else ((geiser:eval lang) form mod)])))))
+ [form (read)]
+ [res (cond [(equal? form '(unquote apply))
+ (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)])])
+ (datum->syntax #f (list 'quote res))))
+
+(define (geiser-load stx)
+ (let* ([mod (read)]
+ [res (call-with-result
+ (lambda ()
+ (enter-module (cond [(file-mod? mod) mod]
+ [(path-string? mod) `(file ,mod)]
+ [(submod-path mod)]
+ [else (module-error stx mod)]))
+ (void)))])
+ (datum->syntax stx (list 'quote res))))
(define ((geiser-read prompt))
(prompt)
@@ -88,6 +101,7 @@
[(start-geiser) (datum->syntax #f `(list 'port ,(start-geiser)))]
[(enter) (enter! (read) #'cmd)]
[(geiser-eval) (geiser-eval)]
+ [(geiser-load) (geiser-load #'cmd)]
[(geiser-no-values) (datum->syntax #f (void))]
[(add-to-load-path) (add-to-load-path (read))]
[(set-image-cache) (image-cache (read))]
- [nongnu] elpa/geiser-racket 7df27a3 067/191: Document browser improvements, and Racket using them, (continued)
- [nongnu] elpa/geiser-racket 7df27a3 067/191: Document browser improvements, and Racket using them, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 2494b95 068/191: Document browser improvements, and Racket using them, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket ed7347d 093/191: Racket: configurable image cache directory, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 36d2d55 097/191: racket: reading into elisp-land the cache dir as needed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 1f7a9e2 124/191: Racket: better help commands, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket b23d52d 123/191: Racket: better help commands, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket a5f8702 132/191: Racket: correct font lock for define/match, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 4e68ebc 140/191: racket: C-u C-c C-z on a submodule enters it, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 65447c4 138/191: racket: handling correctly submodules in load handler during , enter, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket e1474f1 141/191: Nits, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket eafee8d 142/191: racket: new , geiser-load command in REPL,
Philip Kaludercic <=
- [nongnu] elpa/geiser-racket e311818 154/191: Racket: duplicate version check removed, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket c6b4c09 155/191: Racket: fix for evaluations inside typed/racket modules, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 7f89d8f 170/191: Use (car (process-lines ...)) instead of (shell-command ...), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket a0532bc 169/191: Quoting binary on version checks (issue #117), Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 5a7b12c 179/191: Fix typos, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 0cb58c8 183/191: racket server to access via geiser-connect, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 18cb3b3 185/191: README.md, Philip Kaludercic, 2021/08/01
- [nongnu] elpa/geiser-racket 1996cca 187/191: Ready for MELPA, Philip Kaludercic, 2021/08/01