diff options
-rw-r--r-- | ice-9/ChangeLog | 11 | ||||
-rw-r--r-- | ice-9/boot-9.scm | 19 | ||||
-rw-r--r-- | ice-9/session.scm | 6 |
3 files changed, 23 insertions, 13 deletions
diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index 951131e0e..10a755e5d 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,14 @@ +1999-03-21 Mikael Djurfeldt <mdj@barbara.nada.kth.se> + + * boot-9.scm (process-define-module, use-syntax): Bugfix: + :use-syntax should add syntax to using module, not current module. + (internal-use-syntax): Removed. + +1999-03-21 Mikael Djurfeldt <mdj@mdj.nada.kth.se> + + * session.scm (apropos-internal): Modified to comply with new + argument order for hash-fold. + 1999-03-19 Mikael Djurfeldt <mdj@barbara.nada.kth.se> * boot-9.scm (try-load-module): New procedure. Broken out from 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) diff --git a/ice-9/session.scm b/ice-9/session.scm index 96f8268c0..6d8e58b5a 100644 --- a/ice-9/session.scm +++ b/ice-9/session.scm @@ -89,15 +89,15 @@ (recorded (make-vector 61 '())) (obarray-names (lambda (obarray names) - (hash-fold obarray - (lambda (name var vars) + (hash-fold (lambda (name var vars) (if (and (regexp-exec match name) (not (hashq-get-handle recorded name))) (begin (hashq-set! recorded name #t) (cons name vars)) vars)) - names)))) + names + obarray)))) (do ((modules (cons (current-module) (module-uses (current-module))) (cdr modules)) (names '() |