summaryrefslogtreecommitdiffstats
path: root/eval.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-11-04 06:44:25 -0800
committerKaz Kylheku <kaz@kylheku.com>2015-11-04 06:44:25 -0800
commit8cdf0417090b2c6e6b29aa67c7b1efca5501bb7c (patch)
tree5d9420167dacb3314a3553b5c117d00b3664c52d /eval.h
parent7ab744e142b33e641a72b163a4f6f9a2eaf18f15 (diff)
downloadtxr-8cdf0417090b2c6e6b29aa67c7b1efca5501bb7c.tar.gz
txr-8cdf0417090b2c6e6b29aa67c7b1efca5501bb7c.tar.bz2
txr-8cdf0417090b2c6e6b29aa67c7b1efca5501bb7c.zip
Pattern vars accessed from Lisp now dynamic.
* eval.c (set_dyn_env): Static function becomes external. * eval.h (set_dyn_env): Declared. * match.c (eval_with_bindings, eval_progn_with_bindings): Evaluate Lisp code in null lexical environment. Instead install the pattern variables as dynamic, so they shadow global variables. A compatibility check for 121 or earlier provides the old behavior. * txr.1: Document scoping rules, and added compatibility notes.
Diffstat (limited to 'eval.h')
-rw-r--r--eval.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/eval.h b/eval.h
index 9653a6f7..cedaeeff 100644
--- a/eval.h
+++ b/eval.h
@@ -38,6 +38,7 @@ val lookup_global_var(val sym);
loc lookup_var_l(val env, val sym);
loc lookup_global_var_l(val sym);
val lookup_fun(val env, val sym);
+val set_dyn_env(val de);
val interp_fun(val env, val fun, struct args *);
val boundp(val sym);
val fboundp(val sym);