~ 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