From f1bcb15c4979b9af3823223854fe16bfe155b2fe Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 17 Feb 2014 20:24:35 -0800 Subject: * eval.c (expand): Bugfix: do not expand any part of the macro form via expand_forms. This is completely wrong since only the macro knows what material is evaluated and what isn't. --- eval.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 54e7024e..719f007b 100644 --- a/eval.c +++ b/eval.c @@ -2188,10 +2188,7 @@ tail: val result = eval_progn(args_ex, make_env(nil, nil, nil), args); return cons(quote_s, cons(result, nil)); } else if ((macro = gethash(top_mb, sym))) { - val args = rest(form); - val args_ex = expand_forms(args); - val form_ex = if3(args_ex == args, form, cons(sym, args_ex)); - val mac_expand = expand_macro(form_ex, macro, make_env(nil, nil, nil)); + val mac_expand = expand_macro(form, macro, make_env(nil, nil, nil)); if (mac_expand == form) return form; rlcp_tree(mac_expand, form); -- cgit v1.2.3