From ff0f81fcf1062e17a9b9f1967bac85f6dfc16a90 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 12 May 2015 07:44:58 -0700 Subject: * 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. --- ChangeLog | 6 ++++++ place.tl | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ff8c5c45..a3616aae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-05-12 Kaz Kylheku + + * 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 * eval.c (env_vb_to_fb): Allow null env argument. This diff --git a/place.tl b/place.tl index 6003fa30..ffa37a66 100644 --- a/place.tl +++ b/place.tl @@ -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))) -- cgit v1.2.3