From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 12 Jul 2017 21:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 27674@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.149989640030557 (code B ref -1); Wed, 12 Jul 2017 21:54:02 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jul 2017 21:53:20 +0000 Received: from localhost ([127.0.0.1]:35900 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVPZQ-0007wn-Aa for submit@debbugs.gnu.org; Wed, 12 Jul 2017 17:53:20 -0400 Received: from eggs.gnu.org ([208.118.235.92]:49097) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVPZO-0007wa-Dn for submit@debbugs.gnu.org; Wed, 12 Jul 2017 17:53:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVPZI-000877-Al for submit@debbugs.gnu.org; Wed, 12 Jul 2017 17:53:13 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:45860) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dVPZI-00086x-7p for submit@debbugs.gnu.org; Wed, 12 Jul 2017 17:53:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40036) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVPZH-0008Hh-5h for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2017 17:53:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVPZC-0007zW-Ad for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2017 17:53:11 -0400 Received: from mout.web.de ([212.227.15.3]:57750) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dVPZB-0007yp-Vz for bug-gnu-emacs@gnu.org; Wed, 12 Jul 2017 17:53:06 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lheu9-1e0Mik2j4L-00mseK; Wed, 12 Jul 2017 23:53:03 +0200 From: Michael Heerdegen Date: Wed, 12 Jul 2017 23:53:01 +0200 Message-ID: <87lgntfhky.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:N7hEft/gfEvuSeHe/mTkEhX0Limofus3FE/pqxAxskoD8UOLexJ HOKc7GWZGI3/qr0QMcH9uuqnrsV8RQeCvk27RHyhKyoLSowtCdpMW+jsmczVKgH7nHtY2lk tt2I4Dyju7UR7kDFI8IckfbianKn3drHMnwFboN47YuoigxlVH+LGjttDBYkBfSKkycptSF 1fKJa25d+/YDu4WSwoFLg== X-UI-Out-Filterresults: notjunk:1;V01:K0:gBvHhiVZ7nA=:1kCQyVLD76EVVLofEmBlX1 zhMSRxRtEeZbLCalUer57XiTwjz7WBwCZalpp1m68G7m6MbBxbqVhhwJmwAQOfoZOCxvWCJ2f hWJuB2iLwfEPet3Tm1GNESA++g81nE9kJFLJsExWkGwcVqJ05e62/7QTesL4Skg7Sx3UE2/4Q LYVOxGTA4kqBEiPM5zhcaI+YF0NXXeF2mdmPrwRBj98C9zkKKZATzm+RYo24igFEO+gncqtoJ 0Up61g7ATTCyrZa4/FUmHgyFZDKKCjdqD6ZU4R6Yx9NZDgqlp8QNTSU5hEmmA1eReyCnQe58n n5AQA6rOsCN+E+jkD+YN3ueQL1bEmWec8GScJGqZPCYhvkOuphxW8qBkA+8uXbt/ATcso2lnf Pqtw7YbMMCVWWTX4jG7EubU2Z31V9FuGjELuBH8u752Q8UB5taJtNloeXWx6Hw5w0SQ6n2Lmt qzta//gV7GEJa/5lQjJk5x28IkSdIjR9WwZsxaKSx+hcGa8Ujx01z7qEOmtZtnFhIm5vqO6/o 22DIVq7uNNOhlcWNqnQvNaizJlYbAfX8diYQbj3ltUz0EllMMgMjJMX/Qda1ZswKpL0BXemOP cn15pGvfkglJFFC6AiWN93zS1RXsWnfWSUJZ5blTkNDB1NN/5YhdP7WD/L3+Pe1I4LjMof1dF y9ITPt0BW5kT+FtrlZcQEME6zU5ybJzk0wNy0xhbNgkvyCm7c/SzO6HcgelN+outiQhvAg0fn FRA1YEst47/5Aoba0UOvYTkm001sLDPdJXjFB6E9UgzDCaSzf87GGvkfQQeb2ACYlu+3YpH5l sHM+Smq 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: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) 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: -4.1 (----) Hello, The way `cl-progv' is implemented, we have some strange effects happening to closures in the body. For example, with lexical-binding on, (let ((x 0)) (cl-progv (list 'x) (list 1) (funcall (lambda () x)))) yields 0, and (cl-progv (list 'x) (list 1) (funcall (lambda () x))) yields 1. That isn't consistent (FWIW I would expect `1' in both cases). TIA, Michael. In GNU Emacs 26.0.50 (build 7, x86_64-pc-linux-gnu, GTK+ Version 3.22.16) of 2017-07-12 built on drachen Repository revision: dde7f2d48b53996bdf767a8cf91aafc2e10add23 Windowing system distributor 'The X.Org Foundation', version 11.0.11903000 System Description: Debian GNU/Linux testing (buster) From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 00:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149990521411266 (code B ref 27674); Thu, 13 Jul 2017 00:21:01 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 00:20:14 +0000 Received: from localhost ([127.0.0.1]:35949 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVRra-0002ve-Gx for submit@debbugs.gnu.org; Wed, 12 Jul 2017 20:20:14 -0400 Received: from mail-it0-f52.google.com ([209.85.214.52]:36870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVRrY-0002vS-EX for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 20:20:12 -0400 Received: by mail-it0-f52.google.com with SMTP id m84so28669643ita.0 for <27674@debbugs.gnu.org>; Wed, 12 Jul 2017 17:20:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=WU9NXVT+Zx7x5kZ70vuiEfp2yEG8QHfVyfYQHFrjLWw=; b=iY9hw48d7heXRywe74+W/yuWpSlxwZQGjiDoWESogmfkwYaUdrWwWi7jrjJDYnYA8I R8zhOATyu/9RPAoKg/hw2VdOYzS3mExhOPqo4m5qfg6A3StAxbHA4DaPCGh4V5watdxG KsZKbodc96WqpiFW256BUiW4Y7hfpmN7KV5oT5Z9ni85A0Xvme5NKyHyZC4pkGLKWkle CwCsCWTURhpLCCTOgrl4KVw9GczLMfUSsy5ESfqZuqYet8+lLjibTNaI9+UyLwzJGQSF oQbm9/4NbknS9UeqDkfrtWNOSZbYYdXfrb9q7tY7Y7YzUXB0Snj7N9yditLnBWxXOrlw y4DQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version :content-transfer-encoding; bh=WU9NXVT+Zx7x5kZ70vuiEfp2yEG8QHfVyfYQHFrjLWw=; b=fw3Ypt5IzLUIN4Yv6cOvlvdGIsMmnqJIH0U7Dba4XK92Y7yU8oGPIXOWS7J/PbeZP5 Vhx4Djek3vLoUp5rK2xrIcg6vKoFjGR+2TUNffUySfvwR82q/NnRlTepOqeNaVkGyWlI CqpYfuYjd7h1RdUssInrUq4/w0ZLw3SpCzbYrOMxGz1Gdk5Jy1aZ3P6p24PLVCjafePD 1vDlM9cDNh4Q2TUbB/vNTlGqyZ3vMpejbHbeSJhEx/SvdQ17tpTRbjOTu+jCKKSnbToC BcfXsP2LN8akxsf+oh6f4RztxanyA6JZptiYJlL8KQ+TtzyBrQdP39kiIvUE2uKX9DBn g1FQ== X-Gm-Message-State: AIVw113EbquACTXkgh/nhuF9vAEx081Vn6xL7rZj2483JqyTbsQkDyIV /Lg99LfX93NIr1Ly X-Received: by 10.107.182.132 with SMTP id g126mr1307715iof.216.1499905206478; Wed, 12 Jul 2017 17:20:06 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id 126sm2283256ioy.15.2017.07.12.17.20.05 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Jul 2017 17:20:05 -0700 (PDT) From: npostavs@users.sourceforge.net References: <87lgntfhky.fsf@drachen> Date: Wed, 12 Jul 2017 20:21:39 -0400 In-Reply-To: <87lgntfhky.fsf@drachen> (Michael Heerdegen's message of "Wed, 12 Jul 2017 23:53:01 +0200") Message-ID: <87r2xldw4s.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) 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.2 (/) Michael Heerdegen writes: > The way `cl-progv' is implemented, we have some strange effects > happening to closures in the body. For example, with lexical-binding > on, > > (let ((x 0)) > (cl-progv (list 'x) (list 1) > (funcall (lambda () x)))) > > yields 0, and > > (cl-progv (list 'x) (list 1) > (funcall (lambda () x))) > > yields 1. That isn't consistent (FWIW I would expect `1' in both > cases). IMO, this is a bug in your program, this yields 1: (progn (defvar x) (let ((x 0)) (cl-progv (list 'x) (list 1) (funcall (lambda () x))))) Note that your second expression gives a compile warning (it's also missing a defvar, though it happens to give the result you expect even without that): 27674.el:10:25:Warning: reference to free variable =E2=80=98x=E2=80=99 From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 00:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: npostavs@users.sourceforge.net Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149990623512783 (code B ref 27674); Thu, 13 Jul 2017 00:38:02 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 00:37:15 +0000 Received: from localhost ([127.0.0.1]:35963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVS82-0003K6-A1 for submit@debbugs.gnu.org; Wed, 12 Jul 2017 20:37:15 -0400 Received: from mout.web.de ([212.227.15.14]:60750) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVS7z-0003Jr-OM for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 20:37:12 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0LkEaw-1e6Amq1vmE-00cBTu; Thu, 13 Jul 2017 02:36:54 +0200 From: Michael Heerdegen References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> Date: Thu, 13 Jul 2017 02:36:51 +0200 In-Reply-To: <87r2xldw4s.fsf@users.sourceforge.net> (npostavs's message of "Wed, 12 Jul 2017 20:21:39 -0400") Message-ID: <874luhf9zw.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:Vszx0l0+inapNM3P5/M5xtmlQylP8jzZ4kvN5PTcZKAVFXLKhZo 54a7haWXIiMz6UWZJSL8jt839ktmZiXOSBZHseHDO4H5Utf1Qdnf5t0G9QLlAFEpXkCZORZ KLnqsd+yuyB/Sjh1FI3vK8uvokcxDlfVOttHUrUnNVW8K9EBFVlXUPsH/RN0iyKxhRA+Tbw PF9sRAO4D/jkU/KycWm2g== X-UI-Out-Filterresults: notjunk:1;V01:K0:CX0oxTCF97Q=:iQ1fz56NFzIk+b1Nj7XB1y m8/g4h8MDelqQQ/mjVu+vcGRPPAxRzBrV+ekPZEM/CCgYNl4gk45UK05wm+L5WvpyHtG1Hkjn t7CS1NK0jcmmiiSoRuN365ibCgWnGc7pndgkdqseorbc4Xhjfacy7qqG9zWCJbX3XKoOS0Dd0 IVT0koDgJfWxjsPEv6xbdq344Xm+dgj2yMZ6hraldhcRU2uE8GhTUQGkC9iACNptPZ/BCp7UT PoH+GZ+eK+QgH+UE+B1HztohrE3qNxaD+89/ykBEUT+f6i36Zt1OunK+Q47Gts6jqT5OM2Dm2 3AbK/TI3H6+s5hHKYIZJs7LejE9trSMlUkfyeZ9R612m0dZ1+ORfy2BFzx/tPqUthwaNdJ8Rm lpTt/Ce+KgrtwegAELRmyTpdi1phajWheyyNDntKLvrx3av6BYkAJaSIX5S4MSACcOhBklTvL g6NWqhMSqCKGKDFxNc6MjM5YlkFSCvNnErQQA/GfpUsHZObFIurDfmYFJZkaU93+1dj8eqqUI 7xBTzDJeQdrY1mz147aXkTFiik8Res5PYB/2d7JZFTpsiacdze9t9EJqYsGfN4nKTRxUDKqr2 VbdKysUHMgIzxXcE8fbgbwM0xqLzSjwADBJJYU7hAVM3lFshZgAgH9CyjhKmlX4QAJxWQSRsv kRDx2JN1x9O13a9uurvxfKjLT03tbJfPigbrLp5HGGItX/+gAUD6y62mXIxxvKc6le3FRBf4W 6zglFVhHLPp5EltMN6GwVCeoBO85pLO98wJvf965uoYs9wEfIqmFsForVu9wJEKP1JLqmlgIq faIgopr X-Spam-Score: -0.7 (/) 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.7 (/) npostavs@users.sourceforge.net writes: > Michael Heerdegen writes: > > > The way `cl-progv' is implemented, we have some strange effects > > happening to closures in the body. For example, with lexical-binding > > on, > > > > (let ((x 0)) > > (cl-progv (list 'x) (list 1) > > (funcall (lambda () x)))) > > > > yields 0, and > > > > (cl-progv (list 'x) (list 1) > > (funcall (lambda () x))) > > > > yields 1. That isn't consistent (FWIW I would expect `1' in both > > cases). > > IMO, this is a bug in your program Why? >, this yields 1: > > (progn > (defvar x) > (let ((x 0)) > (cl-progv (list 'x) (list 1) > (funcall (lambda () x))))) Sure, but that's something different. I didn't want a special variable in my example. The doc of `cl-progv' doesn't mention that the symbols must correspond to special variables. Do I miss something? Michael. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 00:50:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149990695013909 (code B ref 27674); Thu, 13 Jul 2017 00:50:01 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 00:49:10 +0000 Received: from localhost ([127.0.0.1]:35979 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVSJZ-0003cH-VA for submit@debbugs.gnu.org; Wed, 12 Jul 2017 20:49:10 -0400 Received: from mail-it0-f48.google.com ([209.85.214.48]:35588) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVSJY-0003c3-2W for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 20:49:08 -0400 Received: by mail-it0-f48.google.com with SMTP id v202so25395218itb.0 for <27674@debbugs.gnu.org>; Wed, 12 Jul 2017 17:49:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=JGvnI8VUU0DsxvThc2eEzriesirxdBzFGC9v7B8ZcdI=; b=nqekJ4ugtUYbX8vOpF1pKqrKhERNx1w6/YSEVWscz4EuFFAHXfBprqC8BR0U6UaRCB nOslQXsgpmu3wLj+qXsxBCYyGmjwgY/k7C5KFafbiEGHGItLyeNIO8w/a/Di8rruV+sm ztrJY8c6hPYnClXRWikgV6egfHY5HDqfB5SjvVoFZpANyjIolFRJGG5YfIrThk/62TU4 TSCStw/OeymUKXWVOTHIBMeTvEGj/NhBeI9TNZOsOeBJcA87wm5FIt/JQoZtDlx/kTbT prm5r5l5EGc9LcBWeQK8d0gAt4vDzzDDcYl7NeRAFTX8vli2ju3jhjL+H65LqjEGCjTq gtBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=JGvnI8VUU0DsxvThc2eEzriesirxdBzFGC9v7B8ZcdI=; b=mXICyVOX/O6Z0spqUY3TdseEZNOvf5ttbmv2DXnLUY3wqD/AvjZjYbT6WiYql+5Uiq GBP2qsZ8t/Q1oFyCDIwRapmU6Q+PFOUQAdkaX42J+EkBq7GiPt3YcjI470MlheVAuv/X 25y+nEqf/4tYnrsp/Cnm6TPlU/ihjfsris/cFXmN33/z+hho6kKk3hqGptZXtgeQUvTO GmhY/Z7t0rHUXj6/U/r0MXWJEM4QAoVF4tkOoXHMtCuE8sJ4RnB51ALu7RkTBBciuu79 EzB4q25DGDv208nm1kOwLfKYAGibTOHd7RrllSeCbbmIovjqIHATcDmQ0hE2eYN617vf isPQ== X-Gm-Message-State: AIVw110EYSsQ+EpyEarHP9LCSSobwKnRlf8o+JjU7TNH2kVkXjHLJCor yjavONIqlX+6ZUHI X-Received: by 10.36.60.206 with SMTP id m197mr24532491ita.3.1499906942283; Wed, 12 Jul 2017 17:49:02 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id 137sm2066307itw.14.2017.07.12.17.49.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Jul 2017 17:49:01 -0700 (PDT) From: npostavs@users.sourceforge.net References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> Date: Wed, 12 Jul 2017 20:50:35 -0400 In-Reply-To: <874luhf9zw.fsf@drachen> (Michael Heerdegen's message of "Thu, 13 Jul 2017 02:36:51 +0200") Message-ID: <87o9spdusk.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) 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.7 (/) Michael Heerdegen writes: > Sure, but that's something different. I didn't want a special variable > in my example. The doc of `cl-progv' doesn't mention that the symbols > must correspond to special variables. Do I miss something? Oh, you expect cl-progv to bind lexically? I interpret the first sentence in its docstring to mean that cl-progv does dynamic binding, not lexical binding. Note also, that if it did bind lexically, we would not be able to compile the body form. (defmacro cl-progv (symbols values &rest body) "Bind SYMBOLS to VALUES dynamically in BODY. ^^^^^^^^^^^ From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 01:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: npostavs@users.sourceforge.net Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149990831915920 (code B ref 27674); Thu, 13 Jul 2017 01:12:02 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 01:11:59 +0000 Received: from localhost ([127.0.0.1]:35987 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVSff-00048i-3q for submit@debbugs.gnu.org; Wed, 12 Jul 2017 21:11:59 -0400 Received: from mout.web.de ([212.227.15.4]:49523) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVSfc-00048S-GD for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 21:11:57 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb003 [213.165.67.108]) with ESMTPSA (Nemesis) id 0Lb289-1dyDun2yuv-00kgTJ; Thu, 13 Jul 2017 03:11:40 +0200 From: Michael Heerdegen References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> Date: Thu, 13 Jul 2017 03:11:37 +0200 In-Reply-To: <87o9spdusk.fsf@users.sourceforge.net> (npostavs's message of "Wed, 12 Jul 2017 20:50:35 -0400") Message-ID: <87zic9dtti.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:QBG9BXYNJgiCVxpkfF+QXy5A2i+To1N2CRzWJ6m8Ots+Bk84S33 Fu4MHDTsIbEPwz3wB8z/XxfohaO6/5TCxEX0UaaPwS5p5LfNcDqDrzexl7+yiLnZ069QTtY WHUKh+D3lOR/0dEBwEiKBESwtBtNgGr4acenrdL/mAx/0XgunRWty4qTo4Yyxkg4AeDBuBJ q7v3f6z6TzRRKlVC9Ukwg== X-UI-Out-Filterresults: notjunk:1;V01:K0:lZ7iG95VQew=:1rCFjtPJNvuaF2bPxep1ZC u9za9OZaLxxCQMsx59LGR4VuGS9YzghOJjpA0tNV/jlJktTgwfS34mNClbIkXQV1DhS5Vcpuj zZfFKczgVe7GkyEkwB242kM7zaRhdH/1GsBDt8bq079ZnU9cKbSuXAiYmBx3YVzs+8pcm683t 8Azf2YdPulVp4exOtpjywLS9qurDcGDgZ4Sjj3AN0LvuUbH4veYbAZ5Pf6+0dxixySPBsRsFg jyaeHB4m5cFV/diZ/jecbRTeamUHTev7VJVat6ccmNl7wYQDJhn57A829IGb8wjdvaiwx5nkA dhoImgmNM1WQf0jd8c16jYCOiDhZyl1mie8iiQ+7cWV6hNnkgu1pta8pRmaJvKntkNkoxgZZT dckm+4SVwtldpuc3rBcLqd/xk7C8coWz3GrgG2zFtd5cIj4KqCrxM9cRrx+yfSEf22x3RdjyV BcZjlbIOmQrHxV8SAs9BJJVI1dqkULPU/isw16g/B52Nn4b0D4Z4+xPeZvZML1WNmcS7RVNfO KmdxxqYRtUYl5Ww1xq630MzVrNtr8defN8NXzwyTa+7xRsTZSD4LGDgZlo/8yy02Utx/GRodT pSIhK3Zf5OC3hLtvn9P6z40iN2r45JlMbRQhVeM3569g7ixstvFHJzpCAHFAdaBZDP7dCrG3h zBtqa4r1kThi84lDh1fgfC4Cj3EQaOIPxtSESnUXBqtPs4b9oy8ipciqlylWeA5t+CblndAZW oU7Jlmm0oaxQI0RvSlWZ6WanjT0sIAg+pNM4eaRMZ3CRLg4tmUtwyYzNCSSfu2aud9yIrvEIi 4S8H6zF X-Spam-Score: -0.7 (/) 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.7 (/) npostavs@users.sourceforge.net writes: > Michael Heerdegen writes: > > > Sure, but that's something different. I didn't want a special variable > > in my example. The doc of `cl-progv' doesn't mention that the symbols > > must correspond to special variables. Do I miss something? > > Oh, you expect cl-progv to bind lexically? Eh - no. Maybe I have a wrong mental model. I thought that the free variable `x' in the lambda is (also) in the scope of the dynamical binding created by `progv', and because that binding is established inside the `let' establishing the lexical binding of `x', it would shadow the lexical binding. Why does the lambda still refer to the lexical binding? FWIW I see that this example shows the same behavior: #+begin_src emacs-lisp (setq x 'foo) (let ((x 0)) (cl-letf (((symbol-value 'x) 1)) (funcall (lambda () x)))) #+end_src ==> 0 Does a lexical binding always beat a dynamical one? Michael. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 01:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149991078119682 (code B ref 27674); Thu, 13 Jul 2017 01:53:02 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 01:53:01 +0000 Received: from localhost ([127.0.0.1]:36012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVTJN-00057N-4w for submit@debbugs.gnu.org; Wed, 12 Jul 2017 21:53:01 -0400 Received: from mail-it0-f41.google.com ([209.85.214.41]:37320) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVTJL-00057B-TP for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 21:53:00 -0400 Received: by mail-it0-f41.google.com with SMTP id m84so30198116ita.0 for <27674@debbugs.gnu.org>; Wed, 12 Jul 2017 18:52:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=i92O26eIf8LC06jff7in2sHavnZyS0P4DLK2xxogBqg=; b=fnhLuV4OKLQUX/8VOoyLfESQoMSFhmeLOWCfM2FnPagT55RaSzRayV8PuwC7PeGwGT sSkTbsqtq/Evr5Q0Eg2vyKiefzq7MJJlbQw6vKTqEERRwVZhEL6z9VeExDnNMih5W6SF 6/QQFLoG7cMfzhdGjI9IiPx7EIQqCqWIQHyWDIu0DMMjAKfYuLa7yWoRt/XEKTwOSnbr vsn68XVFzeFaoLGvPulkTKnJx80GnhZDHoDTh4UG8bz4XPKHFsgAa/JyAvXoTkKIX4fi cQwyF0GmrOTrBePpWtnDApMn4mToVuzdxI6WutDxW3y5QWnoo+7bKuby/2oeTzcJWRuk 1uHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=i92O26eIf8LC06jff7in2sHavnZyS0P4DLK2xxogBqg=; b=aqoxU6PZpB6C38XcM1e4qpgGPGilFu33YgfwqD1LhrkSJs2lACXr1akFlgL5F99Hga lMHK6xfzf5GSLXLxG77yQf4enEnb9hNdowWOoe8PI4ZFRzoYHOzaOqVvrycQ0O2MVXOq UxKh4pmkVzHl42ZOeQqsg362j5qnYjDlS6h4joPB4p5JtXq3QDU36J8PHrS5ptfuO3wl 3dN4jUQ06U43oZ2CYoT6cpNDkJQ2u3V5p9rpM3nSjlF3x6bhTm3yNuWI4GtjR42aLJgP UKGOHRoclZ3FvJs6tN64E54KNe984TOUzbgDmHIOma5M+LfrC5nlUtI6EbY6yG2p73p7 uuvQ== X-Gm-Message-State: AIVw1113KL7JA4kY/5EfYK2bCLLjSQKx0r0MrghKAVhIP7rNZ9DkAmKN N7p/y3OWQfTGvE6J X-Received: by 10.36.4.4 with SMTP id 4mr24435825itb.73.1499910774099; Wed, 12 Jul 2017 18:52:54 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id b18sm2176061itd.25.2017.07.12.18.52.52 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Jul 2017 18:52:53 -0700 (PDT) From: npostavs@users.sourceforge.net References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> Date: Wed, 12 Jul 2017 21:54:26 -0400 In-Reply-To: <87zic9dtti.fsf@drachen> (Michael Heerdegen's message of "Thu, 13 Jul 2017 03:11:37 +0200") Message-ID: <87inixdru5.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) 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.7 (/) Michael Heerdegen writes: > Eh - no. Maybe I have a wrong mental model. I thought that the free > variable `x' in the lambda is (also) in the scope of the dynamical > binding created by `progv', and because that binding is established > inside the `let' establishing the lexical binding of `x', it would > shadow the lexical binding. Oh, you want lexical and dynamic binding on the same variable? I think the answer is "don't do that". > Why does the lambda still refer to the lexical binding? Maybe it would be more obvious if we wrote it like this: (let ((x 0)) (cl-progv (list (intern (read-string "Enter var: "))) (list 1) (funcall (lambda () x)))) Clearly the inner x must refer to the lexical let-binding, right? Even if the user happens to enter `x' at the prompt this remains true. > Does a lexical binding always beat a dynamical one? Yes, lexical analysis is performed first and then the names are thrown away, so you can't even tell when the "same" variable has been dynamically bound as well. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 02:16:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: npostavs@users.sourceforge.net Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149991212621711 (code B ref 27674); Thu, 13 Jul 2017 02:16:02 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 02:15:26 +0000 Received: from localhost ([127.0.0.1]:36016 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVTf4-0005e7-3j for submit@debbugs.gnu.org; Wed, 12 Jul 2017 22:15:26 -0400 Received: from mout.web.de ([217.72.192.78]:52591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVTf2-0005dt-D1 for 27674@debbugs.gnu.org; Wed, 12 Jul 2017 22:15:24 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb103 [213.165.67.124]) with ESMTPSA (Nemesis) id 0MV4bp-1dAo091IHV-00YUFt; Thu, 13 Jul 2017 04:15:08 +0200 From: Michael Heerdegen References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> Date: Thu, 13 Jul 2017 04:15:05 +0200 In-Reply-To: <87inixdru5.fsf@users.sourceforge.net> (npostavs's message of "Wed, 12 Jul 2017 21:54:26 -0400") Message-ID: <87h8yhdqvq.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:3stVg4o7fWFuuuEiWlStdcDp3LPYBD4q8l9vTyueJ6MAzjUQEhr H9vSn1NxWH5f38XgkyCnKG0zEGRAViHIMwCTW7GA2gU100qoVD4Sw5AfLjhcu2h1RoDcaE3 4fCh5BMTV8DY3YRtiu6ZDhNFWDRmLmxx6qiO4lVHSOMa/wZpaAjveJqea9wS6uTC3mLW1Uo 0GZJBcgKyddtY2z10+Lag== X-UI-Out-Filterresults: notjunk:1;V01:K0:+UTEWKxnj/k=:cIJv9LSaNKAVmYJfOm6Yv5 /2O2qevkCWHXCp/wHxrPicoYPzCxjfEoIH5H1bXSFSNp93Mz7fMKP09MLbYoXh5F8NxjoO314 FKF6gUB2PmrAWB1oysKGmhxQWelNcQSrki22ezgeBHiQ7Bllpw4sxvn3ANnc+JOsTbbAViplW OLsG/D2iBhdik1rrPROUFJfBqNfeyjIwr76/NGZVa+zLcrWmhCKtzWPeIr3yENCkiV45p5Fsd xohaVzSLqENbky6Ru96+dx+/C/EmutDUEpAQOD6SjD62ph9iASMyuESLGxaERSEnsmMHY6K8e lMpO1C6lZtkifWDCrbEF2Ze07TE+iA/4mbCirw/utIfLoYkaGSImwAH2wfZJ8W65Iz9emuH8H wjNBFhk4R5cGCTMpmFWmxslSxaZK58cYTcN4GFqZcNIPmxuQqkSrlv0llfgHB5q1j1Ys/cMZE SJPLGXpilsndN1izPmYifsEIBqqxVGbA//wM5EepPGUghhqSvoGQGhQxXaq+tY+vU7TsrzlZf 1i9LBuimwY+zQdznKY9uW3JInHLZKeo02Iy8cmhmlDeBJhxM9WDjOQVzLh4lbl1hrRRLOLi6B 5jr+kokUt1KkQqXNBBezDpilZiRJ3K0zgtfLLVKGyIdc4vb8AVC2H2AF7l3/o1tIqSXM9M2V9 tjujAUmcJ7IeMpJyB2sA4VYYeOEC8JZhfD1qzCBmUTXpJMB0d5wPnZI+c6dyj4ghsKpscldfr 08bIuGzaArYC65JfxgwOuccybOjcSe7z5lOCIbimVhOHFrNBovQ0eDm5f3ik2Rg+F3nhtZe/d gKFWA42 X-Spam-Score: -3.5 (---) 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: -3.5 (---) npostavs@users.sourceforge.net writes: > > Why does the lambda still refer to the lexical binding? > > Maybe it would be more obvious if we wrote it like this: > > (let ((x 0)) > (cl-progv (list (intern (read-string "Enter var: "))) (list 1) > (funcall (lambda () x)))) > > Clearly the inner x must refer to the lexical let-binding, right? Even > if the user happens to enter `x' at the prompt this remains true. Not an argument per se, because with lexical binding mode off, you can surely do that. > > Does a lexical binding always beat a dynamical one? > > Yes, lexical analysis is performed first and then the names are thrown > away, so you can't even tell when the "same" variable has been > dynamically bound as well. Ok, this is the part I was clearly missing, thanks. I'll have a look if the documentation tells something like this (it should be spelled out somewhere). Then I guess you can close this report. Thank you, Michael. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 02:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Michael Heerdegen Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149991358723815 (code B ref 27674); Thu, 13 Jul 2017 02:40:02 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 02:39:47 +0000 Received: from localhost ([127.0.0.1]:36031 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVU2d-0006By-1T for submit@debbugs.gnu.org; Wed, 12 Jul 2017 22:39:47 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:33302) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVU2b-0006Bg-Ei; Wed, 12 Jul 2017 22:39:45 -0400 Received: by mail-it0-f67.google.com with SMTP id 188so5085884itx.0; Wed, 12 Jul 2017 19:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=nefAFHwQopRxv6HbI2T5dDey7zJVB4wIimXtd/ou4M0=; b=IO7iInuFRGSoGX74hEBHqa3MMZ+LnIBQ7tAc954Ll721j77VkT2X3+XOER3c/O9mUh 0/chRUpNlZXPNv3O0AwNNC4BVulPID/XU0UWy8RlnuZujav8vQVwtj5DnsRx81Q/WKSn d/lOWDOTgD5V1QlI2XRb/BmaC+rCnyyRnJqBj4foeaas1jh4Walak5P2issNF9RNokzB sNFUgWFTk11R3FzfscoFH1MX4MxtpKz+ssm6V/sTtH6XXdvYodwmBrgpqppWfG0jaZb1 HC8UwRTjN6/LTvJx+GEBfycuTNh2gCBqIs981wvcaNdmhLoJChEuvkaUahfcTx8Q/kzy ZOoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=nefAFHwQopRxv6HbI2T5dDey7zJVB4wIimXtd/ou4M0=; b=aN/72fFcDaNaKWnQCdSO/UZeXNr5RU7pk83IMh6EXxci9icI6cfJSiWibl6N7okeCd qotQvBs8YbxVQqzwMr3W1y7yw6I70DoqbAULqqxKHgaKP4qajt6l3h0Z2C+ugstIpna0 GQAUrvhYCDWhUzxWQ+ZeKqUQjEPRFhG2wk0cUn2JOdw+5V/23fHu12Q4rMcxjn53gxiR nt6e1cVSSMAzffKRdmx8AjbjRe7VHQnDisyqxYAiBcxAFBhDQD2I78I06j8UcA1378Gz ECZXXATpO9t61JCd9tHZBrJ5DjzcDqVv4tmC+GasLOdHY/6ABnXVeA681ep6DgRRIsaR HiVA== X-Gm-Message-State: AIVw111/f+EiPLcl6GZ6QZi0spBUcMvUMwTuTVuBf42eIdMRT+KAVAi1 stuGYUqwZcHdiIuW X-Received: by 10.36.110.149 with SMTP id w143mr11203236itc.21.1499913579673; Wed, 12 Jul 2017 19:39:39 -0700 (PDT) Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id g198sm252275itb.3.2017.07.12.19.39.38 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 12 Jul 2017 19:39:39 -0700 (PDT) From: npostavs@users.sourceforge.net References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> Date: Wed, 12 Jul 2017 22:41:12 -0400 In-Reply-To: <87h8yhdqvq.fsf@drachen> (Michael Heerdegen's message of "Thu, 13 Jul 2017 04:15:05 +0200") Message-ID: <87fue1dpo7.fsf@users.sourceforge.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) 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.7 (/) tags 27674 notabug wontfix close 27674 quit Michael Heerdegen writes: > npostavs@users.sourceforge.net writes: > >> > Why does the lambda still refer to the lexical binding? >> >> Maybe it would be more obvious if we wrote it like this: >> >> (let ((x 0)) >> (cl-progv (list (intern (read-string "Enter var: "))) (list 1) >> (funcall (lambda () x)))) >> >> Clearly the inner x must refer to the lexical let-binding, right? Even >> if the user happens to enter `x' at the prompt this remains true. > > Not an argument per se, because with lexical binding mode off, you can > surely do that. Of course, if `x' is a dynamic variable (e.g., if you use (defvar x) or you don't have lexical binding enabled) then the inner x refers to the dynamic binding (again, regardless of what the user enters at the prompt). >> > Does a lexical binding always beat a dynamical one? >> >> Yes, lexical analysis is performed first and then the names are thrown >> away, so you can't even tell when the "same" variable has been >> dynamically bound as well. > > Ok, this is the part I was clearly missing, thanks. I'll have a look if > the documentation tells something like this (it should be spelled out > somewhere). That explanation might be a little bit "infected" by my knowledge of how the compiler implements lexical binding, the manual carefully talks only in terms of the "evaluator": Here is how lexical binding works. Each binding construct defines a "lexical environment", specifying the variables that are bound within the construct and their local values. When the Lisp evaluator wants the current value of a variable, it looks first in the lexical environment. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation In-Reply-To: <87lgntfhky.fsf@drachen> Resent-From: Roland Winkler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 14:41:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: 27674@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.149995685714587 (code B ref -1); Thu, 13 Jul 2017 14:41:01 +0000 Received: (at submit) by debbugs.gnu.org; 13 Jul 2017 14:40:57 +0000 Received: from localhost ([127.0.0.1]:37238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVfIX-0003nD-In for submit@debbugs.gnu.org; Thu, 13 Jul 2017 10:40:57 -0400 Received: from eggs.gnu.org ([208.118.235.92]:39060) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVfIW-0003n0-6l for submit@debbugs.gnu.org; Thu, 13 Jul 2017 10:40:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVfIQ-000429-1Q for submit@debbugs.gnu.org; Thu, 13 Jul 2017 10:40:51 -0400 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 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:44000) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dVfIP-00041m-UT for submit@debbugs.gnu.org; Thu, 13 Jul 2017 10:40:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58215) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dVfIO-0007bF-In for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:40:49 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dVfIL-0003wG-9M for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:40:48 -0400 Received: from [195.159.176.226] (port=40372 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dVfIL-0003v9-2J for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 10:40:45 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dVfIC-0000M4-Vr for bug-gnu-emacs@gnu.org; Thu, 13 Jul 2017 16:40:36 +0200 X-Injected-Via-Gmane: http://gmane.org/ From: Roland Winkler Date: Thu, 13 Jul 2017 09:40:27 -0500 Lines: 38 Message-ID: <871spkz9gk.fsf@gnu.org> References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> <87fue1dpo7.fsf@users.sourceforge.net> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@blaine.gmane.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) Cancel-Lock: sha1:t8HNnnWx+6NZNX0kbViZDWZ40BI= 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: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) 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: -5.0 (-----) On Wed, Jul 12 2017, npostavs@users.sourceforge.net wrote: >>> > Why does the lambda still refer to the lexical binding? >>> >>> Maybe it would be more obvious if we wrote it like this: >>> >>> (let ((x 0)) >>> (cl-progv (list (intern (read-string "Enter var: "))) (list 1) >>> (funcall (lambda () x)))) >>> >>> Clearly the inner x must refer to the lexical let-binding, right? Even >>> if the user happens to enter `x' at the prompt this remains true. >> >> Not an argument per se, because with lexical binding mode off, you can >> surely do that. > > Of course, if `x' is a dynamic variable (e.g., if you use (defvar x) or > you don't have lexical binding enabled) then the inner x refers to the > dynamic binding (again, regardless of what the user enters at the > prompt). I am not sure I can follow this thread: The docstring of cl-progv says Bind SYMBOLS to VALUES dynamically in BODY. But I am not sure whether this statement correctly reflects the actual code of cl-progv: cl-progv evaluates a let form at runtime, but it is not up to cl-progv to ensure dynamical binding. I believe it depends on whether lexical binding is on or off whether the code currently used by cl-progv uses dynamical binding or lexical binding. So it is my ignorant guess that a consistent behavior of cl-progv with lexical binding on or off requires that the bindings of SYMBOLS to VALUES is also passed to `eval' as a second arg. From the docstring of eval: LEXICAL can also be an actual lexical environment, in the form of an alist mapping symbols to their value. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Noam Postavsky Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 13 Jul 2017 15:08:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: Roland Winkler Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.149995847616869 (code B ref 27674); Thu, 13 Jul 2017 15:08:01 +0000 Received: (at 27674) by debbugs.gnu.org; 13 Jul 2017 15:07:56 +0000 Received: from localhost ([127.0.0.1]:37243 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVfid-0004O1-SS for submit@debbugs.gnu.org; Thu, 13 Jul 2017 11:07:56 -0400 Received: from mail-oi0-f52.google.com ([209.85.218.52]:35859) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dVfic-0004No-7N for 27674@debbugs.gnu.org; Thu, 13 Jul 2017 11:07:54 -0400 Received: by mail-oi0-f52.google.com with SMTP id x187so48344925oig.3 for <27674@debbugs.gnu.org>; Thu, 13 Jul 2017 08:07:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=ACOK1cZJ+cJKf5VbLQ3DA49tafA1/ZWcNQE7qKzRZNk=; b=hNyCXRJMutiQ/KEl7cHY3QCGVAxfiKu6ipDQ3VioUZaLnPhK6Y5NhxT1avd+ltEho7 v/jkGuLvteKLn+G7uRMw/VIpBoLhi11o/CC5eM1CoFtIbAs3/QNQU0ZnmmEN4iInUrRf 9jnuaBKeGOkA22yp+8MOquSOsIKu2YWoUgYq9y8LM92QViatq9F9bQMky8u6v64RaEPi LbsX2eBB9V5g1o2TAPgbFIiA/Htwh+DM8Fqtx82+e2mOyLVcU16u229dmTOLU2GL1/Ce EmNgyuBkKoKIeyI40Bf6p70BHxNxcSiq/9nfhKc4WimcMLtJUnVyM8r71g6j8iBGwqxM YLLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=ACOK1cZJ+cJKf5VbLQ3DA49tafA1/ZWcNQE7qKzRZNk=; b=qL38Sl4aKcWsT7iayn0O44gyykaQ74nXOr/URfJP1dNoyfxT9619ClE+ilEwYCP4kw sOIPBilLt7c/AZTq+gZ5hQ5JAXst+bcpt15tsOVEf7ocq0kCgwb+Y5yXINLQzDE7yx97 +3WlzdmIJMYAe/a1wuZgucy+9ZBfFX1OyG0i2jWKdWJN2rPz3p3JrrIQtGbAupyzWKg3 sMW6a5cIIVhapmInC/dKx0ByoVlMNijYDyX5PU57q9rHyp5qcFv6vRaPzSuP51IGqSKI vT8dfc8KmFfmpWZQV5xYDZYpkUcDXTjCMVI9U1TkENt8uu5hftC8tLGJup/CxQNVymDq /isA== X-Gm-Message-State: AIVw112u2K041bKKHp1OfK73zkkcSIu629gIf9kKrkmoqzrER4L+kCho HeW42g2eEjisKXam9N3hDwQko/iASQ== X-Received: by 10.202.83.74 with SMTP id h71mr2773735oib.135.1499958468332; Thu, 13 Jul 2017 08:07:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.74.113.91 with HTTP; Thu, 13 Jul 2017 08:07:47 -0700 (PDT) In-Reply-To: <871spkz9gk.fsf@gnu.org> References: <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> <87fue1dpo7.fsf@users.sourceforge.net> <87lgntfhky.fsf@drachen> <871spkz9gk.fsf@gnu.org> From: Noam Postavsky Date: Thu, 13 Jul 2017 11:07:47 -0400 X-Google-Sender-Auth: TgD8L4fpGzzpbOiPzcanDM0iVXQ Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.7 (/) 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.7 (/) On Thu, Jul 13, 2017 at 10:40 AM, Roland Winkler wrote: > > The docstring of cl-progv says > > Bind SYMBOLS to VALUES dynamically in BODY. > > But I am not sure whether this statement correctly reflects the actual > code of cl-progv: cl-progv evaluates a let form at runtime, but it is > not up to cl-progv to ensure dynamical binding. I believe it depends on > whether lexical binding is on or off whether the code currently used by > cl-progv uses dynamical binding or lexical binding. No, because cl-progv omits the second argument to `eval', which is the same as passing nil. This guarantees the evaluated let-bindings are dynamic bindings. > So it is my ignorant guess that a consistent behavior of cl-progv with > lexical binding on or off requires that the bindings of SYMBOLS to > VALUES is also passed to `eval' as a second arg. Doing this would mean that cl-progv would always bind lexically. We could, in theory, change cl-progv to be that way, but it would be backwards incompatible with previous Emacs versions, and with Common Lisp. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 14 Jul 2017 14:21:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: Noam Postavsky Cc: 27674@debbugs.gnu.org, Roland Winkler Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.150004202321160 (code B ref 27674); Fri, 14 Jul 2017 14:21:01 +0000 Received: (at 27674) by debbugs.gnu.org; 14 Jul 2017 14:20:23 +0000 Received: from localhost ([127.0.0.1]:39158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dW1SB-0005VE-Iz for submit@debbugs.gnu.org; Fri, 14 Jul 2017 10:20:23 -0400 Received: from mout.web.de ([212.227.17.11]:52764) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dW1S9-0005Ux-Ez for 27674@debbugs.gnu.org; Fri, 14 Jul 2017 10:20:22 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb101 [213.165.67.124]) with ESMTPSA (Nemesis) id 0LnjFb-1e9CTw1enf-00hrKg; Fri, 14 Jul 2017 16:20:07 +0200 From: Michael Heerdegen References: <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> <87fue1dpo7.fsf@users.sourceforge.net> <87lgntfhky.fsf@drachen> <871spkz9gk.fsf@gnu.org> Date: Fri, 14 Jul 2017 16:20:04 +0200 In-Reply-To: (Noam Postavsky's message of "Thu, 13 Jul 2017 11:07:47 -0400") Message-ID: <87mv87t817.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:6j7CIvp3h48JoUqSYAzTKMbh4EXwzNxANOCZu2QVPw9edV20NvD itTKGtWo/EAF8ziOCqbc45h7ZkJZpoddcOYoEH3cZV4vmmOD3939Whzogyv6otgbReymNqq kpjuhZ6Q7oCePKxrNrBA3l4E5yK1j4gy5xs9bN6DKfPYITnbzlGnuPS4Fjf/DSuSTcbHQPX 9abMoHFR4k/eE25Q4RAsg== X-UI-Out-Filterresults: notjunk:1;V01:K0:GutPGAQ+HTI=:volKX3Aa8A8dcyePRFpFnn llccv9V3ayGuFod73EvxCDTFlcq5EkGkyBPzrGPXscciQ7zr8lPhxkVpzmLHAHQ36hAMNxJoJ ktF21xaVqkpXCyHxZIQBSPb8sTWEWqE3g1BIdunwSJ069inzdtRQGz9/yapUCu3hVl6cEyPEd /oIKBYR5K8m9Sa9Q00zCpETMcTokYEUQfwHuca7c/qJIPWHPquat3rXWe9k3iL/hbHpUKg9zG +5/LC1xAmabgTLg6GWciF2ZsjcRhsLjVxgi5JjU7suXvG1XA2dkIEwkrLvXsBDyKMyItzCY30 6Iysq5yz4Eve8a5L4J2rFOWvutqGvMFZLWKH1pzU6+tX3yv3OeWZQBThbNo8L7AG956WzVAKw +UeN/SEGlj9DtSqdIzG2g7SP82+5c8U14/LLfOnfpKf+wv1odLsrFnf2vSj86R9SPlguqSMs1 1/+Xwj1Bbp1S2A7eTE6BAAK0CelXyjF1FXILEh/3/ZR/swqXIX00SvUOI9do2ytSSMkQIe5c/ aISttWoZP9mdpJVcKAB2Kk+rxTBn5JOWqYyXxmInI+troPC07jZx6wVXbNIV8NlCGJVvvy2O4 Pwk9SaP8/TrG6A2a34cgIIDQIZuudh9ffgH5afwOwRj/HBc0JRJMuna41CfX49DeG5VuIisVV lS53wLS/vjpmLTPgKmlwxEvEK+A6XkK22sICFNEuvxrNWFvASkgr60o2VvtoDfxE5x2d+P6wu ThKjmEj9fNx1DGpLNho8OfslaL6nwktEyAeTTB+I4Jo6NKpJVdjjcH4mWxISPknwwvmZ9GMwh PH4XYEuNGRmvSoC/FW2yl02lCRgHXdVtakLKqgXS6iVe8Ta638= X-Spam-Score: -0.7 (/) 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.7 (/) Noam Postavsky writes: > > The docstring of cl-progv says > > > > Bind SYMBOLS to VALUES dynamically in BODY. > > > > But I am not sure whether this statement correctly reflects the actual > > code of cl-progv: cl-progv evaluates a let form at runtime, but it is > > not up to cl-progv to ensure dynamical binding. I believe it > > depends on > > whether lexical binding is on or off whether the code currently used by > > cl-progv uses dynamical binding or lexical binding. > > No, because cl-progv omits the second argument to `eval', which is the > same as passing nil. This guarantees the evaluated let-bindings are > dynamic bindings. Yes. The second part of the answer is the creation of BODYFUN outside of `eval': it ensures that free variables in the BODY refer to the outer lexical environment regardless of `eval' being without performed with lexical binding off. Michael. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Michael Heerdegen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 14 Jul 2017 16:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: npostavs@users.sourceforge.net Cc: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.150004807930655 (code B ref 27674); Fri, 14 Jul 2017 16:02:01 +0000 Received: (at 27674) by debbugs.gnu.org; 14 Jul 2017 16:01:19 +0000 Received: from localhost ([127.0.0.1]:39208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dW31r-0007yN-GB for submit@debbugs.gnu.org; Fri, 14 Jul 2017 12:01:19 -0400 Received: from mout.web.de ([212.227.15.3]:59261) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dW31q-0007y8-68 for 27674@debbugs.gnu.org; Fri, 14 Jul 2017 12:01:18 -0400 Received: from drachen.dragon ([88.73.234.235]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MFtOY-1dTHac3aNi-00EveE; Fri, 14 Jul 2017 18:01:01 +0200 From: Michael Heerdegen References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> <87fue1dpo7.fsf@users.sourceforge.net> Date: Fri, 14 Jul 2017 18:00:57 +0200 In-Reply-To: <87fue1dpo7.fsf@users.sourceforge.net> (npostavs's message of "Wed, 12 Jul 2017 22:41:12 -0400") Message-ID: <87inivt3d2.fsf@drachen> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K0:C0zoAUK0EJmL3qESaPJ4k71fuBtB6RU7BR7gd8ppuLbOPHWclMb 1Y2WXs8tiXOhYFaXHNVMilucA7g//jycaUGZ3Mfw+qp/7dyJ9zDKoySctocWe22zO49HQnC UjEOO4MHIvy8ez403FERoUT5E1HmThQ/FyjTv3uONxqqzYgBK5EVPr/y8rMKEPB0jHRY63Z mIJCINvsPrcEoBpQRnxmg== X-UI-Out-Filterresults: notjunk:1;V01:K0:Drgvkz7H8PU=:B1GmoDRlbOVPVqZeqZWe3P W2zQ6ARRK/5FACBGcCAh+y8GRZPJOo5ns9+wACKwOnErVSwRCuqLhj3crmz3NpXJO7SVDU+Eu 76353JYanFEllWSWC0kJcbzALi/6ECHy8Hci3D9YsaQGMRNOXBmn5r7HEUv6kz23JcvDHfTCa 832hW/+nFqg+H2AD9VVGOgXUg4lqKOA5jlgx2TKdO9kieq2N3Ceo8LGGvDDFa6Tz/In0QUR8P fus2Jg73JyBKF0mBdUqHlWmeQDL22g46HJIZbgDyG/83poA+gcOHMBtsg/1+UzYQbVD4CRM08 p5T28wC5LmjfYgC6rr4ltRHEBi35+rGyLNALC9Jduhujt8o7J4QVr2uINRSbg25NIzZQTMvBv heIq07zZRM3E7m0S/PiEoFyyzgC1FY/+A3GXTQCGCGcSJmWzzgceh4XGimi5EcYDEOeeEaZDn b3lYt+w2f+1Swu9SEmzp+isXKs+26ywsEbwl0L/ZBksH/wAAYm44CA7hgfrG338ZPCHsySkY2 5MeFKEwQXQnhYEeW+Z3KJm9b9/zLC6IdONuWng+Oxc5yYCIA9nNKHIZU12KrNAOBqeEDmkfK2 r/lKHT0YE3OGTVjvtPdyQl13k4VtKqm2Sc7rOseapH2hQvuwjSxMRw7NA8Q5u88DobW9S7hm4 2MryRbK1sqrQEuUrNDeR711whIwfSHN+v2yPuciawyTp73hwXNAs3mwUcYRX28WhHGYgzf6SC p3dzmOz0IKArz7yd36JCLImpIZdaW4VkI1UWb/uj3K+ZCuO6JbkzV2CuQf2qC3mir9gpUdwrX NR8u7Olyof3Ep5YWmiDD+c+5krGVeitQIfulH/SYkWcL4YIvS4= X-Spam-Score: -0.7 (/) 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.7 (/) npostavs@users.sourceforge.net writes: > That explanation might be a little bit "infected" by my knowledge of how > the compiler implements lexical binding, the manual carefully talks only > in terms of the "evaluator": > > Here is how lexical binding works. Each binding construct defines a > "lexical environment", specifying the variables that are bound within > the construct and their local values. When the Lisp evaluator wants > the current value of a variable, it looks first in the lexical environment. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ I think that's good enough. Michael. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: "Roland Winkler" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 15 Jul 2017 20:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: 27674@debbugs.gnu.org Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.150015160114335 (code B ref 27674); Sat, 15 Jul 2017 20:47:01 +0000 Received: (at 27674) by debbugs.gnu.org; 15 Jul 2017 20:46:41 +0000 Received: from localhost ([127.0.0.1]:40688 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWTxZ-0003iy-GH for submit@debbugs.gnu.org; Sat, 15 Jul 2017 16:46:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55546) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dWTxY-0003eY-JX for 27674@debbugs.gnu.org; Sat, 15 Jul 2017 16:46:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dWTxS-00031j-Ha for 27674@debbugs.gnu.org; Sat, 15 Jul 2017 16:46:35 -0400 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,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35968) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dWTxS-00031f-Dm for 27674@debbugs.gnu.org; Sat, 15 Jul 2017 16:46:34 -0400 Received: from [2602:30a:2e52:d720:65b7:1416:12e7:8bfb] (port=54476 helo=regnitz) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1dWTxS-0004ck-26 for 27674@debbugs.gnu.org; Sat, 15 Jul 2017 16:46:34 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <32552.74010.592567.22890@gargle.gargle.HOWL> Date: Sat, 15 Jul 2017 15:46:32 -0500 From: "Roland Winkler" In-Reply-To: <87mv87t817.fsf@drachen> References: <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> <87fue1dpo7.fsf@users.sourceforge.net> <87lgntfhky.fsf@drachen> <871spkz9gk.fsf@gnu.org> <87mv87t817.fsf@drachen> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) 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: -5.0 (-----) For the records: Essentially, Michael's examples expand to (let ((x 0)) (let ((fun (lambda () x))) (eval `(let ((x 1)) (funcall ',fun))))) (let ((fun (lambda () x))) (eval `(let ((x 1)) (funcall ',fun)))) With dynamic binding, both examples return 1. With lexical binding, the compiler complains about reference to free variable `x' in the 1st line of the 2nd example. Then, the 1st example returns 0, the 2nd example returns 1. From unknown Sat Aug 16 16:55:38 2025 X-Loop: help-debbugs@gnu.org Subject: bug#27674: 26.0.50; cl-progv: strange scoping due to implementation Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 19 Jul 2017 13:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27674 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: notabug wontfix To: Michael Heerdegen Cc: 27674@debbugs.gnu.org, npostavs@users.sourceforge.net Received: via spool by 27674-submit@debbugs.gnu.org id=B27674.150047251611796 (code B ref 27674); Wed, 19 Jul 2017 13:56:02 +0000 Received: (at 27674) by debbugs.gnu.org; 19 Jul 2017 13:55:16 +0000 Received: from localhost ([127.0.0.1]:47974 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXpRc-00034C-Gv for submit@debbugs.gnu.org; Wed, 19 Jul 2017 09:55:16 -0400 Received: from ironport2-out.teksavvy.com ([206.248.154.181]:18414) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dXpRa-0002xp-8O for 27674@debbugs.gnu.org; Wed, 19 Jul 2017 09:55:15 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AQEgChY29Z/9vnr2xbhApkgRSIfoYAkG0sAUeVEIIRKIUVBAQCAoNeQhYBAgEBAQEBAQFrKEIOAYRIAQQBViMFCws0EhQYDSSKOggQsQCLBgEBAQEBBQImgyiFLoJwNIpeBZ85h0uOQgFuiDuHEpQYgUQmCieBCjEhCDBJhzIkNoJ6hiYBAQE X-IPAS-Result: A0AQEgChY29Z/9vnr2xbhApkgRSIfoYAkG0sAUeVEIIRKIUVBAQCAoNeQhYBAgEBAQEBAQFrKEIOAYRIAQQBViMFCws0EhQYDSSKOggQsQCLBgEBAQEBBQImgyiFLoJwNIpeBZ85h0uOQgFuiDuHEpQYgUQmCieBCjEhCDBJhzIkNoJ6hiYBAQE X-IronPort-AV: E=Sophos;i="5.40,381,1496116800"; d="scan'208";a="320749380" Received: from 108-175-231-219.dsl.teksavvy.com (HELO pastel.home) ([108.175.231.219]) by smtp.teksavvy.com with ESMTP; 19 Jul 2017 09:55:07 -0400 Received: by pastel.home (Postfix, from userid 20848) id 2B2E26A048; Wed, 19 Jul 2017 09:55:07 -0400 (EDT) From: Stefan Monnier Message-ID: References: <87lgntfhky.fsf@drachen> <87r2xldw4s.fsf@users.sourceforge.net> <874luhf9zw.fsf@drachen> <87o9spdusk.fsf@users.sourceforge.net> <87zic9dtti.fsf@drachen> <87inixdru5.fsf@users.sourceforge.net> <87h8yhdqvq.fsf@drachen> Date: Wed, 19 Jul 2017 09:55:07 -0400 In-Reply-To: <87h8yhdqvq.fsf@drachen> (Michael Heerdegen's message of "Thu, 13 Jul 2017 04:15:05 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.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.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.3 (/) > Ok, this is the part I was clearly missing, thanks. I'll have a look if > the documentation tells something like this (it should be spelled out > somewhere). FWIW, http://clhs.lisp.se/Body/s_progv.htm gives the following example: (let ((*x* 3)) (progv '(*x*) '(4) (list *x* (symbol-value '*x*)))) => (3 4) -- Stefan