diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2011-11-30 16:12:46 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2011-11-30 16:12:46 -0800 |
commit | 3d6cbdfd5e29a48da30493d98e9653d5eebbd9f5 (patch) | |
tree | 15a00ed0a7299c15910b2d0bae4d2a2deae5dd20 /eval.c | |
parent | c6d7aca5df641e419f5b74d14b463901d63fc1f2 (diff) | |
download | txr-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.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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)); |