mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-06 15:40:29 +02:00
* boot-9.scm (process-use-modules): New function to support the
use-modules macro (use-modules): throw an error iff one of the requested modules can't be found.
This commit is contained in:
parent
9ea54cc6fa
commit
89da903671
1 changed files with 11 additions and 4 deletions
|
@ -2476,11 +2476,18 @@
|
||||||
(set-current-module module)
|
(set-current-module module)
|
||||||
module))
|
module))
|
||||||
|
|
||||||
|
;; the guts of the use-modules macro. add the interfaces of the named
|
||||||
|
;; modules to the use-list of the current module, in order
|
||||||
|
(define (process-use-modules module-names)
|
||||||
|
(for-each (lambda (module-name)
|
||||||
|
(let ((mod-iface (resolve-interface module-name)))
|
||||||
|
(or mod-iface
|
||||||
|
(error "no such module" module-name))
|
||||||
|
(module-use! (current-module) mod-iface)))
|
||||||
|
(reverse module-names)))
|
||||||
|
|
||||||
(defmacro use-modules modules
|
(defmacro use-modules modules
|
||||||
`(for-each (lambda (module)
|
`(process-use-modules ',modules))
|
||||||
(module-use! (current-module)
|
|
||||||
(resolve-interface module)))
|
|
||||||
(reverse ',modules)))
|
|
||||||
|
|
||||||
(define define-private define)
|
(define define-private define)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue