diff options
author | Andy Wingo <wingo@pobox.com> | 2010-04-23 15:44:31 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2010-04-24 17:42:00 +0200 |
commit | 9e0bfdbaa39ff87e002ec5bbf7183de4ce8f6b61 (patch) | |
tree | 428ee0b219a0341f57600a18ea43de781db4ac29 | |
parent | b910c4ac4ec8c66d1c6495ae958fd76641a32e53 (diff) | |
download | guile-9e0bfdbaa39ff87e002ec5bbf7183de4ce8f6b61.tar.gz |
use the define-module variants in module-name and make-modules-in
* module/ice-9/boot-9.scm (module-name): Use module-define-submodule!
instead of nested-define!.
(make-modules-in): Rewrite in terms of nested-define-module!.
-rw-r--r-- | module/ice-9/boot-9.scm | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm index 9fef3a795..b6b077c6c 100644 --- a/module/ice-9/boot-9.scm +++ b/module/ice-9/boot-9.scm @@ -2267,24 +2267,16 @@ If there is no handler at all, Guile prints an error and then exits." ;; `resolve-module'. This is important as `psyntax' stores module ;; names and relies on being able to `resolve-module' them. (set-module-name! mod name) - (nested-define! (resolve-module '() #f) name mod) + (nested-define-module! (resolve-module '() #f) name mod) (accessor mod)))))) (define (make-modules-in module name) - (if (null? name) - module - (make-modules-in - (let* ((var (module-local-variable module (car name))) - (val (and var (variable-bound? var) (variable-ref var)))) - (if (module? val) - val - (let ((m (make-module 31))) - (set-module-kind! m 'directory) - (set-module-name! m (append (module-name module) - (list (car name)))) - (module-define! module (car name) m) - m))) - (cdr name)))) + (or (nested-ref-module module name) + (let ((m (make-module 31))) + (set-module-kind! m 'directory) + (set-module-name! m (append (module-name module) name)) + (nested-define-module! module name m) + m))) (define (beautify-user-module! module) (let ((interface (module-public-interface module))) |