diff options
| -rw-r--r-- | geiser/evaluation.scm | 6 | ||||
| -rw-r--r-- | geiser/modules.scm | 5 | ||||
| -rw-r--r-- | geiser/xref.scm | 6 | 
3 files changed, 11 insertions, 6 deletions
| diff --git a/geiser/evaluation.scm b/geiser/evaluation.scm index 4fec3ed..cd4d6a4 100644 --- a/geiser/evaluation.scm +++ b/geiser/evaluation.scm @@ -42,10 +42,12 @@  (define (ge:compile form module-name)    (let* ((module (or (find-module module-name) (current-module)))           (result #f) -         (form `(start-stack 'geiser-evaluation-stack ,form))           (ev (lambda ()                 (set! result (call-with-values -                                (lambda () (compile form #:env module)) +                                (lambda () +                                  (compile (start-stack +                                            'geiser-evaluation-stack form) +                                           #:env module))                                (lambda vs (map object->string vs)))))))      (let ((output (with-output-to-string ev)))        (write `(,(cons 'result result) (output . ,output))) diff --git a/geiser/modules.scm b/geiser/modules.scm index 3ca593e..2934603 100644 --- a/geiser/modules.scm +++ b/geiser/modules.scm @@ -1,6 +1,6 @@  ;;; modules.scm -- module metadata -;; Copyright (C) 2009 Jose Antonio Ortega Ruiz +;; 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 @@ -27,7 +27,8 @@           (lambda ()             (apropos-fold (lambda (module name var init)                             (if (eq? name sym) -                               (throw 'module-name (module-name module)) init)) +                               (throw 'module-name (module-name module)) +                               init))                           #f                           (regexp-quote (symbol->string sym))                           (if (or (null? all) (not (car all))) diff --git a/geiser/xref.scm b/geiser/xref.scm index 54a0d9c..060bec4 100644 --- a/geiser/xref.scm +++ b/geiser/xref.scm @@ -1,6 +1,6 @@  ;;; xref.scm -- cross-referencing utilities -;; Copyright (C) 2009 Jose Antonio Ortega Ruiz +;; 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 @@ -24,7 +24,9 @@  (define (symbol-location sym)    (cond ((symbol-module sym) => module-location) -        (else '()))) +        (else (let ((obj (symbol->object sym))) +                (or (and (program? obj) (program-location obj)) +                    '())))))  (define (generic-methods sym)    (let* ((gen (symbol->object sym)) | 
