diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-03-21 13:04:39 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-03-21 13:04:39 +0000 |
commit | 7cbaee0c89df615e20e45892ab4909b880928c5e (patch) | |
tree | 4c7f8ce98bbebb241145ea034fad744bf755cad1 | |
parent | 437bc84d5130dad737eed22ffc11ac5ebf26bb91 (diff) | |
download | guile-7cbaee0c89df615e20e45892ab4909b880928c5e.tar.gz |
* boot-9.scm (process-define-module, use-syntax): Bugfix:
:use-syntax should add syntax to using module, not current module.
(internal-use-syntax): Removed.
-rw-r--r-- | ice-9/boot-9.scm | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/ice-9/boot-9.scm b/ice-9/boot-9.scm index cc7cd11f6..606d881f9 100644 --- a/ice-9/boot-9.scm +++ b/ice-9/boot-9.scm @@ -1970,10 +1970,6 @@ (define %autoloader-developer-mode #t) -(define (internal-use-syntax transformer) - (set-module-transformer! (current-module) transformer) - (set! scm:eval-transformer transformer)) - (define (process-define-module args) (let* ((module-id (car args)) (module (resolve-module module-id #f)) @@ -2009,7 +2005,8 @@ (error "missing interface for use-module" used-module)) (if (eq? keyword 'use-syntax) - (internal-use-syntax + (set-module-transformer! + module (module-ref interface (car (last-pair used-name)) #f))) (loop (cddr kws) @@ -2898,11 +2895,13 @@ `(process-use-modules ',modules)) (defmacro use-syntax (spec) - (if (pair? spec) - `(begin - (process-use-modules ',(list spec)) - (internal-use-syntax ,(car (last-pair spec)))) - `(internal-use-syntax ,spec))) + `(begin + ,@(if (pair? spec) + `((process-use-modules ',(list spec)) + (set-module-transformer! (current-module) + ,(car (last-pair spec)))) + `((set-module-transformer! (current-module) ,spec))) + (set! scm:eval-transformer (module-transformer (current-module))))) (define define-private define) |