summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2011-11-30 16:12:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2011-11-30 16:12:46 -0800
commit3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5 (patch)
tree15a00ed0a7299c15910b2d0bae4d2a2deae5dd20 /eval.c
parentc6d7aca5df641e419f5b74d14b463901d63fc1f2 (diff)
downloadtxr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.tar.gz
txr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.tar.bz2
txr-3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5.zip
* lib.h (or2): Restore macro version of or2, because we need
the sequencing! Making it an inline function broke the tests. But we can't have multiple evaluation either, so it's going to use a temporary lexical variable. (uses_or2): Macro which declares the lexical variable needed by or2. * debug.c (debug): add uses_or2. * eval.c (eval_intrinsic, op_modplace): Likewise. * lib.c (lazy_str, lazy_str_force_upto, lazy_str_get_trailing_list): Likewise. * match.c (h_parallel, v_freeform, v_parallel, v_output): Likewise. * parser.y (unquotes_occur): Likewise. * stream.c (format): Likewise.
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index c932c51b..3f6e7b74 100644
--- a/eval.c
+++ b/eval.c
@@ -281,6 +281,7 @@ val interp_fun(val env, val fun, val args)
static val eval_intrinsic(val form, val env)
{
+ uses_or2;
expand(form);
return eval(form, or2(env, make_env(nil, nil, env)), form);
}
@@ -507,6 +508,7 @@ static val op_defun(val form, val env)
static val op_modplace(val form, val env)
{
+ uses_or2;
val op = first(form);
val place = second(form);
val third_arg_p = rest(rest(form));