diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-03-02 21:37:48 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-03-02 22:01:12 -0800 |
commit | 7807b9cc097e9356217e3071ad1310191dda58fe (patch) | |
tree | bfe3b467c621efb51ae713c6df3c4ebf60f51d7a | |
parent | df5d69a59ff5af28a66cec7ca0e88ec0b67f4ab4 (diff) | |
download | txr-7807b9cc097e9356217e3071ad1310191dda58fe.tar.gz txr-7807b9cc097e9356217e3071ad1310191dda58fe.tar.bz2 txr-7807b9cc097e9356217e3071ad1310191dda58fe.zip |
* eval.c (expand): Bugfix. When processing a defvar, should mark
the variable as special at expansion time. Without this, binding
forms in other parts of the tree won't be expanded properly
to bring about the special semantics.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | eval.c | 2 |
2 files changed, 9 insertions, 0 deletions
@@ -1,5 +1,12 @@ 2014-03-02 Kaz Kylheku <kaz@kylheku.com> + * eval.c (expand): Bugfix. When processing a defvar, should mark + the variable as special at expansion time. Without this, binding + forms in other parts of the tree won't be expanded properly + to bring about the special semantics. + +2014-03-02 Kaz Kylheku <kaz@kylheku.com> + * parser.y (unquotes_occur): Fix use of unquote_s rather than sys_unquote_s which breaks backquote, caught by tests/010/reghash.txr. I thought fixed this already! But I must have made the change to y.tab.c @@ -2409,6 +2409,8 @@ tail: if (sym == defsymacro_s) { val result = eval(form_ex, make_env(nil, nil, nil), form); return cons(quote_s, cons(result, nil)); + } else { + mark_special(name); } return form_ex; |