summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1999-03-21 13:04:39 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1999-03-21 13:04:39 +0000
commit7cbaee0c89df615e20e45892ab4909b880928c5e (patch)
tree4c7f8ce98bbebb241145ea034fad744bf755cad1
parent437bc84d5130dad737eed22ffc11ac5ebf26bb91 (diff)
downloadguile-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.scm19
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)