diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | place.tl | 4 |
2 files changed, 8 insertions, 2 deletions
@@ -1,5 +1,11 @@ 2015-05-12 Kaz Kylheku <kaz@kylheku.com> + * place.tl (rlet): For the sake of sane evaluation order + in the face of unknown side effects, do not thread symbolic references; + only propagate constants. + +2015-05-12 Kaz Kylheku <kaz@kylheku.com> + * eval.c (env_vb_to_fb): Allow null env argument. This case occurs when (flet () ...) is expanded. @@ -96,8 +96,8 @@ (defmacro rlet (bindings :env e . body) (let ((exp-bindings (mapcar (aret ^(,@1 ,(macroexpand @2 e))) bindings))) - (let ((renames [keep-if [orf symbolp constantp] exp-bindings second]) - (regular [remove-if [orf symbolp constantp] exp-bindings second])) + (let ((renames [keep-if constantp exp-bindings second]) + (regular [remove-if constantp exp-bindings second])) (cond ((and renames regular) ^(symacrolet ,renames (let ,regular ,*body))) |