1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-18 02:00:20 +02:00

allow fluid macro bindings

* module/language/elisp/compile-tree-il.scm (define-macro!, get-macro):
  Allow fluid macro bindings.
This commit is contained in:
Brian Templeton 2010-06-30 16:48:19 -04:00
parent e322a02bc1
commit faf160ff1a

View file

@ -544,7 +544,8 @@
(and
(symbol? sym)
(module-defined? (resolve-interface function-slot) sym)
(let ((macro (module-ref (resolve-module function-slot) sym)))
(let* ((macro (module-ref (resolve-module function-slot) sym))
(macro (if (fluid? macro) (fluid-ref macro) macro)))
(and (pair? macro) (eq? (car macro) 'macro)))))
(define (define-macro! loc sym definition)
@ -555,7 +556,8 @@
(define (get-macro sym)
(and
(is-macro? sym)
(cdr (module-ref (resolve-module function-slot) sym))))
(let ((macro (module-ref (resolve-module function-slot) sym)))
(cdr (if (fluid? macro) (fluid-ref macro) macro)))))
;;; See if a (backquoted) expression contains any unquotes.