mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 13:00:26 +02:00
export, re-export etc as syntax-rules macros
* module/ice-9/boot-9.scm (export, re-export, export-syntax) (re-export-syntax): Rewrite as syntax-rules macros.
This commit is contained in:
parent
4e3328ce69
commit
d61517239d
1 changed files with 22 additions and 14 deletions
|
@ -3481,23 +3481,31 @@ module '(ice-9 q) '(make-q q-length))}."
|
|||
(module-add! public-i external-name var)))))
|
||||
names)))
|
||||
|
||||
(defmacro export names
|
||||
`(eval-when (eval load compile)
|
||||
(call-with-deferred-observers
|
||||
(lambda ()
|
||||
(module-export! (current-module) ',names)))))
|
||||
(define-syntax export
|
||||
(syntax-rules ()
|
||||
((_ name ...)
|
||||
(eval-when (eval load compile)
|
||||
(call-with-deferred-observers
|
||||
(lambda ()
|
||||
(module-export! (current-module) '(name ...))))))))
|
||||
|
||||
(defmacro re-export names
|
||||
`(eval-when (eval load compile)
|
||||
(call-with-deferred-observers
|
||||
(lambda ()
|
||||
(module-re-export! (current-module) ',names)))))
|
||||
(define-syntax re-export
|
||||
(syntax-rules ()
|
||||
((_ name ...)
|
||||
(eval-when (eval load compile)
|
||||
(call-with-deferred-observers
|
||||
(lambda ()
|
||||
(module-re-export! (current-module) '(name ...))))))))
|
||||
|
||||
(defmacro export-syntax names
|
||||
`(export ,@names))
|
||||
(define-syntax export-syntax
|
||||
(syntax-rules ()
|
||||
((_ name ...)
|
||||
(export name ...))))
|
||||
|
||||
(defmacro re-export-syntax names
|
||||
`(re-export ,@names))
|
||||
(define-syntax re-export-syntax
|
||||
(syntax-rules ()
|
||||
((_ name ...)
|
||||
(re-export name ...))))
|
||||
|
||||
(define load load-module)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue