Bit of a regression going back to September.

 new new list compose Reply to this message Top page
Attachments:
+ (text/plain)
+ (text/html)

Delete this message
Author: Kaz Kylheku
Date:  
To: TXR Users
Subject: Bit of a regression going back to September.

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))))