1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-03 13:20: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))))) (module-add! public-i external-name var)))))
names))) names)))
(defmacro export names (define-syntax export
`(eval-when (eval load compile) (syntax-rules ()
((_ name ...)
(eval-when (eval load compile)
(call-with-deferred-observers (call-with-deferred-observers
(lambda () (lambda ()
(module-export! (current-module) ',names))))) (module-export! (current-module) '(name ...))))))))
(defmacro re-export names (define-syntax re-export
`(eval-when (eval load compile) (syntax-rules ()
((_ name ...)
(eval-when (eval load compile)
(call-with-deferred-observers (call-with-deferred-observers
(lambda () (lambda ()
(module-re-export! (current-module) ',names))))) (module-re-export! (current-module) '(name ...))))))))
(defmacro export-syntax names (define-syntax export-syntax
`(export ,@names)) (syntax-rules ()
((_ name ...)
(export name ...))))
(defmacro re-export-syntax names (define-syntax re-export-syntax
`(re-export ,@names)) (syntax-rules ()
((_ name ...)
(re-export name ...))))
(define load load-module) (define load load-module)