diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-05-23 23:10:52 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-05-23 23:10:52 +0200 |
commit | 94f76a1565f09d189d9f2cef6d3df7860321709e (patch) | |
tree | 766fd38a46c3cd5dd4835ec73f57598d698466cf /scheme/plt/geiser/eval.ss | |
parent | acceb169d10e6096124a79b57d1c7e2dc447d37d (diff) | |
download | geiser-chez-94f76a1565f09d189d9f2cef6d3df7860321709e.tar.gz geiser-chez-94f76a1565f09d189d9f2cef6d3df7860321709e.tar.bz2 |
Racket support (PLT 5 needed).
Diffstat (limited to 'scheme/plt/geiser/eval.ss')
-rw-r--r-- | scheme/plt/geiser/eval.ss | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/scheme/plt/geiser/eval.ss b/scheme/plt/geiser/eval.ss deleted file mode 100644 index e806138..0000000 --- a/scheme/plt/geiser/eval.ss +++ /dev/null @@ -1,81 +0,0 @@ -;;; eval.ss -- evaluation - -;; Copyright (C) 2009, 2010 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 -;; have received a copy of the license along with this program. If -;; not, see <http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5>. - -;; Start date: Sun Apr 26, 2009 00:44 - -#lang scheme - -(provide eval-in - compile-in - load-file - compile-file - macroexpand - make-repl-reader) - -(require scheme/enter geiser/modules geiser/autodoc) - -(define last-result (void)) - -(define namespace->module-name - (compose module-path-name->name namespace->module-path-name)) - -(define last-namespace (make-parameter (current-namespace))) - -(define (exn-key e) - (vector-ref (struct->vector e) 0)) - -(define (set-last-error e) - (set! last-result `((error (key . ,(exn-key e))))) - (display (exn-message e))) - -(define (write-value v) - (with-output-to-string - (lambda () (write v)))) - -(define (set-last-result . vs) - (set! last-result `((result ,@(map write-value vs))))) - -(define (call-with-result thunk) - (set-last-result (void)) - (let ((output - (with-output-to-string - (lambda () - (with-handlers ((exn? set-last-error)) - (call-with-values thunk set-last-result)))))) - (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))))) - -(define compile-in eval-in) - -(define (load-file file) - (call-with-result - (lambda () - (load-module file (current-output-port) (last-namespace)) - (update-signature-cache file)))) - -(define compile-file load-file) - -(define (macroexpand form . all) - (let ((all (and (not (null? all)) (car all)))) - (with-output-to-string - (lambda () - (pretty-print (syntax->datum ((if all expand expand-once) form))))))) - -(define (make-repl-reader builtin-reader) - (lambda (ns) - (last-namespace ns) - (printf "mzscheme@~a" (namespace->module-name ns)) - (builtin-reader))) - -;;; eval.ss ends here |