[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
guile/guile-core/libguile eval.c
From: |
Marius Vollmer |
Subject: |
guile/guile-core/libguile eval.c |
Date: |
Thu, 22 Feb 2001 12:54:12 -0800 |
CVSROOT: /cvs
Module name: guile
Changes by: Marius Vollmer <address@hidden> 01/02/22 12:54:12
Modified files:
guile-core/libguile: eval.c
Log message:
* eval.c (scm_ceval, scm_deval): When evaluating expressions on
top level, create a fresh top-level environment for each
expression instead of mutating the exisint frame. This is
important when that frame is closed over.
CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/guile/guile-core/libguile/eval.c.diff?r1=1.200&r2=1.201
Patches:
Index: guile/guile-core/libguile/eval.c
diff -u guile/guile-core/libguile/eval.c:1.200
guile/guile-core/libguile/eval.c:1.201
--- guile/guile-core/libguile/eval.c:1.200 Wed Feb 21 14:52:59 2001
+++ guile/guile-core/libguile/eval.c Thu Feb 22 12:54:12 2001
@@ -1913,12 +1913,12 @@
t.arg1 = x;
while (SCM_NNULLP (t.arg1 = SCM_CDR (t.arg1)))
{
- SCM_SETCAR (env, scm_current_module_lookup_closure ());
+ env = scm_top_level_env (scm_current_module_lookup_closure ());
SIDEVAL (SCM_CAR(x), env);
x = t.arg1;
}
/* once more, for the last form */
- SCM_SETCAR (env, scm_current_module_lookup_closure ());
+ env = scm_top_level_env (scm_current_module_lookup_closure ());
}
else
{