1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-20 10:40:19 +02:00

* boot-9.scm (process-define-module, use-syntax): Bugfix:

:use-syntax should add syntax to using module, not current module.
(internal-use-syntax): Removed.
This commit is contained in:
Mikael Djurfeldt 1999-03-21 13:04:39 +00:00
parent 437bc84d51
commit 7cbaee0c89

View file

@ -1970,10 +1970,6 @@
(define %autoloader-developer-mode #t) (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) (define (process-define-module args)
(let* ((module-id (car args)) (let* ((module-id (car args))
(module (resolve-module module-id #f)) (module (resolve-module module-id #f))
@ -2009,7 +2005,8 @@
(error "missing interface for use-module" (error "missing interface for use-module"
used-module)) used-module))
(if (eq? keyword 'use-syntax) (if (eq? keyword 'use-syntax)
(internal-use-syntax (set-module-transformer!
module
(module-ref interface (car (last-pair used-name)) (module-ref interface (car (last-pair used-name))
#f))) #f)))
(loop (cddr kws) (loop (cddr kws)
@ -2898,11 +2895,13 @@
`(process-use-modules ',modules)) `(process-use-modules ',modules))
(defmacro use-syntax (spec) (defmacro use-syntax (spec)
(if (pair? spec) `(begin
`(begin ,@(if (pair? spec)
(process-use-modules ',(list spec)) `((process-use-modules ',(list spec))
(internal-use-syntax ,(car (last-pair spec)))) (set-module-transformer! (current-module)
`(internal-use-syntax ,spec))) ,(car (last-pair spec))))
`((set-module-transformer! (current-module) ,spec)))
(set! scm:eval-transformer (module-transformer (current-module)))))
(define define-private define) (define define-private define)