From a489f169ee116de25fc945d05eac9d8081c0f8d5 Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Mon, 18 May 2009 11:14:17 +0300 Subject: [PATCH] - added trace-let --- scheme/last-revision | 2 +- scheme/makefile.ss | 2 ++ scheme/psyntax.expander.ss | 10 ++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scheme/last-revision b/scheme/last-revision index 838cfd7..68194d9 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1780 +1781 diff --git a/scheme/makefile.ss b/scheme/makefile.ss index e63d7c7..c28de82 100755 --- a/scheme/makefile.ss +++ b/scheme/makefile.ss @@ -172,6 +172,7 @@ [unsyntax (macro . unsyntax)] [unsyntax-splicing (macro . unsyntax-splicing)] [trace-lambda (macro . trace-lambda)] + [trace-let (macro . trace-let)] [trace-define (macro . trace-define)] [trace-define-syntax (macro . trace-define-syntax)] [trace-let-syntax (macro . trace-let-syntax)] @@ -297,6 +298,7 @@ [include-into i] [time i] [trace-lambda i] + [trace-let i] [trace-define i] [trace-define-syntax i] [trace-let-syntax i] diff --git a/scheme/psyntax.expander.ss b/scheme/psyntax.expander.ss index 55a72c1..b21bce1 100644 --- a/scheme/psyntax.expander.ss +++ b/scheme/psyntax.expander.ss @@ -1141,6 +1141,15 @@ (bless `((letrec ((,f (lambda ,lhs* ,b . ,b*))) ,f) . ,rhs*)) (invalid-fmls-error stx lhs*)))))) + (define trace-let-macro + (lambda (stx) + (syntax-match stx () + ((_ f ((lhs* rhs*) ...) b b* ...) (id? f) + (if (valid-bound-ids? lhs*) + (bless + `((letrec ((,f (trace-lambda ,f ,lhs* ,b . ,b*))) ,f) . ,rhs*)) + (invalid-fmls-error stx lhs*)))))) + (define let-values-macro (lambda (stx) (define (rename x old* new*) @@ -2626,6 +2635,7 @@ ((define-enumeration) define-enumeration-macro) ((trace-lambda) trace-lambda-macro) ((trace-define) trace-define-macro) + ((trace-let) trace-let-macro) ((trace-define-syntax) trace-define-syntax-macro) ((trace-let-syntax) trace-let-syntax-macro) ((trace-letrec-syntax) trace-letrec-syntax-macro)