~ chicken-core (chicken-5) 6fac44ad48df0441dc8f67bbeec266514bc1b8f0


commit 6fac44ad48df0441dc8f67bbeec266514bc1b8f0
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Sat Sep 26 08:37:41 2015 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Sat Sep 26 10:36:19 2015 +0200

    Initialize saved-environments list for compiled modules
    
    Also restores the test for using `module-environment` with a
    non-primitive module.

diff --git a/modules.scm b/modules.scm
index 0d29b930..38b34da8 100644
--- a/modules.scm
+++ b/modules.scm
@@ -382,6 +382,10 @@
      (lambda (nexp)
        (set-car! (cdr nexp) (merge-se (or (cadr nexp) '()) senv)))
      nexps)
+    (set-module-saved-environments!
+     mod
+     (cons (merge-se (##sys#current-environment) vexports sexps)
+	   (##sys#macro-environment)))
     (set! ##sys#module-table (cons (cons name mod) ##sys#module-table)) 
     mod))
 
diff --git a/tests/environment-tests.scm b/tests/environment-tests.scm
index 0e84d3cb..0f1444c9 100644
--- a/tests/environment-tests.scm
+++ b/tests/environment-tests.scm
@@ -41,10 +41,13 @@
 
 (define foo-env (module-environment 'foo))
 (define csi-env (module-environment 'csi))
+(define extras-env (module-environment 'extras))
 
 (test-equal (eval '(bar) foo-env) 99)
 (test-error (eval 'baz foo-env))
 (test-equal (eval '(editor-command) csi-env) #f)
 (test-error (eval 'baz csi-env))
+(test-equal (eval '(format "~a" 1) extras-env) "1")
+(test-error (eval 'baz extras-env))
 
 (test-end)
Trap