~ chicken-core (chicken-5) 097053f245df5d05b9526a016021d91a4b067d31
commit 097053f245df5d05b9526a016021d91a4b067d31 Author: Peter Bex <peter@more-magic.net> AuthorDate: Thu Apr 26 13:20:15 2018 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Thu Apr 26 14:03:31 2018 +0200 Do not walk iexps in ##sys#register-compiled-module. The iexps is always an alist of symbol->symbol mappings (see the comments in the module record type definition), which means it never contains syntax transformers. Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/modules.scm b/modules.scm index 8d338720..f8a00553 100644 --- a/modules.scm +++ b/modules.scm @@ -363,21 +363,15 @@ (find-reexport se) (list (car se) #f (##sys#ensure-transformer (cdr se) (car se))))) sexports)) - (iexps - (map (lambda (ie) - (if (pair? (cdr ie)) - (list (car ie) (cadr ie) (##sys#ensure-transformer (caddr ie) (car ie))) - ie)) - iexports)) (nexps (map (lambda (ne) (list (car ne) #f (##sys#ensure-transformer (cdr ne) (car ne)))) sdefs)) - (mod (make-module name lib '() vexports sexps iexps)) + (mod (make-module name lib '() vexports sexps iexports)) (senv (merge-se (##sys#macro-environment) (##sys#current-environment) - iexps vexports sexps nexps))) + iexports vexports sexps nexps))) (for-each (lambda (sexp) (set-car! (cdr sexp) (merge-se (or (cadr sexp) '()) senv))) @@ -386,7 +380,7 @@ (lambda (iexp) (when (pair? (cdr iexp)) (set-car! (cdr iexp) (merge-se (or (cadr iexp) '()) senv)))) - iexps) + iexports) (for-each (lambda (nexp) (set-car! (cdr nexp) (merge-se (or (cadr nexp) '()) senv)))Trap