summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-09-07 19:16:32 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-09-07 19:16:32 -0700
commit957f80f26807582927fa580c705e9aa59327771d (patch)
tree7af73f9d874b89504f3e702a4ccafd66ab53c902 /share
parent703e6ec56c8cd1eb33b6572fde69c454587c0beb (diff)
downloadtxr-957f80f26807582927fa580c705e9aa59327771d.tar.gz
txr-957f80f26807582927fa580c705e9aa59327771d.tar.bz2
txr-957f80f26807582927fa580c705e9aa59327771d.zip
Bugfix: issue with expansion of place macros.
The expansion of a place macro form should not be subject to a complete macro-expansion (as a regular macro form). Only one round of expansion should be performed, and the results should be re-tried as a place macro. Otherwise an opportunity to expland a place macro will be missed. * share/txr/stdlib/place.tl (sys:pl-expand): Use macroexpand-1 rather than macroexpand. * txr.1: Documentation updated to make the new behavior clear. It's unlikely that anything in the world depends on this, so no backward compatibility switch is being provded to the old behavior. In situations where this makes a difference, the old behavior is likely too wrong to be useful.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/place.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index 6437ac45..dbae39be 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -139,7 +139,7 @@
(sys:setq place (sys:set-macro-ancestor
[pm-expander unex-place]
unex-place))))
- (sys:setq place (macroexpand place env))
+ (sys:setq place (macroexpand-1 place env))
(when (or (eq place unex-place)
(null place)
(and (atom place) (not (symbolp place)))