diff options
| author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-06-06 05:36:43 +0200 | 
|---|---|---|
| committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2010-06-06 05:36:43 +0200 | 
| commit | e43cfa849ea8f361365bdea6b751c0f44467aa1a (patch) | |
| tree | 7c6ce8fc471eaae2fd2743b62fb178768f7ac7bb | |
| parent | 9b414b443347e13b7aec843299596fcac5e453ac (diff) | |
| download | geiser-guile-e43cfa849ea8f361365bdea6b751c0f44467aa1a.tar.gz geiser-guile-e43cfa849ea8f361365bdea6b751c0f44467aa1a.tar.bz2 | |
Guile: evaluation fixes (current git head).
| -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)) | 
