Hi all,
If you're working with structures, you will find that places denoted by cascaded slot references, as in:
(set a.b.c val)
do not work in recent releases. You get the error:
(slot a 'b).c is not an assignable place
It can be patched in the place.tl library file. This is already committed and will be in release 155. The patch deletes a bogus test that's included in a large multi-condition (or ...).
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index eb827fd..e3ba6c0 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -156,10 +156,7 @@ (defun sys:pl-expand (unex-place env)
(sys:setq place (macroexpand-1 place env))
(when (or (eq place unex-place)
(null place)
- (and (atom place) (not (symbolp place)))
- (and (consp place)
- (consp unex-place)
- (eq (car place) (car unex-place))))
+ (and (atom place) (not (symbolp place))))
(return place))
(sys:setq unex-place place))))