~ 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