~ 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