From unknown Sun Aug 17 01:49:56 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16936: 24.3; lexical-let does not take function arguments into account when creating closures Resent-From: Jordon Biondo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Mar 2014 17:03:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 16936 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 16936@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.139395253630507 (code B ref -1); Tue, 04 Mar 2014 17:03:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Mar 2014 17:02:16 +0000 Received: from localhost ([127.0.0.1]:50538 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKsjO-0007vx-RE for submit@debbugs.gnu.org; Tue, 04 Mar 2014 12:02:15 -0500 Received: from eggs.gnu.org ([208.118.235.92]:57462) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKsby-0007hv-09 for submit@debbugs.gnu.org; Tue, 04 Mar 2014 11:54:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WKsbw-0006Ds-Ck for submit@debbugs.gnu.org; Tue, 04 Mar 2014 11:54:33 -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.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:38799) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WKsbw-0006Do-9V for submit@debbugs.gnu.org; Tue, 04 Mar 2014 11:54:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WKsbu-0001XN-JB for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 11:54:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WKsbp-0006C6-0v for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 11:54:30 -0500 Received: from mail-qc0-x242.google.com ([2607:f8b0:400d:c01::242]:38340) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WKsbo-0006Bt-RB for bug-gnu-emacs@gnu.org; Tue, 04 Mar 2014 11:54:24 -0500 Received: by mail-qc0-f194.google.com with SMTP id i8so2756681qcq.5 for ; Tue, 04 Mar 2014 08:54:24 -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=dWNv1MHdJ8qDGjE0+AQveDQIgyW+AtQYieB0rS8ljAg=; b=qHd+pCDMioh4MPCmMDVQOIncZNTLSy64k2ojNJoAs7ZuwQnOdXzHmqLkhHIeDxgf5w aA+dfSWlurt/ms7t40m5InpRUhDKD7L+bgGHU6UaxAYy8WXK61YRiEztJs7MYVRdxnJK 3yE9+rkfG5rveoWSROLaERwGdLI8y/PAr7tM6YszTOGBcnFA5PXWNiFc6xra1dBfRAFo Gf04fXbebicg6m7gvQHZY1yL4SO4X/dAUhYxubeKqSlE7WyYoEcJ1c0/FPumW4JNL6Rk fuzQwQs2ihWoWrOnBkhXgRymJZZUvGdv5YbYZDsKCxYl8hTWHKbflX/peIoiiv8h8Kzm rrMg== MIME-Version: 1.0 X-Received: by 10.224.63.131 with SMTP id b3mr675621qai.63.1393952064155; Tue, 04 Mar 2014 08:54:24 -0800 (PST) Received: by 10.229.100.196 with HTTP; Tue, 4 Mar 2014 08:54:24 -0800 (PST) Date: Tue, 4 Mar 2014 11:54:24 -0500 Message-ID: From: Jordon Biondo Content-Type: multipart/alternative; boundary=047d7beb961e9e32bd04f3cac169 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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-Mailman-Approved-At: Tue, 04 Mar 2014 12:02:12 -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 (----) --047d7beb961e9e32bd04f3cac169 Content-Type: text/plain; charset=ISO-8859-1 ;; here is code to test by, description in comments (require 'cl) ;; lexical let is supposed to use fake lexical binding ;; to imitate closure behavior in CL ;; so, this in emacs lisp: (apply (lexical-let ((x 3) (y 4)) (lambda (x) (+ x y))) '(1)) ;; in EL returns 7 ;; should behave like this in CL (apply (let ((x 3) (y 4)) (lambda (x) (+ x y))) '(1)) ;; in CL returns 5 (SBCL) ;; however in emacs lisp, the lambda arg x is forgetton and ;; the lexical-let bound x is used in the lambda, not the arg. I assume this is not the desired behavior. In GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200) of 2013-03-17 on MARVIN Windowing system distributor `Microsoft Corp.', version 6.2.9200 Configured using: `configure --with-gcc (4.7) --cflags -ID:/devel/emacs/libs/libXpm-3.5.8/include -ID:/devel/emacs/libs/libXpm-3.5.8/src -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include -ID:/devel/emacs/libs/giflib-4.1.4-1/include -ID:/devel/emacs/libs/jpeg-6b-4/include -ID:/devel/emacs/libs/tiff-3.8.2-1/include -ID:/devel/emacs/libs/gnutls-3.0.9/include -ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include -ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2' Important settings: value of $LANG: ENU locale-coding-system: cp1252 default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: d SPC b a h a e h a v e SPC l i k e SPC t h i s SPC i n SPC C : l L C-n C-n C-e ; ; SPC h o w e v e r SPC i n SPC e m a c s SPC l i s p , SPC t h e SPC l a m b d a SPC a r e g SPC x SPC i s SPC f o r g e t t o n SPC a n d ; ; SPC t h e SPC l e x i c a l - l e t SPC b o u n d SPC x SPC i s SPC u s e d SPC i n SPC t h e SPC l a m b d a . C-p C-p C-e C-p C-e SPC ; ; SPC i n SPC C L S-SPC r e t u r n s SPC 5 C-p C-p C-p C-p C-p C-n C-e SPC ; ; SPC i n SPC E L SPC r e t u r n s SPC 7 C-p C-p C-p C-p C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-p C-e SPC n o t SPC t h e SPC a r g . C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b , C-e M-x C-g C-p C-p C-p C-e SPC ( S B C L ) C-n C-n C-n C-n C-e M-x e m a c s - b u r e C-a C-k r e p o r Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Quit Entering debugger... Back to top level. Mark set [3 times] Quit Making completion list... [2 times] Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils cl-macs gv cl cl-lib help-mode easymenu debug time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32 multi-tty emacs) --047d7beb961e9e32bd04f3cac169 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
;; here is code to test by, description in comments
(require 'cl)

;; lexical let is s= upposed to use fake lexical binding
;; to imitate closure behavio= r in CL
;; so, this in emacs lisp:
(apply (lexical-let ((x 3) (y 4))=
=A0 =A0(lam= bda (x) (+ x y))) '(1)) ;; in EL returns 7

;; = should behave like this in CL
(apply (let ((x 3) (y 4))
(lambda (x) (+ x y))) '(1)) ;; in CL returns 5 (SBCL)=

;; however in emacs lisp, the lambda arg x is for= getton and
;; the lexical-let bound x is used in the lambda, not the arg.

I assume this is not the desired behavior.

=

In GNU Emacs 24.3.1 (i386-mingw-nt6.2.9200)
=A0of 2013-03-17 on MARVIN
Windowing system distributor `Mic= rosoft Corp.', version 6.2.9200
Configured using:
= =A0`configure --with-gcc (4.7) --cflags
=A0-ID:/devel/emacs/libs/= libXpm-3.5.8/include
=A0-ID:/devel/emacs/libs/libXpm-3.5.8/src
=A0-ID:/devel/emac= s/libs/libpng-dev_1.4.3-1/include
=A0-ID:/devel/emacs/libs/zlib-d= ev_1.2.5-2/include
=A0-ID:/devel/emacs/libs/giflib-4.1.4-1/includ= e
=A0-ID:/devel/emacs/libs/jpeg-6b-4/include
=A0-ID:/devel/ema= cs/libs/tiff-3.8.2-1/include
=A0-ID:/devel/emacs/libs/gnutls-3.0.= 9/include
=A0-ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include<= /div>
=A0-ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
=
Important settings:
=A0 value of $LANG: ENU
<= div>=A0 locale-coding-system: cp1252
=A0 default enable-multibyte= -characters: t

Major mode: Lisp Interaction

M= inor modes in effect:
=A0 tooltip-mode: t
=A0 mouse-whe= el-mode: t
=A0 tool-bar-mode: t
=A0 menu-bar-mode: t
=A0 file-name-shadow-mode: t
=A0 global-font-lock-mode: t
=A0 font-lock-mode: t
=A0 blink-cursor-mode: t
=A0 a= uto-composition-mode: t
=A0 auto-encryption-mode: t
=A0= auto-compression-mode: t
=A0 line-number-mode: t
=A0 transient-mark-mode: t

Recent input:
d SPC b a h a <backspace> <= ;backspace> <backspace> e=A0
h a v e SPC l i k e SPC t h= i s SPC i n SPC C : <backspace>=A0
l <backspace> L C-n C-n C-e <return> <return> ; ; SP= C=A0
h o w e v e r SPC i n SPC e m a c s SPC l i s p , SPC=A0
t h e SPC l a m b d a SPC a r e <backspace> g SPC x=A0
SPC i s SPC f o r g e t t o n SPC a n d <return> <tab>=A0
=
; ; SPC t h e SPC l e x i c a l - l e t SPC b o u n=A0
d SPC= x SPC i s SPC u s e d SPC i n SPC t h e SPC l=A0
a m b d a . C-p= C-p C-e C-p C-e SPC ; ; SPC i n SPC=A0
C L S-SPC r e t u r n s SPC 5 C-p C-p C-p C-p C-p C-n=A0
C-e= SPC ; ; SPC i n SPC E L SPC r e t u r n s SPC 7=A0
C-p C-p C-p C= -p C-n C-n C-n C-n C-n C-n C-n C-n C-n=A0
C-n C-n C-n C-p C-e <= ;backspace> SPC n o t SPC t h e=A0
SPC a r g . C-b C-b C-b C-b C-b C-b C-b C-b C-b C-b=A0
C-b C= -b C-b , C-e M-x C-g C-p C-p C-p C-e SPC ( S B=A0
C L ) C-n C-n C= -n C-n C-e M-x e m a c s - b u <tab>=A0
<tab> <bac= kspace> <backspace> r e <tab> <tab> <tab>=A0
<backspace> <backspace> <tab> <tab> <tab>= ; C-a C-k r=A0
e p o <tab> <tab> r <tab> <re= turn>

Recent messages:
For informatio= n about GNU Emacs and the GNU system, type C-h C-a.
Quit
Entering debugger...
Back to top level.
=
Mark set [3 times]
Quit
Making completion list... = [2 times]

Load-path shadows:
None found.=

Features:
(shadow sort gnus-util mail-extr em= acsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies= mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sen= dmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils cl-macs gv cl cl-lib help-mode easymenu debug
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w3= 2
ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd= fontset
image regexp-opt fringe tabulated-list newcomment lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang=
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew<= /div>
greek romanian slovak czech european ethiopic indian cyrillic chi= nese
case-table epa-hook jka-cmpr-hook help simple abbrev minibuf= fer loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5<= /div>
base64 format env code-pages mule custom widget hashtable-print-r= eadable
backquote make-network-process w32 multi-tty emacs)

--047d7beb961e9e32bd04f3cac169-- From unknown Sun Aug 17 01:49:56 2025 X-Loop: help-debbugs@gnu.org Subject: bug#16936: 24.3; lexical-let does not take function arguments into account when creating closures Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 07 Mar 2014 22:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 16936 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jordon Biondo Cc: 16936@debbugs.gnu.org Received: via spool by 16936-submit@debbugs.gnu.org id=B16936.139423117124870 (code B ref 16936); Fri, 07 Mar 2014 22:27:02 +0000 Received: (at 16936) by debbugs.gnu.org; 7 Mar 2014 22:26:11 +0000 Received: from localhost ([127.0.0.1]:55284 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM3DW-0006T3-83 for submit@debbugs.gnu.org; Fri, 07 Mar 2014 17:26:10 -0500 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:26891) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM3DT-0006Sv-C8 for 16936@debbugs.gnu.org; Fri, 07 Mar 2014 17:26:08 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLLQcHCxQYDSSIHgbBLY1VgzUDiGGcGYFegxU X-IPAS-Result: Av4EABK/CFFMCppy/2dsb2JhbABEvw4Xc4IeAQEEAVYjBQsLLQcHCxQYDSSIHgbBLY1VgzUDiGGcGYFegxU X-IronPort-AV: E=Sophos;i="4.84,565,1355115600"; d="scan'208";a="50834184" Received: from 76-10-154-114.dsl.teksavvy.com (HELO pastel.home) ([76.10.154.114]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 07 Mar 2014 17:26:06 -0500 Received: by pastel.home (Postfix, from userid 20848) id 9509F60C72; Fri, 7 Mar 2014 17:26:06 -0500 (EST) From: Stefan Monnier Message-ID: References: Date: Fri, 07 Mar 2014 17:26:06 -0500 In-Reply-To: (Jordon Biondo's message of "Tue, 4 Mar 2014 11:54:24 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.3 (/) 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.3 (/) > I assume this is not the desired behavior. Indeed. If you use `lexical-binding' instead of `lexical-let' you won't suffer from those problems. `lexical-let' is on the way to deprecation and the problem you describe has affected `lexical-let' "for ever", so I don't think anyone will care to fix it. Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 10 14:47:30 2014 Received: (at control) by debbugs.gnu.org; 10 Mar 2014 18:47:30 +0000 Received: from localhost ([127.0.0.1]:60559 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WN5EX-0006kp-UX for submit@debbugs.gnu.org; Mon, 10 Mar 2014 14:47:30 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:37245) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WN5EV-0006kg-2v for control@debbugs.gnu.org; Mon, 10 Mar 2014 14:47:27 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1WN5EU-0002L3-EB for control@debbugs.gnu.org; Mon, 10 Mar 2014 14:47:26 -0400 Date: Mon, 10 Mar 2014 14:47:26 -0400 Message-Id: Subject: control message for bug 16936 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -5.0 (-----) 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: -5.0 (-----) severity 16936 wishlist tag 16936 wontfix From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 04 10:34:39 2016 Received: (at control) by debbugs.gnu.org; 4 Mar 2016 15:34:39 +0000 Received: from localhost ([127.0.0.1]:33697 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1abrkV-0000Db-4E for submit@debbugs.gnu.org; Fri, 04 Mar 2016 10:34:39 -0500 Received: from hermes.netfonds.no ([80.91.224.195]:47319) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1abrkT-0000DA-HD for control@debbugs.gnu.org; Fri, 04 Mar 2016 10:34:37 -0500 Received: from 2.150.35.31.tmi.telenormobil.no ([2.150.35.31] helo=mouse) by hermes.netfonds.no with esmtpsa (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1abrjQ-0004R7-9s for control@debbugs.gnu.org; Fri, 04 Mar 2016 16:33:32 +0100 From: Lars Ingebrigtsen To: control@debbugs.gnu.org Subject: control message for bug #16936 Message-ID: <871t7ql4p6.fsf@totally-fudged-out-message-id> Date: Fri, 04 Mar 2016 15:33:31 +0000 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) X-MailScanner-ID: 1abrjQ-0004R7-9s X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1457710413.70799@PstBujgdFrITp4UOjkKIcA X-Spam-Status: No X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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.0 (/) close 16936