From unknown Sun Jun 15 01:09:13 2025 X-Loop: bug-gnu-emacs@gnu.org Subject: bug#5450: Variable Capturing and other problems in assoc.el Mail-Followup-To: michael_heerdegen@web.de, 5450@debbugs.gnu.org Resent-From: Michael Heerdegen Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 22 Jan 2010 18:08:01 +0000 Resent-Message-ID: Resent-Sender: bug-gnu-emacs@gnu.org X-Emacs-PR-Message: report 5450 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Received: via spool by submit@debbugs.gnu.org id=B.12641836366624 (code B ref -1); Fri, 22 Jan 2010 18:08:01 +0000 Received: (at submit) by debbugs.gnu.org; 22 Jan 2010 18:07:16 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYNue-0001in-Cp for submit@debbugs.gnu.org; Fri, 22 Jan 2010 13:07:16 -0500 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYNhV-0001aH-Sq for submit@debbugs.gnu.org; Fri, 22 Jan 2010 12:53:42 -0500 Received: from mail.gnu.org ([199.232.76.166]:48026 helo=mx10.gnu.org) by fencepost.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYNhR-0002q6-EP for submit@debbugs.gnu.org; Fri, 22 Jan 2010 12:53:37 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NYNhQ-0000On-CI for submit@debbugs.gnu.org; Fri, 22 Jan 2010 12:53:37 -0500 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on monty-python X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00, FORGED_RCVD_HELO,UNPARSEABLE_RELAY autolearn=ham version=3.1.0 Received: from lists.gnu.org ([199.232.76.165]:54251) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NYNhQ-0000Of-5z for submit@debbugs.gnu.org; Fri, 22 Jan 2010 12:53:36 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NYNhP-00007B-R5 for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2010 12:53:35 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NYNhK-0008WF-Qx for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2010 12:53:35 -0500 Received: from [199.232.76.173] (port=56165 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NYNhK-0008W4-KG for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2010 12:53:30 -0500 Received: from fmmailgate02.web.de ([217.72.192.227]:44715) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NYNhJ-0000Li-Vv for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2010 12:53:30 -0500 Received: from smtp08.web.de (fmsmtp08.dlan.cinetic.de [172.20.5.216]) by fmmailgate02.web.de (Postfix) with ESMTP id 2D20714C56458 for ; Fri, 22 Jan 2010 18:53:25 +0100 (CET) Received: from [217.185.137.14] (helo=snow) by smtp08.web.de with asmtp (WEB.DE 4.110 #314) id 1NYNhE-0008Tf-00 for bug-gnu-emacs@gnu.org; Fri, 22 Jan 2010 18:53:24 +0100 From: Michael Heerdegen To: bug-gnu-emacs@gnu.org Date: Fri, 22 Jan 2010 18:53:01 +0100 Message-Id: <1264182781.19724.4389@snow> X-Sender: michael_heerdegen@web.de X-Provags-ID: V01U2FsdGVkX1/ZDfOa+6X81q9YkrFPdCOMEBO2R59alaIxN0Rb 1g6cf9nr5gPhDfEh2JTCWZSTzF1XKb1Rg8wtUurzU0WSIzecgu arW1sIBzVxifeL1JOQiQ== X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.4-2.6 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Spam-Score: -6.6 (------) X-Mailman-Approved-At: Fri, 22 Jan 2010 13:07:14 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.6 (------) Hello, In the code of assoc.el, local variables in the functions `aput', `adelete' and `amake' may hide the alist-symbol in the `eval'-clauses, which produces wrong results. Example: (tested with my Emacs 22 -Q, and also with the current CVS version of assoc.el): ELISP> (require 'assoc) assoc ELISP> (setq alist '(("a" . 1) ("b" . 2))) (("a" . 1) ("b" . 2)) ELISP> (setq blist '(("a" . 1) ("b" . 2))) (("a" . 1) ("b" . 2)) ELISP> (aput 'alist "a" 123456) (("a" . 123456)) ELISP> (aput 'blist "a" 123456) ("a" . 123456) ELISP> alist (("a" . 1) ("b" . 2)) ELISP> blist (("a" . 123456) ("b" . 2)) ------ ELISP> (setq alist '(("a" . 1) ("b" . 2))) (("a" . 1) ("b" . 2)) ELISP> (setq blist '(("a" . 1) ("b" . 2))) (("a" . 1) ("b" . 2)) ELISP> (adelete 'alist "a") (("b" . 2)) ELISP> (adelete 'blist "a") (("b" . 2)) ELISP> alist (("a" . 1) ("b" . 2)) ELISP> blist (("b" . 2)) --- Another thing: the doc of `aelement' is misleading in my opinion: aelement is a compiled Lisp function in `assoc.el'. (aelement KEY VALUE) Makes a list of a cons cell containing car of KEY and cdr of VALUE. The returned list is suitable as an element of an alist. The returned value is an one element list with a cons cell, suitable for `nconc', but not directly as an element of an alist. --- It is also not fine that `amake' doesn't assign to unbound symbols: ELISP> (amake 'clist '("a" "b") '(1 2)) *** Eval error *** Symbol's value as variable is void: clist so the package misses a real alist constructor. From unknown Sun Jun 15 01:09:13 2025 X-Loop: bug-gnu-emacs@gnu.org Subject: bug#5450: Variable Capturing and other problems in assoc.el References: <1264182781.19724.4389@snow> In-Reply-To: <1264182781.19724.4389@snow> Resent-From: Chong Yidong Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 23 Jan 2010 22:48:01 +0000 Resent-Message-ID: Resent-Sender: bug-gnu-emacs@gnu.org X-Emacs-PR-Message: followup 5450 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: To: Michael Heerdegen Cc: 5450@debbugs.gnu.org Received: via spool by 5450-submit@debbugs.gnu.org id=B5450.126428682514955 (code B ref 5450); Sat, 23 Jan 2010 22:48:01 +0000 Received: (at 5450) by debbugs.gnu.org; 23 Jan 2010 22:47:05 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYokx-0003t9-6r for submit@debbugs.gnu.org; Sat, 23 Jan 2010 17:47:03 -0500 Received: from pantheon-po18.its.yale.edu ([130.132.50.74]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYokt-0003sg-O8 for 5450@debbugs.gnu.org; Sat, 23 Jan 2010 17:47:02 -0500 Received: from furry ([192.54.222.11]) (authenticated bits=0) by pantheon-po18.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id o0NMktXn029798 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 23 Jan 2010 17:46:55 -0500 Received: by furry (Postfix, from userid 1000) id 81FC2C05D; Sat, 23 Jan 2010 15:46:55 -0700 (MST) From: Chong Yidong Date: Sat, 23 Jan 2010 17:46:55 -0500 Message-ID: <878wbotp5s.fsf@stupidchicken.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) X-Spam-Score: -2.6 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) > In the code of assoc.el, local variables in the functions `aput', > `adelete' and `amake' may hide the alist-symbol in the `eval'-clauses, > which produces wrong results. Fixed, thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat Jan 23 17:47:12 2010 Received: (at control) by debbugs.gnu.org; 23 Jan 2010 22:47:13 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYol6-0003tU-Eb for submit@debbugs.gnu.org; Sat, 23 Jan 2010 17:47:12 -0500 Received: from pantheon-po29.its.yale.edu ([130.132.50.124]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NYol4-0003tJ-Nz for control@debbugs.gnu.org; Sat, 23 Jan 2010 17:47:10 -0500 Received: from furry ([192.54.222.11]) (authenticated bits=0) by pantheon-po29.its.yale.edu (8.12.11.20060308/8.12.11) with ESMTP id o0NMl6Vk007964 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT) for ; Sat, 23 Jan 2010 17:47:06 -0500 Received: by furry (Postfix, from userid 1000) id BEB56C05D; Sat, 23 Jan 2010 15:47:06 -0700 (MST) From: Chong Yidong To: control@debbugs.gnu.org Subject: close 5450 Date: Sat, 23 Jan 2010 17:47:06 -0500 Message-ID: <87636stp5h.fsf@stupidchicken.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-YaleITSMailFilter: Version 1.2c (attachment(s) not renamed) X-Spam-Score: -4.6 (----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.3 (-----) close 5450 thanks