~ chicken-core (master) 98259ae99912d3c7883cb32bfa2e51252ec02e4e
commit 98259ae99912d3c7883cb32bfa2e51252ec02e4e
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Jul 4 12:13:59 2011 +0200
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Mon Jul 4 12:13:59 2011 +0200
make active-eval-env a parameter
diff --git a/eval.scm b/eval.scm
index 33b67b6c..c7580a5e 100644
--- a/eval.scm
+++ b/eval.scm
@@ -794,12 +794,12 @@
(let ((oldcm (##sys#current-module))
(oldme (##sys#macro-environment))
(mme (##sys#meta-macro-environment))
- (aee ##sys#active-eval-environment))
+ (aee (##sys#active-eval-environment)))
(dynamic-wind
(lambda ()
(##sys#current-module #f)
(##sys#macro-environment mme)
- (set! ##sys#active-eval-environment ##sys#current-meta-environment))
+ (##sys#active-eval-environment ##sys#current-meta-environment))
(lambda ()
((##sys#compile-to-closure
form
@@ -807,7 +807,7 @@
(##sys#current-meta-environment))
'() ) )
(lambda ()
- (set! ##sys#active-eval-environment aee)
+ (##sys#active-eval-environment aee)
(##sys#current-module oldcm)
(##sys#meta-macro-environment (##sys#macro-environment))
(##sys#macro-environment oldme)))))
diff --git a/expand.scm b/expand.scm
index 6747135a..550c1b09 100644
--- a/expand.scm
+++ b/expand.scm
@@ -60,9 +60,8 @@
(define ##sys#current-environment (make-parameter '()))
(define ##sys#current-meta-environment (make-parameter '()))
-;;XXX should this be a parameter?
;;XXX should this be in eval.scm?
-(define ##sys#active-eval-environment ##sys#current-environment)
+(define ##sys#active-eval-environment (make-parameter ##sys#current-environment))
(define (lookup id se)
(cond ((##core#inline "C_u_i_assq" id se) => cdr)
diff --git a/modules.scm b/modules.scm
index 9bdd7dbc..c38323c0 100644
--- a/modules.scm
+++ b/modules.scm
@@ -718,7 +718,7 @@
((getp sym '##core#aliased)
(dm "(ALIAS) marked: " sym)
sym)
- ((assq sym (##sys#active-eval-environment)) =>
+ ((assq sym ((##sys#active-eval-environment))) =>
(lambda (a)
(let ((sym2 (cdr a)))
(dm "(ALIAS) in current environment " sym " -> " sym2)
Trap