From unknown Mon Jun 23 11:25:12 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#19828 <19828@debbugs.gnu.org> To: bug#19828 <19828@debbugs.gnu.org> Subject: Status: [PATCH] eval.c: couldn't make closures Reply-To: bug#19828 <19828@debbugs.gnu.org> Date: Mon, 23 Jun 2025 18:25:12 +0000 retitle 19828 [PATCH] eval.c: couldn't make closures reassign 19828 emacs submitter 19828 =E5=B0=BE=E5=B4=8E =E6=88=90=E4=B8=80 severity 19828 normal tag 19828 notabug thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 10 03:40:53 2015 Received: (at submit) by debbugs.gnu.org; 10 Feb 2015 08:40:53 +0000 Received: from localhost ([127.0.0.1]:38873 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL6NI-0000xI-C4 for submit@debbugs.gnu.org; Tue, 10 Feb 2015 03:40:52 -0500 Received: from eggs.gnu.org ([208.118.235.92]:33166) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL5C6-0007bV-Aj for submit@debbugs.gnu.org; Tue, 10 Feb 2015 02:25:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YL5C0-00051e-6M for submit@debbugs.gnu.org; Tue, 10 Feb 2015 02:25:09 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:51760) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YL5C0-00051a-4E for submit@debbugs.gnu.org; Tue, 10 Feb 2015 02:25:08 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34878) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YL5Bz-0006np-3m for bug-gnu-emacs@gnu.org; Tue, 10 Feb 2015 02:25:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YL5Bv-0004rN-SH for bug-gnu-emacs@gnu.org; Tue, 10 Feb 2015 02:25:07 -0500 Received: from mail-ie0-f173.google.com ([209.85.223.173]:43683) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YL5Bv-0004qV-OW for bug-gnu-emacs@gnu.org; Tue, 10 Feb 2015 02:25:03 -0500 Received: by iecrp18 with SMTP id rp18so18268332iec.10 for ; Mon, 09 Feb 2015 23:25:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=b2Jhl0q2Ze/MP54CrcfMKrVBjm//WeXDvhqbQo9gW9E=; b=pMOP44Vl+oOND94MJ8jjcIAtk1D+WjsHZYai+w6JvkwHrKsMs1dwqwXTpqzDPDiw/6 7Nei4pNRaIuGCD39yrJPYiMhQAmKKc3g2PpLn9yfb78rAdUYlbxPBJYXwjmwTQjHOPwi PjjWX2hTMYz316btmu3JNXVpNPAwXzhaceVYvx9N9ZHKXN5pjqpM7CQgqHEt9B4j77uX cobT+IE56nKK4Cq3r8tK1Rgfg8/4TOB72diJhuoc7q47NnBfsCFdfIjIezmuwLr/FUod aeU3HatPfhIfz+m2wqS1JjnUOVS3zLMtGHeqp/IRPduV2Q6o3lazPWY2/gk5hccACvaB l6sA== MIME-Version: 1.0 X-Received: by 10.107.157.67 with SMTP id g64mr31172867ioe.72.1423553102837; Mon, 09 Feb 2015 23:25:02 -0800 (PST) Received: by 10.64.21.231 with HTTP; Mon, 9 Feb 2015 23:25:02 -0800 (PST) Date: Tue, 10 Feb 2015 16:25:02 +0900 Message-ID: Subject: [PATCH] eval.c: couldn't make closures From: =?UTF-8?B?5bC+5bSOIOaIkOS4gA==?= To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset=UTF-8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 10 Feb 2015 03:40:50 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hi. The following code doesn't work because doesn't create any lexical environment correctly in Emacs 24.4.1. (defvar my-ticker nil) ;; => my-ticker (let ((x 0)) (setq my-ticker (lambda () (setq x (1+ x))))) ;; => (lambda nil ;; => (setq x ;; => (1+ x))) (funcall my-ticker) ;; error--> Symbol's value as variable is void: x After fixing that, it works well. (defvar my-ticker) ;; => my-ticker (let ((x 0)) (setq my-ticker (lambda () (setq x (1+ x))))) ;; => (closure ;; => ((x . 0)) ;; => nil ;; => (setq x ;; => (1+ x))) (funcall my-ticker) ;; => 1 (funcall my-ticker) ;; => 2 Regard, Shigekazu === modified file 'src/eval.c' --- src/eval.c 2014-09-16 04:04:56 +0000 +++ src/eval.c 2015-02-10 06:48:29 +0000 @@ -875,7 +875,7 @@ val = eval_sub (Fcar (Fcdr (elt))); } - if (!NILP (lexenv) && SYMBOLP (var) + if (SYMBOLP (var) && !XSYMBOL (var)->declared_special && NILP (Fmemq (var, Vinternal_interpreter_environment))) /* Lexically bind VAR by adding it to the interpreter's binding @@ -953,7 +953,7 @@ var = SYMBOLP (elt) ? elt : Fcar (elt); tem = temps[argnum++]; - if (!NILP (lexenv) && SYMBOLP (var) + if (SYMBOLP (var) && !XSYMBOL (var)->declared_special && NILP (Fmemq (var, Vinternal_interpreter_environment))) /* Lexically bind VAR by adding it to the lexenv alist. */ From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 10 05:18:51 2015 Received: (at 19828) by debbugs.gnu.org; 10 Feb 2015 10:18:52 +0000 Received: from localhost ([127.0.0.1]:38906 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL7u7-0003IO-M5 for submit@debbugs.gnu.org; Tue, 10 Feb 2015 05:18:51 -0500 Received: from mail-ig0-f171.google.com ([209.85.213.171]:34586) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL7u5-0003IB-MQ for 19828@debbugs.gnu.org; Tue, 10 Feb 2015 05:18:50 -0500 Received: by mail-ig0-f171.google.com with SMTP id h15so22544673igd.4 for <19828@debbugs.gnu.org>; Tue, 10 Feb 2015 02:18:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=QDnSUw8lWkt1eTF4+wXcwDfBbgvUllWH4uewtQElxec=; b=Bf75Ek5B9NJ59gsk2YukRRKz/lyYUj2l/xceTa2rUJuNx5AHH6h9b1oKrbZ3b950qc 1J4RPGmXi75cnq6hC4NLLtP83BnHGgtOzzO2y1U1P0+enXBCotpnQX9DE0z01LXkCud9 ox8gApoJuYxpKo7ijPnJYhoJVk3tekMdYx/OOa7xl2vUHMZfgn2+I9F1mZjntv184xHO q9Wlm46bkFcnhhMS97tO573+6xAHs4fI9DLuJcvX3kV8JDIGkVMrWrxwLfk3lpjmvpmU UUl0p4cDdYQRr1Q0SvvAaXpog2ABjFhXlWjr5i25SzGWOlHdKEqeoT80azo7Ea1yRiq9 QESQ== MIME-Version: 1.0 X-Received: by 10.107.161.75 with SMTP id k72mr31182343ioe.46.1423563524025; Tue, 10 Feb 2015 02:18:44 -0800 (PST) Received: by 10.64.21.231 with HTTP; Tue, 10 Feb 2015 02:18:43 -0800 (PST) In-Reply-To: References: Date: Tue, 10 Feb 2015 19:18:43 +0900 Message-ID: Subject: Re: bug#19828: [PATCH] eval.c: couldn't make closures From: Shigekazu Ozaki To: 19828@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19828 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Sorry everyone, if you attach this patch, Info-menu command won't work. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 10 06:17:17 2015 Received: (at 19828) by debbugs.gnu.org; 10 Feb 2015 11:17:17 +0000 Received: from localhost ([127.0.0.1]:38953 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL8of-00063C-8m for submit@debbugs.gnu.org; Tue, 10 Feb 2015 06:17:17 -0500 Received: from mxin.ulb.ac.be ([164.15.128.112]:27112) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL8oc-00062y-E0 for 19828@debbugs.gnu.org; Tue, 10 Feb 2015 06:17:15 -0500 Received: from mathsrv4.ulb.ac.be (HELO localhost) ([164.15.133.241]) by smtp.ulb.ac.be with ESMTP; 10 Feb 2015 12:17:12 +0100 From: Nicolas Richard To: =?utf-8?B?5bC+5bSOIOaIkOS4gA==?= Subject: Re: bug#19828: [PATCH] eval.c: couldn't make closures References: Date: Tue, 10 Feb 2015 12:17:39 +0100 In-Reply-To: (=?utf-8?B?IuWwvuW0jiDmiJDkuIAiJ3M=?= message of "Tue, 10 Feb 2015 16:25:02 +0900") Message-ID: <87vbjaggmk.fsf@yahoo.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 19828 Cc: 19828@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hello, =E5=B0=BE=E5=B4=8E =E6=88=90=E4=B8=80 writes: > The following code doesn't work because doesn't create any lexical > environment correctly in Emacs 24.4.1. I think this is not a bug. In order for emacs to create closures, you need to enable lexical-binding (usually done via a file local variable at the top of the file, e.g. using add-file-local-variable-prop-line). See (info "(elisp) Closures"). HTH, --=20 Nicolas Richard From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 10 07:06:16 2015 Received: (at 19828) by debbugs.gnu.org; 10 Feb 2015 12:06:16 +0000 Received: from localhost ([127.0.0.1]:38973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL9a3-0007Eu-AS for submit@debbugs.gnu.org; Tue, 10 Feb 2015 07:06:15 -0500 Received: from mail-ie0-f179.google.com ([209.85.223.179]:47033) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YL9a0-0007Ee-ND for 19828@debbugs.gnu.org; Tue, 10 Feb 2015 07:06:13 -0500 Received: by iecvy18 with SMTP id vy18so4655449iec.13 for <19828@debbugs.gnu.org>; Tue, 10 Feb 2015 04:06:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=TqSmbyijRLDKt4zToYuVOhaoEErRDyBbDLsfPcv5IJk=; b=05q6BM0xYAXhT02QYAqSWVnKPkyBSUNRKAlsFheq24BJzpFtujBbVRAykD6jfoqnAx OZ11H9qfcJAo9kLjtGlw7IIUB6VlhqU7P+2FGvocB0yqfhWAOrbUoGE+mNXwwKmqb9P4 S7Y7Ot2K5YRl8fMkMre29w5DWIZ62wgnH5GqvLWI1cxonDCTXgg5cihH3QoiHPRc0E0O waMmlLtoPMsAe767hnOUUKjoTOT0TEEyx5w5hksL7a+py+TyuhkY7iDi6H0xPFJXeSQR 8XIfeNAULxLPFXppGED4XeHos9yIFmCGg6zMlZKuRuH3hb8qQfw7P/QCTd6KtpEM58jf i8ug== MIME-Version: 1.0 X-Received: by 10.107.161.75 with SMTP id k72mr31613205ioe.46.1423569967075; Tue, 10 Feb 2015 04:06:07 -0800 (PST) Received: by 10.64.21.231 with HTTP; Tue, 10 Feb 2015 04:06:06 -0800 (PST) In-Reply-To: <87vbjaggmk.fsf@yahoo.fr> References: <87vbjaggmk.fsf@yahoo.fr> Date: Tue, 10 Feb 2015 21:06:06 +0900 Message-ID: Subject: Re: bug#19828: [PATCH] eval.c: couldn't make closures From: Shigekazu Ozaki To: Nicolas Richard Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 19828 Cc: 19828@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) >> The following code doesn't work because doesn't create any lexical >> environment correctly in Emacs 24.4.1. > > I think this is not a bug. In order for emacs to create closures, you > need to enable lexical-binding (usually done via a file local variable > at the top of the file, e.g. using add-file-local-variable-prop- > line). > > See (info "(elisp) Closures"). I see. I've misunderstood about the lexical bindings. Thank you. It's very kind of you. From debbugs-submit-bounces@debbugs.gnu.org Tue Feb 10 16:01:54 2015 Received: (at control) by debbugs.gnu.org; 10 Feb 2015 21:01:54 +0000 Received: from localhost ([127.0.0.1]:39637 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YLHwQ-0006eg-8E for submit@debbugs.gnu.org; Tue, 10 Feb 2015 16:01:54 -0500 Received: from pruche.dit.umontreal.ca ([132.204.246.22]:39120) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YLHwN-0006eW-Ai for control@debbugs.gnu.org; Tue, 10 Feb 2015 16:01:52 -0500 Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242]) by pruche.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id t1AL1ovg003416 for ; Tue, 10 Feb 2015 16:01:50 -0500 Received: by pastel.home (Postfix, from userid 20848) id E07462890; Tue, 10 Feb 2015 16:01:49 -0500 (EST) From: Stefan Monnier To: control@debbugs.gnu.org Subject: Re: bug#19828: [PATCH] eval.c: couldn't make closures Message-ID: References: <87vbjaggmk.fsf@yahoo.fr> Date: Tue, 10 Feb 2015 16:01:49 -0500 In-Reply-To: (Shigekazu Ozaki's message of "Tue, 10 Feb 2015 21:06:06 +0900") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-NAI-Spam-Flag: NO X-NAI-Spam-Level: X-NAI-Spam-Threshold: 5 X-NAI-Spam-Score: 0.2 X-NAI-Spam-Rules: 2 Rules triggered GEN_SPAM_FEATRE=0.2, RV5213=0 X-NAI-Spam-Version: 2.3.0.9393 : core <5213> : inlines <2099> : streams <1388091> : uri <1851711> X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) close 19828 thanks From unknown Mon Jun 23 11:25:12 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 11 Mar 2015 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator