~ chicken-core (chicken-5) 5d4f12e23b8ac38ea8f33e06bb1e8d790e2b40be
commit 5d4f12e23b8ac38ea8f33e06bb1e8d790e2b40be Author: Peter Bex <peter@more-magic.net> AuthorDate: Sun Apr 3 18:47:33 2016 +0200 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Sun Apr 3 18:47:33 2016 +0200 Remove define-macro style define-syntax in internal definitions This was undocumented and unsupported, and complicated the code of "##sys#canonicalize-body". Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/NEWS b/NEWS index 40ac6d48..018145bb 100644 --- a/NEWS +++ b/NEWS @@ -30,6 +30,10 @@ namespace. - Added support for list-style library names. +- Syntax expander + - Removed support for (define-syntax (foo e r c) ...) inside lambdas, + which was undocumented and not officially supported anyway. + 4.10.2 - Security fixes diff --git a/expand.scm b/expand.scm index 43c090e7..18e3599c 100644 --- a/expand.scm +++ b/expand.scm @@ -533,20 +533,11 @@ (symbol? (caar body)) (comp 'define-syntax (caar body))) (let ((def (car body))) - (loop - (cdr body) - (cons (cond ((pair? (cadr def)) ; DEPRECATED - `(define-syntax ; (the first element is actually ignored) - ,(caadr def) - (##sys#er-transformer - (##core#lambda ,(cdadr def) ,@(cddr def))))) - ;; insufficient, if introduced by different expansions, but - ;; better than nothing: - ((eq? (car def) (cadr def)) - (defjam-error def)) - (else def)) - defs) - #f))) + ;; This check is insufficient, if introduced by + ;; different expansions, but better than nothing: + (when (eq? (car def) (cadr def)) + (defjam-error def)) + (loop (cdr body) (cons def defs) #f))) (else (loop body defs #t)))))) (define (expand body) ;; Each #t in "mvars" indicates an MV-capable "var". Non-MVTrap