1
Fork 0
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:
Andy Wingo 2010-05-03 16:34:12 +02:00
parent 4e3328ce69
commit d61517239d

View file

@ -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)