From 8cdf0417090b2c6e6b29aa67c7b1efca5501bb7c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 4 Nov 2015 06:44:25 -0800 Subject: 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. --- eval.h | 1 + 1 file changed, 1 insertion(+) (limited to 'eval.h') 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); -- cgit v1.2.3