1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 18:20:22 +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 (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)