summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--share/txr/stdlib/place.tl6
2 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 998d3dab..0c2fb2df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2015-07-03 Kaz Kylheku <kaz@kylheku.com>
+
+ Allow op arguments like @1 to be places.
+
+ * share/txr/stdlib/place.tl: Introducing new defplace
+ for (sys:var ...) which is treated as if it were a symbol,
+ in anticipation of the op/do macro placing that syntax
+ with a symbol.
+
2015-07-02 Kaz Kylheku <kaz@kylheku.com>
Support trailing semicolon after hex/octal characters.
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index 9bb39347..72e054fd 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -291,6 +291,12 @@
(tree-bind ,args (cdr ,place)
,delete-body)))))))))
+(defplace (sys:var arg) body
+ (getter setter
+ ^(macrolet ((,getter () ^(sys:var ,',arg))
+ (,setter (val) ^(sys:setq ,'(sys:var ,arg) ,val)))
+ ,body)))
+
(defplace (car cell) body
(getter setter
(with-gensyms (cell-sym)