guile-cvs
[Top][All Lists]
Advanced

[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
        {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]