From 858198b8860c1b56d541fec2e08af9d7d3fb9c29 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Fri, 16 Oct 2009 09:54:14 +0300 Subject: [PATCH] fixed a bug in using a precompiled variable transformers. --- scheme/last-revision | 2 +- scheme/psyntax.expander.ss | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/scheme/last-revision b/scheme/last-revision index 3f04454..d923863 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1858 +1859 diff --git a/scheme/psyntax.expander.ss b/scheme/psyntax.expander.ss index 8a85771..d2010e8 100644 --- a/scheme/psyntax.expander.ss +++ b/scheme/psyntax.expander.ss @@ -2713,7 +2713,6 @@ (lambda (p e r) (do-macro-call (local-macro-transformer p) e r))) (define (chi-global-macro p e r) - ;;; FIXME: does not handle macro!? (let ((lib (car p)) (loc (cdr p))) (unless (eq? lib '*interaction*) @@ -2722,6 +2721,10 @@ (let ((transformer (cond ((procedure? x) x) + ((and (pair? x) + (eq? (car x) 'macro!) + (procedure? (cdr x))) + (cdr x)) (else (assertion-violation 'chi-global-macro "BUG: not a procedure" x))))) (do-macro-call transformer e r)))))