From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.bugs Subject: bug#56739: 29.0.50; `cl-psetq' and `cl-psetf' fail to recognize symbol macros Date: Thu, 7 Sep 2023 11:31:34 -0700 Message-ID: References: <8735eeyz7e.fsf@web.de> <87y1w6xjmg.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15800"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Michael Heerdegen , 56739@debbugs.gnu.org, Wing Hei Chan To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Sep 07 20:32:25 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qeJnk-0003uH-SO for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 07 Sep 2023 20:32:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qeJnY-0001gZ-Bd; Thu, 07 Sep 2023 14:32:15 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qeJnN-0001fZ-Td for bug-gnu-emacs@gnu.org; Thu, 07 Sep 2023 14:32:03 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qeJnM-00069B-OW for bug-gnu-emacs@gnu.org; Thu, 07 Sep 2023 14:32:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qeJnO-00017i-Ei for bug-gnu-emacs@gnu.org; Thu, 07 Sep 2023 14:32:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Kangas Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 07 Sep 2023 18:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56739 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 56739-submit@debbugs.gnu.org id=B56739.16941115074294 (code B ref 56739); Thu, 07 Sep 2023 18:32:02 +0000 Original-Received: (at 56739) by debbugs.gnu.org; 7 Sep 2023 18:31:47 +0000 Original-Received: from localhost ([127.0.0.1]:41406 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qeJn8-00017B-Oj for submit@debbugs.gnu.org; Thu, 07 Sep 2023 14:31:47 -0400 Original-Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:54390) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qeJn5-00016s-3Z for 56739@debbugs.gnu.org; Thu, 07 Sep 2023 14:31:45 -0400 Original-Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-5009d4a4897so2157572e87.0 for <56739@debbugs.gnu.org>; Thu, 07 Sep 2023 11:31:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694111495; x=1694716295; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=K7H5TpCkzqmt3o8Q8NlznPBwPvqgvvbsN7ghYmHEFiI=; b=UAmb33BYFZYBrtZcoGACRgJkzoZzezVGhIQIXG8V9pjz3sGLUQgGew67XuR9iM+eSN gXeJhNmx8RPr1Pfn13uhX6dWcLITVQE+iGn7n+yqpd+iRO/Ti/OVRX53pC+W/enkXr13 L1DC6Pp3WgF/RTJVjakaSOaMbkmeS9cH1ldsbDN4BaqCwFVeI1GVUBJHAUNrvL20rTN1 YsExmIJkWLL5s/PUi2wFiqPftSu+64fZnWekBeFJuctQyI487u9kk7tRBfZ8GLCoJRMN qZP0QrD3UrPRJn6ahDcy5Z0cAPM78SUX7qPkm0X+fi1mZ1gz1da1eha0mYkSDr/APPeP TIBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694111495; x=1694716295; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=K7H5TpCkzqmt3o8Q8NlznPBwPvqgvvbsN7ghYmHEFiI=; b=ifSrHe3dx4dIznAJTUVYA7wV9x3+DPSzmCC09j6a3s4Ah412dDxDoyQvQoiFP3QxTd 9d0cW1Qncl6BZf+4Gg6ABvOn8KaW8PnHWXtdLexL6ALYGCwT97c5vVMSiz44DToLxT1L gem8I6lRTakrQJtrxR3ygEqpol+xiJQ4+LxDCab9pcbhHP7R/U0w3DJ9RLpu4ie8hXDV K81OG4jMkXYFFdlfZPdn+pD/0xKunHQ4+xn8mwLi/9rUmyIu3RxIPVQZnoNisz3kDTEq BoNn13ae+/gSKZRhSOB19nw5GQ/VqVSEJ8CRgf6JDujPVeAsg+/jG60OJNnn5uakRJ8+ 6YTQ== X-Gm-Message-State: AOJu0YxV3IIMle3Mim9R8uNwCpKqv/lf/a+tb6e8kDl6JGsLTQZL5r8G cnd9mgtdcEy+wGGdPC/DfRcEsJBjMpoGA1XvkW17G7t4UIE= X-Google-Smtp-Source: AGHT+IEl/mgZMbt9GZs9EEVtueYc/6KTnLOFOwHaQwW/iqHmHGeia37MLdWDJidzDa8bgWSiddYZgI0Nylg1visSVFI= X-Received: by 2002:a2e:350d:0:b0:2bb:9710:9d89 with SMTP id z13-20020a2e350d000000b002bb97109d89mr57033ljz.10.1694111495146; Thu, 07 Sep 2023 11:31:35 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Thu, 7 Sep 2023 11:31:34 -0700 In-Reply-To: (Stefan Monnier's message of "Mon, 05 Sep 2022 22:22:28 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:269690 Archived-At: Stefan Monnier writes: >> - (let ((p args) (simple t) (vars nil)) >> + (let ((p args) (simple t) (vars nil) >> + (smacros (alist-get :cl-symbol-macros macroexpand-all-environment))) >> (while p >> - (if (or (not (symbolp (car p))) (cl--expr-depends-p (nth 1 p) vars)) >> - (setq simple nil)) >> - (if (memq (car p) vars) >> - (error "Destination duplicated in psetf: %s" (car p))) >> + (when (or (not (symbolp (car p))) >> + (assq (car p) smacros) > > This looks like a safe way to make it work when the place is > a symbol macro. > >> + (and (symbolp (nth 1 p)) >> + (assq (nth 1 p) smacros)) >> + (cl--expr-depends-p (nth 1 p) vars)) > > But this doesn't look strong enough; if (nth 1 p) is (+ c c) where `c` > is a symbol macro the same problem will appear. So the test needs to be > pushed into `cl--expr-depends-p` (probably into `cl--safe-expr-p` where > it will fix other related problems elsewhere). (That was one year ago.) Michael, did you have a chance to look into this? It would be nice to get this bug fixed.