From unknown Tue Sep 23 14:57:18 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#66756 <66756@debbugs.gnu.org> To: bug#66756 <66756@debbugs.gnu.org> Subject: Status: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Reply-To: bug#66756 <66756@debbugs.gnu.org> Date: Tue, 23 Sep 2025 21:57:18 +0000 retitle 66756 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introdu= ction manual reassign 66756 emacs submitter 66756 Jim Porter severity 66756 normal tag 66756 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 26 01:55:11 2023 Received: (at submit) by debbugs.gnu.org; 26 Oct 2023 05:55:11 +0000 Received: from localhost ([127.0.0.1]:60446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qvtKo-0004My-IC for submit@debbugs.gnu.org; Thu, 26 Oct 2023 01:55:11 -0400 Received: from lists.gnu.org ([2001:470:142::17]:43392) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qvtKj-0004MM-U4 for submit@debbugs.gnu.org; Thu, 26 Oct 2023 01:55:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qvtK9-0005wW-PX for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2023 01:54:29 -0400 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qvtK7-0002JQ-Tg for bug-gnu-emacs@gnu.org; Thu, 26 Oct 2023 01:54:29 -0400 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-5b7f3f470a9so459095a12.0 for ; Wed, 25 Oct 2023 22:54:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698299666; x=1698904466; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=rShmVFDR4DyVRveSrlS+FubbrYm9XYCHRw8xO8Ja6cQ=; b=TBRxaJ2XRLCcT9UgIK8o3zM9z1JS0UbkXgLMYoky2x82CTrc+n7iUZKzehT3r2YI6o fAc3lRg/7KJeO1bI7A8aRV52taaa36RJ7XTkk2ctBjIY+xBAx6g7oRrcktl4qTdDDj8h +c4ejEco0aws0/FB1B8bWX61rTqXaXxSbOshHNMo7Qw2Fnru2BCGOm16+ufbiLoLgGqW NXY9ClS8k21rvEIpecDf8I8gPxMvS0dx+otW3upf5Qnmrv+JejqsoehIp2la2CanV+oo 56Am3fwsbkxUKFZ+JCGiZU6bgesET1kQOWypkiagQUFFwERbib6CkF9rCIOuKwJNyuU0 Lv6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698299666; x=1698904466; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rShmVFDR4DyVRveSrlS+FubbrYm9XYCHRw8xO8Ja6cQ=; b=F1YAkhXpYIgagsPqN36weZ3Yu5hngETGcOezETqVwwR6q1Ob8ltofUJjNizMlDSENo 3HCdICH3ZvizxD5n3ppviVPFkc8rrL+2OzAoNz01g90u1koAMXEr4WDouQstu3O6pBKs sdCsfr0sDGY/CANHaELKO6X5pXv+pVucshWBIVmgYDzZuJW5y5upzLcEnI9WwLzyJsbN lkLMlL8arAEUiS2rCooiSHH2cVQLxzmOsvhJ073RZ9D09Kg9HOJH9H3TcTpDe8BtUvUb vrl/LYeBygXQPkblsgHRCJPc9Lopfe94SaoNGimzb7qohEY7zZe6JnLnvKjcN/Eddx4L NIKg== X-Gm-Message-State: AOJu0YzRfegh4IDDmF3UJHyD6KOR7wS8yl+4auQqZaAf+9jjm7djdufb iCsgJw0kjDdwn7KnHUsf9ObAFAYGDbQ= X-Google-Smtp-Source: AGHT+IEG8CrOkngQIMrxJ9x+pitzec8PXClocXjHqEt3+6VOMbl1fgn3/4QAZy+KxxqshO211xnSjA== X-Received: by 2002:a17:90a:19c2:b0:27f:fa81:8dd9 with SMTP id 2-20020a17090a19c200b0027ffa818dd9mr199371pjj.22.1698299666129; Wed, 25 Oct 2023 22:54:26 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id mv7-20020a17090b198700b002744cd7e687sm1017751pjb.1.2023.10.25.22.54.25 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Oct 2023 22:54:25 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------TSZQr00hDOQTeZcFlCrzSt2n" Message-ID: Date: Wed, 25 Oct 2023 22:54:25 -0700 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US To: bug-gnu-emacs@gnu.org From: Jim Porter Subject: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Received-SPF: pass client-ip=2607:f8b0:4864:20::535; envelope-from=jporterbugs@gmail.com; helo=mail-pg1-x535.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit 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 (/) This is a multi-part message in MIME format. --------------TSZQr00hDOQTeZcFlCrzSt2n Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit (Spun out from bug#66706. My previous message below.) On 10/25/2023 8:48 PM, Jim Porter wrote: > On 10/25/2023 6:19 PM, Jim Porter wrote: >> I'll start with a patch here then. I think this is also a prime spot >> to add an example or two that would actually show lexical binding in >> action (i.e. a sample where the code would do something different >> under dynamic binding). > > Here's a first attempt. I'm not sure I'm entirely happy with it (the > digression into setting 'lexical-binding' to 't' is a bit disruptive), > but hopefully it's an improvement. Of course, we can keep adjusting this > further as needed. --------------TSZQr00hDOQTeZcFlCrzSt2n Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2YmM5YmJiYjk4MTA1ZjcwMGJiOGQ1YjA0ZThkZTVlMjYxZWZhNzc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmVuYW1lIHRvLi4uCihXaHkgVXNlIGxldD8pOiAuLi4g dGhpcywgYW5kIHJld29yayB0aGUgZXhwbGFuYXRpb24gdG8gZGlzY3VzcwpsZXhpY2FsIGJp bmRpbmcgKGluY2x1ZGluZyBob3cgdG8gZW5hYmxlIGl0KS4KLS0tCiBkb2MvbGlzcGludHJv L2VtYWNzLWxpc3AtaW50cm8udGV4aSB8IDgxICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkgYi9k b2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aQppbmRleCBmY2U3NTgzZmU5MS4u ZWJiY2MwOGI5ZmYgMTAwNjQ0Ci0tLSBhL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRy by50ZXhpCisrKyBiL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCkBAIC0z NTg3LDM5ICszNTg3LDc0IEBAIGxldAogQGNvZGV7bGV0fSBzcGVjaWFsIGZvcm0gcHJldmVu dHMgdGhpcyBraW5kIG9mIGNvbmZ1c2lvbi4KIAogQG1lbnUKLSogUHJldmVudCBjb25mdXNp b246OgorKiBXaHkgVXNlIGxldD86OgogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CiBAZW5kIG1lbnUKIAogQGlmbm90dGV4Ci1Abm9kZSBQcmV2ZW50IGNvbmZ1c2lvbgot QHVubnVtYmVyZWRzdWJzZWMgQGNvZGV7bGV0fSBQcmV2ZW50cyBDb25mdXNpb24KK0Bub2Rl IFdoeSBVc2UgbGV0PworQHVubnVtYmVyZWRzdWJzZWMgV2h5IFVzZSBAY29kZXtsZXR9Pwog QGVuZCBpZm5vdHRleAogCiBAY2luZGV4IEBzYW1we2xvY2FsIHZhcmlhYmxlfSBkZWZpbmVk CiBAY2luZGV4IEBzYW1we3ZhcmlhYmxlLCBsb2NhbH0sIGRlZmluZWQKLVRoZSBAY29kZXts ZXR9IHNwZWNpYWwgZm9ybSBwcmV2ZW50cyBjb25mdXNpb24uICBAY29kZXtsZXR9IGNyZWF0 ZXMgYQotbmFtZSBmb3IgYSBAZGZue2xvY2FsIHZhcmlhYmxlfSB0aGF0IG92ZXJzaGFkb3dz IGFueSB1c2Ugb2YgdGhlIHNhbWUKLW5hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHBy ZXNzaW9uLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcKLXRoYXQgd2hlbmV2ZXIgeW91 ciBob3N0IHJlZmVycyB0byBgYHRoZSBob3VzZScnLCBoZSBtZWFucyBoaXMgaG91c2UsIG5v dAoteW91cnMuICAoU3ltYm9scyB1c2VkIGluIGFyZ3VtZW50IGxpc3RzIHdvcmsgdGhlIHNh bWUgd2F5LgotQHhyZWZ7ZGVmdW4sICwgVGhlIEBjb2Rle2RlZnVufSBNYWNyb30uKQotCi1M b2NhbCB2YXJpYWJsZXMgY3JlYXRlZCBieSBhIEBjb2Rle2xldH0gZXhwcmVzc2lvbiByZXRh aW4gdGhlaXIgdmFsdWUKLUBlbXBoe29ubHl9IHdpdGhpbiB0aGUgQGNvZGV7bGV0fSBleHBy ZXNzaW9uIGl0c2VsZiAoYW5kIHdpdGhpbgotZXhwcmVzc2lvbnMgY2FsbGVkIHdpdGhpbiB0 aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uKTsgdGhlIGxvY2FsCi12YXJpYWJsZXMgaGF2ZSBu byBlZmZlY3Qgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgotCi1Bbm90aGVy IHdheSB0byB0aGluayBhYm91dCBAY29kZXtsZXR9IGlzIHRoYXQgaXQgaXMgbGlrZSBhIEBj b2Rle3NldHF9Ci10aGF0IGlzIHRlbXBvcmFyeSBhbmQgbG9jYWwuICBUaGUgdmFsdWVzIHNl dCBieSBAY29kZXtsZXR9IGFyZQotYXV0b21hdGljYWxseSB1bmRvbmUgd2hlbiB0aGUgQGNv ZGV7bGV0fSBpcyBmaW5pc2hlZC4gIFRoZSBzZXR0aW5nCi1vbmx5IGFmZmVjdHMgZXhwcmVz c2lvbnMgdGhhdCBhcmUgaW5zaWRlIHRoZSBib3VuZHMgb2YgdGhlIEBjb2Rle2xldH0KLWV4 cHJlc3Npb24uICBJbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2Ugd291bGQgc2F5IHRo ZSBiaW5kaW5nIG9mCi1hIHN5bWJvbCBpcyB2aXNpYmxlIG9ubHkgaW4gZnVuY3Rpb25zIGNh bGxlZCBpbiB0aGUgQGNvZGV7bGV0fSBmb3JtOwotaW4gRW1hY3MgTGlzcCwgdGhlIGRlZmF1 bHQgc2NvcGluZyBpcyBkeW5hbWljLCBub3QgbGV4aWNhbC4gIChUaGUKLW5vbi1kZWZhdWx0 IGxleGljYWwgYmluZGluZyBpcyBub3QgZGlzY3Vzc2VkIGluIHRoaXMgbWFudWFsLikKK1Ro ZSBAY29kZXtsZXR9IHNwZWNpYWwgZm9ybSBwcm92aWRlcyBhIHdheSB0byBjb25maW5lIHlv dXIgdmFyaWFibGVzCit0byBhIHBhcnRpY3VsYXIgc2VjdGlvbiBvZiB5b3VyIGNvZGUgKGlu IGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCBhCitgYHNjb3BlJycpLiAgQGNvZGV7bGV0fSBj cmVhdGVzIGEgbmFtZSBmb3IgYSBAZGZue2xvY2FsIHZhcmlhYmxlfSB0aGF0CitvdmVyc2hh ZG93cyBhbnkgdXNlIG9mIHRoZSBzYW1lIG5hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBl eHByZXNzaW9uCisod2UgY2FsbCB0aGlzIGBgYmluZGluZycnIHRoZSB2YXJpYWJsZSkuICBU aGlzIHByZXZlbnRzIGFueSBhY2NpZGVudGFsCit1c2FnZSBvZiB0aGVzZSB2YXJpYWJsZXMg b3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLiAgVGhpcworaXMgbGlrZSB1 bmRlcnN0YW5kaW5nIHRoYXQgd2hlbmV2ZXIgeW91ciBob3N0IHJlZmVycyB0byBgYHRoZSBo b3VzZScnLAoraGUgbWVhbnMgaGlzIGhvdXNlLCBub3QgeW91cnMuICAoU3ltYm9scyB1c2Vk IGluIGFyZ3VtZW50IGxpc3RzIHdvcmsKK3RoZSBzYW1lIHdheS4gIEB4cmVme2RlZnVuLCAs IFRoZSBAY29kZXtkZWZ1bn0gTWFjcm99LikKKworQGNpbmRleCBsZXhpY2FsIGJpbmRpbmcK K0BjaW5kZXggYmluZGluZywgbGV4aWNhbAorQGNpbmRleCBkeW5hbWljIGJpbmRpbmcKK0Bj aW5kZXggYmluZGluZywgZHluYW1pYworQmVmb3JlIHdlIGJlZ2luIGRpc2N1c3NpbmcgQGNv ZGV7bGV0fSBpbiBkZXRhaWwsIHdlIG11c3QgZmlyc3QgbWVudGlvbgorYW4gaW1wb3J0YW50 IG5vdGUuICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBFbWFjcyBMaXNwIHVzZXMgYSBmb3Jt IG9mCit2YXJpYWJsZSBiaW5kaW5nIGNhbGxlZCBgYGR5bmFtaWMgYmluZGluZycnLiAgSG93 ZXZlciwgdGhpcyBtYW51YWwKK3dpbGwgZGlzY3VzcyB0aGUgcHJlZmVycmVkIGZvcm0gb2Yg YmluZGluZywgY2FsbGVkIGBgbGV4aWNhbCBiaW5kaW5nJycKKyhpZiB5b3UgaGF2ZSBwcm9n cmFtbWVkIGluIG90aGVyIGxhbmd1YWdlcyBiZWZvcmUsIHlvdSdyZSBsaWtlbHkKK2FscmVh ZHkgZmFtaWxpYXIgd2l0aCBob3cgbGV4aWNhbCBiaW5kaW5nIGJlaGF2ZXMpLiAgSW4gb3Jk ZXIgdG8gdXNlCitsZXhpY2FsIGJpbmRpbmcsIHlvdSBzaG91bGQgYWRkIHNvbWV0aGluZyBs aWtlIHRoaXMgdG8gdGhlIGZpcnN0IGxpbmUKK29mIHlvdXIgRW1hY3MgTGlzcCBmaWxlOgor CitAZXhhbXBsZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCitAZW5kIGV4YW1w bGUKKworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcywgQHB4cmVme1NlbGVjdGlu ZyBMaXNwIERpYWxlY3QsICwgLAorZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBN YW51YWx9LgorCitXaXRoIHRoYXQgb3V0IG9mIHRoZSB3YXksIHdlIGNhbiByZXR1cm4gdG8g ZGlzY3Vzc2luZyBAY29kZXtsZXR9LgorTG9jYWwgdmFyaWFibGVzIGNyZWF0ZWQgYnkgYSBA Y29kZXtsZXR9IGV4cHJlc3Npb24gaG9sZCB0aGVpciB2YWx1ZQorQGVtcGh7b25seX0gd2l0 aGluIHRoZSBib2R5IG9mIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRzZWxmOyB0aGUK K2xvY2FsIHZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIG9mIHRoZSBAY29kZXts ZXR9IGV4cHJlc3Npb24uCitUaGlzIG1lYW5zIHRoYXQgaW5zaWRlIHRoZSBAY29kZXtsZXR9 IGJvZHksIGNhbGxpbmcgQGNvZGV7c2V0cX0KK2ZvciBhIHZhcmlhYmxlIG5hbWVkIGJ5IHRo ZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gd2lsbCBzZXQgdGhlIHZhbHVlCitvZiB0aGUgQGVt cGh7bG9jYWx9IHZhcmlhYmxlIG9mIHRoYXQgbmFtZS4gIFRoaXMgYWxzbyBtZWFucyB0aGF0 CitvdXRzaWRlIG9mIHRoZSBAY29kZXtsZXR9IGJvZHksIGNhbGxpbmcgQGNvZGV7c2V0cX0g Zm9yIGEgdmFyaWFibGUKK25hbWVkIGJ5IHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gd2ls bCBAZW1waHtub3R9IGFmZmVjdCB0aGF0IGxvY2FsCit2YXJpYWJsZS4KKworRm9yIGV4YW1w bGUsIGlmIHlvdSBjYWxsIGEgZnVuY3Rpb24gaW5zaWRlIG9mIGEgQGNvZGV7bGV0fQorYm9k eSwgdGhhdCBmdW5jdGlvbidzIGJvZHkgd291bGQgYmUgdW5hYmxlIHRvIGBgc2VlJycgKG9y IG1vZGlmeSkgdGhlCit2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIGZyb20gdGhlIEBjb2Rl e2xldH0gZXhwcmVzc2lvbjoKKworQGV4YW1wbGUKKyhzZXRxIHggMSkKKworKGRlZnVuIGdl dHggKCkKKyAgeCkKKworKGxldCAoKHggMikpCisgIChnZXQteCkpCisgICAgIEByZXN1bHR7 fSAxCitAZW5kIGV4YW1wbGUKIAogQGNvZGV7bGV0fSBjYW4gY3JlYXRlIG1vcmUgdGhhbiBv bmUgdmFyaWFibGUgYXQgb25jZS4gIEFsc28sCiBAY29kZXtsZXR9IGdpdmVzIGVhY2ggdmFy aWFibGUgaXQgY3JlYXRlcyBhbiBpbml0aWFsIHZhbHVlLCBlaXRoZXIgYQotLSAKMi4yNS4x Cgo= --------------TSZQr00hDOQTeZcFlCrzSt2n-- From debbugs-submit-bounces@debbugs.gnu.org Thu Oct 26 14:31:29 2023 Received: (at 66756) by debbugs.gnu.org; 26 Oct 2023 18:31:29 +0000 Received: from localhost ([127.0.0.1]:34461 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qw58i-0007y1-M8 for submit@debbugs.gnu.org; Thu, 26 Oct 2023 14:31:29 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]:54433) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qw58g-0007xk-10 for 66756@debbugs.gnu.org; Thu, 26 Oct 2023 14:31:27 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-6b89ab5ddb7so1234893b3a.0 for <66756@debbugs.gnu.org>; Thu, 26 Oct 2023 11:30:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698345049; x=1698949849; darn=debbugs.gnu.org; h=in-reply-to:references:to:from:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=DEGQZAdeYkwo3wHH++p6M5GyIwbhJrt/4g4pAT2PTIo=; b=NGZxhOpzwSPI7OHEYFju100pMHRtlPowMiD8tIEAzKZQaFocEeBmIAkjh6HzjOyTFI 14j1J97fMDFnM9ecfTysnkmttBpmPqj1P/NF0NDm/c5uMCmO4R0iTep+wdacLI4HGUCR 1MF/hEe+JCnOMx0EEo8dXuANcgqQv/bNzsW1zzGWnG+z6d4gibJ3XdkYDCmHVK759MEY Motc/KbG9cbPKbfO3JsaHgKX00TXy3Bj3UR4Ks8BzaoHRC7BaNOO2jcbHHLD1LumOLMY xUfx/35vp/UWisqyul8wPfWzka04AXjOYx1nQUmEImpgAnrkIs9NeOsqkd5bjrbDocuj nDBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698345049; x=1698949849; h=in-reply-to:references:to:from:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=DEGQZAdeYkwo3wHH++p6M5GyIwbhJrt/4g4pAT2PTIo=; b=L4/V5U8qS4Q0LJbeOF1RJ5vqQ2ZiCbNZ285VRnrkqMDCzLQdw3No/mjh1ym4O3zWH6 zz/TeYPHWpp129jnbTGJ4K4Po4Y0yCnzx9wJNb7OZ8ZMkraWx65oYmeiZtXbpFy6c38J p4vbvBVIUPAmtC1KLzie0GxUEtFRvsRomSijjY1Ey2wBVGIDkhRY+Yhkfc3zb5H8rScR Jmxy/jk02/KixV5fOROM+V0MODQtPYv6Nc+1K1DwiKUKBMs77yKRMCT6yYfFzAzILNMf YVjlxg3hwyo47FDUHPi6Wm/0j8+NcQR5hB4QvgY3/Igr5HX0kBFcPZi5+VgN8dBVzaFc GmdQ== X-Gm-Message-State: AOJu0YxlYVK5NmGrFeeboekMF1t784Zz7Z4PzT2AgjpDqx129Iv1FHCj F8AdSx37Jv50rJOyCZmv2Y5O6jG8ZLo= X-Google-Smtp-Source: AGHT+IG8YsqSQ3Jm8xy0O5CrVh2ta8K28mT7orrSecAbMlyNNGxwN98Mg8ANmlkEWji2ySnjPEBy1g== X-Received: by 2002:a05:6a00:2e27:b0:6bd:b3b9:649f with SMTP id fc39-20020a056a002e2700b006bdb3b9649fmr387968pfb.7.1698345048694; Thu, 26 Oct 2023 11:30:48 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s187-20020a625ec4000000b0068ff267f094sm11980235pfb.158.2023.10.26.11.30.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Oct 2023 11:30:48 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------pLS8SgkCX4BkOUlIXEdkfVyJ" Message-ID: Date: Thu, 26 Oct 2023 11:30:46 -0700 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US From: Jim Porter To: 66756@debbugs.gnu.org, eliz@gnu.org References: In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66756 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: -1.0 (-) This is a multi-part message in MIME format. --------------pLS8SgkCX4BkOUlIXEdkfVyJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/26/2023 12:09 AM, Eli Zaretskii wrote: > Thanks. > > The challenge in updating the Lisp Introduction manual is to try to > keep its informal and reader-friendly style as much as possible. It > is not just another ELisp Reference manual! So please try to keep > that in mind when you write the text, and in particular try not to > modify the existing text that is still accurate -- it was written by a > master, and each word there counts, even if it looks at first sight as > not important. Ok, here's a second attempt. I've tried to avoid changing anything that I don't think is truly necessary. I did alter a bit of the original wording to emphasize that under lexical binding, 'let' isn't about time, but about place. For example, that's why I changed this: > This is like understanding that whenever your host refers to ``the house'', he means his house, not yours. to this: > This is like understanding that in your host's home, whenever he refers to ``the house'', he means his house, not yours. My previous concern about the "lexical binding" digression still applies though. However, I'm not sure how to get around that at present; if we want to talk about lexical binding in the manual, we need to get users to enable it, so I think it's unavoidable that we at least mention it. I tried to introduce the jargon as gently as I could (by first introducing the term "binding" on its own before mentioning "lexical/dynamic binding"), but it's still a bit intimidating. On the positive side, when lexical binding is the default, we could remove that entire digression. There's also an argument that the example I added is in the wrong spot, since we haven't actually introduced the 'let' syntax yet. However, I personally find the example to be pretty useful since it shows off one of the key differences between lexical and dynamic binding, and helps show one of the boundaries of the 'let' form's scope. I myself tend to learn best by seeing examples of that sort. Fixing the order so we introduce the syntax first would require more extensive changes to this section... --------------pLS8SgkCX4BkOUlIXEdkfVyJ Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMjg0N2UwZDU5YjJkZTM3OTFlZmEwOTBhZGRjMDE2OWU3MTNlNmQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcKKGluY2x1ZGluZyBob3cg dG8gZW5hYmxlIGl0KS4KLS0tCiBkb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4 aSB8IDY3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NTEgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xp c3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkgYi9kb2MvbGlzcGludHJvL2VtYWNzLWxp c3AtaW50cm8udGV4aQppbmRleCBmY2U3NTgzZmU5MS4uZTgwNTgzM2Y5NzkgMTAwNjQ0Ci0t LSBhL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCisrKyBiL2RvYy9saXNw aW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCkBAIC0zNjAyLDI0ICszNjAyLDU5IEBAIFBy ZXZlbnQgY29uZnVzaW9uCiBAY2luZGV4IEBzYW1we3ZhcmlhYmxlLCBsb2NhbH0sIGRlZmlu ZWQKIFRoZSBAY29kZXtsZXR9IHNwZWNpYWwgZm9ybSBwcmV2ZW50cyBjb25mdXNpb24uICBA Y29kZXtsZXR9IGNyZWF0ZXMgYQogbmFtZSBmb3IgYSBAZGZue2xvY2FsIHZhcmlhYmxlfSB0 aGF0IG92ZXJzaGFkb3dzIGFueSB1c2Ugb2YgdGhlIHNhbWUKLW5hbWUgb3V0c2lkZSB0aGUg QGNvZGV7bGV0fSBleHByZXNzaW9uLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcKLXRo YXQgd2hlbmV2ZXIgeW91ciBob3N0IHJlZmVycyB0byBgYHRoZSBob3VzZScnLCBoZSBtZWFu cyBoaXMgaG91c2UsIG5vdAoteW91cnMuICAoU3ltYm9scyB1c2VkIGluIGFyZ3VtZW50IGxp c3RzIHdvcmsgdGhlIHNhbWUgd2F5LgorbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4 cHJlc3Npb24gKGluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZQorY2FsbCB0aGlzIGBg YmluZGluZycnIHRoZSB2YXJpYWJsZSkuICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZyB0 aGF0CitpbiB5b3VyIGhvc3QncyBob21lLCB3aGVuZXZlciBoZSByZWZlcnMgdG8gYGB0aGUg aG91c2UnJywgaGUgbWVhbnMgaGlzCitob3VzZSwgbm90IHlvdXJzLiAgKFN5bWJvbHMgdXNl ZCBpbiBhcmd1bWVudCBsaXN0cyB3b3JrIHRoZSBzYW1lIHdheS4KIEB4cmVme2RlZnVuLCAs IFRoZSBAY29kZXtkZWZ1bn0gTWFjcm99LikKIAotTG9jYWwgdmFyaWFibGVzIGNyZWF0ZWQg YnkgYSBAY29kZXtsZXR9IGV4cHJlc3Npb24gcmV0YWluIHRoZWlyIHZhbHVlCi1AZW1waHtv bmx5fSB3aXRoaW4gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbiBpdHNlbGYgKGFuZCB3aXRo aW4KLWV4cHJlc3Npb25zIGNhbGxlZCB3aXRoaW4gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lv bik7IHRoZSBsb2NhbAotdmFyaWFibGVzIGhhdmUgbm8gZWZmZWN0IG91dHNpZGUgdGhlIEBj b2Rle2xldH0gZXhwcmVzc2lvbi4KLQotQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNv ZGV7bGV0fSBpcyB0aGF0IGl0IGlzIGxpa2UgYSBAY29kZXtzZXRxfQotdGhhdCBpcyB0ZW1w b3JhcnkgYW5kIGxvY2FsLiAgVGhlIHZhbHVlcyBzZXQgYnkgQGNvZGV7bGV0fSBhcmUKLWF1 dG9tYXRpY2FsbHkgdW5kb25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMgZmluaXNoZWQuICBU aGUgc2V0dGluZwotb25seSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lkZSB0 aGUgYm91bmRzIG9mIHRoZSBAY29kZXtsZXR9Ci1leHByZXNzaW9uLiAgSW4gY29tcHV0ZXIg c2NpZW5jZSBqYXJnb24sIHdlIHdvdWxkIHNheSB0aGUgYmluZGluZyBvZgotYSBzeW1ib2wg aXMgdmlzaWJsZSBvbmx5IGluIGZ1bmN0aW9ucyBjYWxsZWQgaW4gdGhlIEBjb2Rle2xldH0g Zm9ybTsKLWluIEVtYWNzIExpc3AsIHRoZSBkZWZhdWx0IHNjb3BpbmcgaXMgZHluYW1pYywg bm90IGxleGljYWwuICAoVGhlCi1ub24tZGVmYXVsdCBsZXhpY2FsIGJpbmRpbmcgaXMgbm90 IGRpc2N1c3NlZCBpbiB0aGlzIG1hbnVhbC4pCitAY2luZGV4IGxleGljYWwgYmluZGluZwor QGNpbmRleCBiaW5kaW5nLCBsZXhpY2FsCitAY2luZGV4IGR5bmFtaWMgYmluZGluZworQGNp bmRleCBiaW5kaW5nLCBkeW5hbWljCitCZWZvcmUgd2UgYmVnaW4gZGlzY3Vzc2luZyBAY29k ZXtsZXR9IGluIGRldGFpbCwgd2UgbXVzdCBmaXJzdCBtZW50aW9uCithbiBpbXBvcnRhbnQg bm90ZS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIEVtYWNzIExpc3AgdXNlcyBhIGZvcm0g b2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBgZHluYW1pYyBiaW5kaW5nJycuICBIb3dl dmVyLCB0aGlzIG1hbnVhbAord2lsbCBkaXNjdXNzIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiBi aW5kaW5nLCBjYWxsZWQgYGBsZXhpY2FsIGJpbmRpbmcnJworKGlmIHlvdSBoYXZlIHByb2dy YW1tZWQgaW4gb3RoZXIgbGFuZ3VhZ2VzIGJlZm9yZSwgeW91J3JlIGxpa2VseQorYWxyZWFk eSBmYW1pbGlhciB3aXRoIGhvdyBsZXhpY2FsIGJpbmRpbmcgYmVoYXZlcykuICBJbiBvcmRl ciB0byB1c2UKK2xleGljYWwgYmluZGluZywgeW91IHNob3VsZCBhZGQgc29tZXRoaW5nIGxp a2UgdGhpcyB0byB0aGUgZmlyc3QgbGluZQorb2YgeW91ciBFbWFjcyBMaXNwIGZpbGU6CisK K0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KK0BlbmQgZXhhbXBs ZQorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhyZWZ7U2VsZWN0aW5n IExpc3AgRGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1h bnVhbH0uCisKK1dpdGggdGhhdCBvdXQgb2YgdGhlIHdheSwgd2UgY2FuIGdldCBiYWNrIHRv IGRpc2N1c3NpbmcgQGNvZGV7bGV0fS4KK0Fub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj b2Rle2xldH0gaXMgdGhhdCBpdCBkZWZpbmVzIGEgcGxhY2UgaW4KK3lvdXIgY29kZSB3aGVy ZSB0aGUgdmFyaWFibGVzIHlvdSBuYW1lZCBoYXZlIHRoZWlyIG93biBsb2NhbCBtZWFuaW5n LgorT3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCB0aGV5IGhhdmUgYW5vdGhlciBt ZWFuaW5nIChvciB0aGV5IG1heQorbm90IGJlIGRlZmluZWQgYXQgYWxsKS4KKworVGhpcyBt ZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3Nl dHF9Citmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9u IHdpbGwgc2V0IHRoZSB2YWx1ZQorb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0 aGF0IG5hbWUuICBUaGlzIGFsc28gbWVhbnMgdGhhdAorb3V0c2lkZSBvZiB0aGUgQGNvZGV7 bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9IGZvciBhIHZhcmlhYmxlCituYW1lZCBi eSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fSBhZmZlY3QgdGhh dCBsb2NhbAordmFyaWFibGUuCisKK0ZvciBleGFtcGxlLCBpZiB5b3UgY2FsbCBhIGZ1bmN0 aW9uIGluc2lkZSBvZiBhIEBjb2Rle2xldH0KK2JvZHksIHRoYXQgZnVuY3Rpb24ncyBib2R5 IHdvdWxkIGJlIHVuYWJsZSB0byBgYHNlZScnIChvciBtb2RpZnkpIHRoZQordmFsdWUgb2Yg YSBsb2NhbCB2YXJpYWJsZSBmcm9tIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb246CisKK0Bl eGFtcGxlCisoc2V0cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4 IDIpKQorICAoZ2V0LXgpKQorICAgICBAcmVzdWx0e30gMQorQGVuZCBleGFtcGxlCiAKIEBj b2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBB bHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5p dGlhbCB2YWx1ZSwgZWl0aGVyIGEKLS0gCjIuMjUuMQoK --------------pLS8SgkCX4BkOUlIXEdkfVyJ-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 12:39:00 2023 Received: (at 66756) by debbugs.gnu.org; 29 Oct 2023 16:39:00 +0000 Received: from localhost ([127.0.0.1]:43235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx8oW-0007pS-0A for submit@debbugs.gnu.org; Sun, 29 Oct 2023 12:39:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41030) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx8oS-0007p6-S5 for 66756@debbugs.gnu.org; Sun, 29 Oct 2023 12:38:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qx8nq-0004OB-Q6; Sun, 29 Oct 2023 12:38:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=3o4GuYfPpxcQNIFAHn4D1eVAnkodg7AsZfnwhyDammM=; b=Tafljwats09F 5uj3Xa5QwQ2Mp1jwa1rCw7WDYlp5V3kSo95ic/fyj0i529/vC+2TcyUqj8hquUlhJkd7QhCI6TP8X FJP6UawpK6KNtH5kRqUKRY2Xk/FOTl9qKbQfxgAv7I/p+6UO88WpbsJd7EQIXvKuoWi+65gJAlFTs hL6zTOfg/1iUJiQhNXPDINlUUPC9KrCtFbS9jvmKEdbnuYUy7cDnklJQuIMp1N/MGcjYh+ovIXZa5 MzfO+Lds7PelVfyUYXnEyWlpgyGtxY+Xkl2qYBUuH+cviy3T0DTz6f2Mr24CNbzE5TSvREN1AbFds 5+tPxdZgW7XhcHy0ZrYhOA==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qx8nq-0007DY-HV; Sun, 29 Oct 2023 12:38:18 -0400 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: (message from Jim Porter on Thu, 26 Oct 2023 11:30:46 -0700) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: Message-Id: Date: Sun, 29 Oct 2023 12:38:18 -0400 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > This is like understanding that in your host's home, whenever he refers to ``the house'', he means his house, not yours. That seems good enough to me. > My previous concern about the "lexical binding" digression still applies > though. However, I'm not sure how to get around that at present; if we > want to talk about lexical binding in the manual, we need to get users > to enable it, so I think it's unavoidable that we at least mention it. I think that the lexical/dynamic scope distinction is sufficiently important that this manual should explain it, whether or not hiding it is simply impossible. However, tehre are lots of simple Lisp functions for which lexical vs dynamic maks no diffeence. For example, (defun square (x) (* x x)) So perhaps it is possible for the first few sections to use examples which work the same in lexical mode and dynamic mode, THEN show an example for which it does make a difference as a way to explain the two modes. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 13:19:15 2023 Received: (at 66756) by debbugs.gnu.org; 29 Oct 2023 17:19:15 +0000 Received: from localhost ([127.0.0.1]:43288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx9RS-0000ZI-Ou for submit@debbugs.gnu.org; Sun, 29 Oct 2023 13:19:15 -0400 Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:50424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qx9RO-0000Z8-Ov for 66756@debbugs.gnu.org; Sun, 29 Oct 2023 13:19:13 -0400 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 39T69wa0007497; Sun, 29 Oct 2023 17:18:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=af7sUUeG4x0gILOsTvQ6uJxdcIWR9EMp3ERBzfL+5/I=; b=fc1Ca9EXCl0xdlpjquEadlFnE9BrtwYatTJk5/aTZ5zIkZzdbVHu3cEMBYdnq9AFID8F ZtEc9G3lp+yMif6LpFPtC7lQZSFXc1gy3w3+IEIbSCid7Zeh1rzL/Rhn+T1gHaECeSOL ZnABgjB2I5KDBNKScb7+ont+MtacxkV2BHYtbx2nM7oadlMRhwZ9Q+SpxY505oYuEy95 PNXPhdjVoleun25Gv7kKQekxbXHTLRf9Y7jpte0ej+h3QkW+2Abj8q4BvsPvLQWfZvv8 0KCpstJXW4jfHzWPAxBsdJOByoy5wK3bDR+nwbMtUSuQAL5I+830VeHx98XKJM5cfvm2 Tw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3u0tuu9ct0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 29 Oct 2023 17:18:36 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 39TH86Xg030690; Sun, 29 Oct 2023 17:18:35 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3u0rr9nbvs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 29 Oct 2023 17:18:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bhLo196RL85b20clI9m+CZmLqkqMUsbXfcL2zBuB8cC+d+PZe4mmSLK7VLxNqC2dIg9xsWtAMaRUSe9sCQBVNas3BgJA/cqsXt5wWsdyu53wGj7h4vRChtjlzFZFO39Mcz9A9fWtrapIF1F3a7fjaksOY21u+7lm/tgVpQjQLgAkinxpY4t8EeSNfTU6ZjxiGHFoY5GriPyDTKt2CBbOyaOHIYHCL7EeRCgOpy/7djPQaAPbLFh807YKc87hz3RHplyYLwopR3NBq/B/s2DhEDNtFcNQAkRnJyMP5nd6csbJrO4qSKSz2kMJw7AnkfUw6hORIU5KfN4oCvsDZmcuZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=af7sUUeG4x0gILOsTvQ6uJxdcIWR9EMp3ERBzfL+5/I=; b=FrsRTuTVD3WCBr/KXPW9vUpDJ2h6vzfGc54ReYIQuijslcKRm0o/M9HTBxOqHwaO+A0ZCVFAxYTnvAil/ecawb2nOpZImjcKEiJxHivexbMQUJvvacWzRnXh4OBdtO46L+dlAMNy7z+3d46Mj6hlNPmZ/3D+be3gvzc9IfG7Fx1Xx6DgD1ynPnkoghsF6Vt1b431Pi7DwExwsZ3PPCo0fjxJa4/TbSHlrYQKUaGoSmgqGs4plZtd8CQ21VEwDuHHF8emeop4daHh/5fdqVvYc7PHjo6GmvegIjy9sCYR5t/4iFQxg944lp8wHAEQAft7N1i4h5X4N3J1CXHp08yRtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=af7sUUeG4x0gILOsTvQ6uJxdcIWR9EMp3ERBzfL+5/I=; b=aKJ/kjrXCq0S8zz6V2TJ0j+Q8qfc4ZAOwD3OEfHxjZWwQdC0wKWJovbOc4VLpd+HuYXKXqEJYT9PBb1EHNqdUxGZZq66gOmfHGJ5ETZ1RDWcXE9mOvbUxjMLmSLbD3Iu2AaTs6kawg7teVpsWkfIHeTSCr9YQn80Nq4lBuPRHm0= Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19) by DM3PR10MB7969.namprd10.prod.outlook.com (2603:10b6:0:45::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.33; Sun, 29 Oct 2023 17:18:32 +0000 Received: from SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::9e11:9d8c:b7f4:f45b]) by SJ0PR10MB5488.namprd10.prod.outlook.com ([fe80::9e11:9d8c:b7f4:f45b%6]) with mapi id 15.20.6907.032; Sun, 29 Oct 2023 17:18:32 +0000 From: Drew Adams To: "rms@gnu.org" , Jim Porter Subject: RE: [External] : bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Thread-Topic: [External] : bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Thread-Index: AQHaCoZlqolk2br6BEGeAg2k0lgaybBhAqCQ Date: Sun, 29 Oct 2023 17:18:31 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|DM3PR10MB7969:EE_ x-ms-office365-filtering-correlation-id: f3dc1b6d-f11e-48b2-fc4c-08dbd8a3136f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8nMYxzlKzXMtzvJcEzZviR5xGyMjxujNyk2P2M+pZI9YUetApZLdsGkiw77FourXkbUDpPR23wbHe7l3kZKVRu0ZpaV1H8qSX4LfDMju9ZZjODRD6ATuJ37A1ZCh85V5g2AXrZr19pMJh9qYqvAuiRAinMwvp+FbY3mwJ0eG0iDS0NyYtr2bJ5dZsGgY/PFoIJUsKVE/Da6G23jbjPIaPvZTAndoHwkn/FQdshd3v8OYfnm8Mi9pbs7+gZ3YhBmV5+EiTDP2uqKbL4tZ/yb4axn+H9bjX77JjiRbXoZlnLdAuT3dvSvZKlu5JNLiVNJ7mqX76oUlK2YSrCSmqmxKsyoZ8c8jNUz7MUG/vK+BnQSq+P5/1rl75G4Sx2p6qowDejraQHbI/kqoQFRfKGg7MOCuK1uDfBGbkzdsnkhSvDWiipz36jyat1s5cjNVD9sBs9oAHuINHWn+MqQmfaBkI8V0ylo6X88I3WsY1hySfa3n2GWPPyMdUB4589zuGywO2m4GxN357yU5eKtTxGGBoqXhqr2wzMDy8j/x2+m5S8+F0P9NaUb+Wo+Gh4fgUqLv+OoqyYGzdds8f2a4tu+WIie5oHclRAr1zFypCr798UfR5PC/0V1KXi4T/2Zxbqv3 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(346002)(136003)(376002)(39860400002)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799009)(55016003)(4744005)(38100700002)(41300700001)(86362001)(44832011)(2906002)(6506007)(54906003)(110136005)(64756008)(66476007)(122000001)(66556008)(316002)(478600001)(71200400001)(66446008)(7696005)(9686003)(76116006)(33656002)(52536014)(5660300002)(4326008)(8676002)(66946007)(8936002)(38070700009)(26005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M0RrK3U4dUg4d3A0YnBlMzZ0YmNzM2VlQkhkNHdwemVWZWdvTjZHaHQ1d3Fs?= =?utf-8?B?ZzBxVnFwNjRrQUxOV3JSSFQxQnFKQytkNUExTGN4dzlTVG9VSTNVbnFaU0hU?= =?utf-8?B?VndrKzh5M01sWUxHNkN2dkNRK2V5RTd5aGYybC9MTmpxUlJOVElETGJ1ZElw?= =?utf-8?B?c2Y0ejM0aElIYUxWRXNpRnFGemluaEtCSGg4UDVmdlZpMjZGTEhQbVBBL1JC?= =?utf-8?B?cVdVODZZVFpNLytjY1FDM0w5SXBpcHdXUmJrSjdCcUZrcWxHOVd2SmlobFBx?= =?utf-8?B?U2NJZXpOdzg5WkFGRGM1NmYyWE1OYnZrMlZuMUsrTUM1Z2VKMUNtd1ZES0o0?= =?utf-8?B?d2xhQ0ZuUGV5amtEZXFaWXZ0bmJ2Tzh6MlVwTi9wR3dLTGczUkZQQUxqcVpy?= =?utf-8?B?ajNqK0tCWTJuVlEwL3VqYXhOeDNsMWRIRWdNWHF6OUZyQU1uWTBYamFoc1Jw?= =?utf-8?B?d1lWZlZHaGtaM0VwSmpZSzdxZVdSTHlQYW1meWRzR0JvaHhkM0I1TmdvMmN4?= =?utf-8?B?b0g2aWFid200czNSSjdFcU9ZZDZnUEV6NEtiZXJyRTl4RHNKWklHZ1g0d204?= =?utf-8?B?MjNvcTJ3eXJoaTVaZm9kRHVZSXNTSkw2VDlKNE1OMmR5UjAwd05vOENwVm9W?= =?utf-8?B?UmFJUU16S1hXTkUvUmVzWjdid2pKMjhGVTZOcTVQSkxjYW9McXlIWm1PTTMr?= =?utf-8?B?K3pmSFE3cUd4b0RkaEZ1cXNqeVhWeVMyeDdFYWtWRklTUVROYmxEYUl1OERs?= =?utf-8?B?MXpBaERRRUVxcmNrdWgvaU1pWHFmQ2Y5bHRHcUN1bFhHOGJXTllPWm94NzBM?= =?utf-8?B?MExvY1huQmVSYy9nd2Uzb2daMkVpcVErTlhZRDFIRmkzVjR5eG9PQzI1VHpP?= =?utf-8?B?OHRJdENaa2dsQ1RZdDlaOEFvVkcrd1BCK05UcmJEbUZUVWgvRll4UVRrNWp4?= =?utf-8?B?UEU3ZXdWalZkblZQWlBHRmFFS2dkcGd3YXlUR1RmRmVmWTMyWmkrcUhWNkNY?= =?utf-8?B?VXNpeUxmSVNCOS9DdWtLNEl6cHc1K3MzOVJYWjJJNWR6Q1RRd0ZYakwxMURU?= =?utf-8?B?anFDK1ovbTFnd1d3M1A3dFk3SVYzMTVYczBVSjJMVDFiU1lNQTEremdFby9H?= =?utf-8?B?cVZpYW15MmhvSEgrVkRnUzdUUGVZMnlQcU9WYkQ1UFpPRUw2VmhvQTgyVmg5?= =?utf-8?B?RjhPRUNJakFSem1EUnNUS2gvTWFzT1ppY2pOQzg5OTczalg3NlBmV2Vrdmd3?= =?utf-8?B?aExNOHk4WHludEVsUmVhc3FNcURhVnVsazk2cC9pNEpza1V1S2xLRXB2U01i?= =?utf-8?B?K3RNTnh2ZHAwTHhVQVdpZmY2NXh5d0F0cXlNd3dBZVhJTURxdkwrR1VRTWFq?= =?utf-8?B?MkJ2Kzk1QU80TmxaVnFOMWRWemNsL1J6eVpNZkV1VVdyV3RSYzc0TGdDcTVE?= =?utf-8?B?VENYMjNQVUh4ZTAvTjkrMkcwV3BuUE5MYU5RMy9yeGxrZU5Ia2FaMnV6K3JK?= =?utf-8?B?b2N2SG1VUTg2ZUp3em5oRTRDVXZKdUJKZVlQdlRCQU1LL2ZYRFVQdDFTdzVX?= =?utf-8?B?M3pkOWthR2FuYytRRDU4T1dyVzM4emhNRE4rZ3Rtb01pUFB5MkVtUklDMFNY?= =?utf-8?B?RGR6S1VmbXZqaHBuY0g0aG04RUk0SndoRUtKbklXZWNWbk9RanJ3ZFpSQXJa?= =?utf-8?B?WVBVL1F1SzR3TzhtZFFZbWFTbGtOLzRoRXBNeWxGZnZrZTNyK3VnRFlYeDFQ?= =?utf-8?B?K0gvaHR1M0NnR2EwUiswM0piQU9CTzZyY1NXRmNsd0l4clpvckxWTVdNNlA0?= =?utf-8?B?SDJJdnpJNTRha0ozVklGM3pvcnVWcmttWldDY3lFS0RodjQvVTQ4S05oUWlq?= =?utf-8?B?VEY4OEowNDg4ZEdSN2twaDA4a1V3T3RKZTU5eDRCRkhURGhwZm5qVHFFazhI?= =?utf-8?B?cFhXeUY1VG5RM0Rtc0U2RHR2L2c5UDBHSmV0djlqRTR5SEVqTEtlK1dsWlhG?= =?utf-8?B?UGZMd3ptSmI0bWIxQzluSHRPVSsyalgxaUJhQUlrSkwrVlM2RHIvRGxxRTNN?= =?utf-8?B?SksrUUxwb1dXQndOSndIQTFUS3VtNndXeS9QUDNjVlNDeDZpd1Y0YXQ2NHJP?= =?utf-8?Q?ge3AfUwbnJgshkwUOMDF7Ty9G?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8xfg9Z42KnYy3J4qv8/0Cf2xW7zHgL9r6yLMVpX9dZSvXejL9xYvstVdAOpmmXq1ukqE/3GB7woDIxYoDMsr+mMVQ2x9yI51Rj5tStKShNL5rIKitG67MU9Qt0xz9zdlN0//oh/v+YCCLXUy/UyXb9vYuEeCrCdRcwYaQ0hic/fIMN5C/e9uYp1lPgNWTG5rXLYKOOvdbvtDiB0b8w2tyXHd/Iq68zJHZPuMFVymA5J9zgQBHKWv6sPnijxpDi0dG0onleJ2v3pupWKtf6miAVGq1XVhAAgk3czFSy095S2k6G6mA+ud+h/JSCpNY6h31f/sIuGh6AbgeGiuLkEY6eP043L1BajvkzbOreGLum3wX9rAxAMcrbr19YiMR8JV00rWfg8wdFHnqaNwWA0A5eDB6wnw/TZuI1myZbnyQJM5KcasYv1XsbpXvJxk97yVk21JorYfgw6dKJ9c78wrDi8+RNs/gbj2OscxS1iOyzQO0/2WjOWcxdBwmKiQ723gME6LaRYfZphXBmbgZFzfyGuBLOEZ1Pnx04aEpO7I9RkRcfdEimlvZcelSnpTre/j4oEFRzHVbHcqFimgeyYaRv283kiEeyLxIIQEgaGTE9/03RJeXMWKPIyJ+d7gM2QOfkVuZufyRRqt+iYM/CCiZ8Suq3dERi90fp1vtTTpDS0Ipu5tsuM7ePaZ85+FnXt4kR46AdBlvhAYLn/3TPN0BMqtRcolh5vtFPQVWcb5jp7kMY5NybwIzI+F99Ju1yKytxdxMkBftdXffvRLFhQ65sE1dJCWUGrWLRlsQlvLwKdT2r570+XFdfpB8I211FhD X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3dc1b6d-f11e-48b2-fc4c-08dbd8a3136f X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Oct 2023 17:18:31.9842 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: c8qB8djx5xP/n3c7df9sb1/dKAdRYgRW3KYnHolnCSYhOT7c4rO+zBwlgXZdBnX29nLmf385/ARfAbiQVumKIA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR10MB7969 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-29_06,2023-10-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 spamscore=0 phishscore=0 mlxlogscore=656 adultscore=0 mlxscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2310240000 definitions=main-2310290149 X-Proofpoint-GUID: 5U2Ao0IeQZPW4RgAmMRuUGe-Sw8Safbk X-Proofpoint-ORIG-GUID: 5U2Ao0IeQZPW4RgAmMRuUGe-Sw8Safbk X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 66756 Cc: "eliz@gnu.org" , "66756@debbugs.gnu.org" <66756@debbugs.gnu.org> 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: -1.7 (-) PiBJIHRoaW5rIHRoYXQgdGhlIGxleGljYWwvZHluYW1pYyBzY29wZSBkaXN0aW5jdGlvbiBpcyBz dWZmaWNpZW50bHkNCj4gaW1wb3J0YW50IHRoYXQgdGhpcyBtYW51YWwgc2hvdWxkIGV4cGxhaW4g aXQsIHdoZXRoZXIgb3Igbm90IGhpZGluZyBpdA0KPiBpcyBzaW1wbHkgaW1wb3NzaWJsZS4NCj4g DQo+IEhvd2V2ZXIsIHRlaHJlIGFyZSBsb3RzIG9mIHNpbXBsZSBMaXNwIGZ1bmN0aW9ucyBmb3Ig d2hpY2ggbGV4aWNhbA0KPiB2cyBkeW5hbWljIG1ha3Mgbm8gZGlmZmVlbmNlLiAgRm9yIGV4YW1w bGUsIChkZWZ1biBzcXVhcmUgKHgpICgqIHggeCkpDQo+IA0KPiBTbyBwZXJoYXBzIGl0IGlzIHBv c3NpYmxlIGZvciB0aGUgZmlyc3QgZmV3IHNlY3Rpb25zIHRvIHVzZSBleGFtcGxlcw0KPiB3aGlj aCB3b3JrIHRoZSBzYW1lIGluIGxleGljYWwgbW9kZSBhbmQgZHluYW1pYyBtb2RlLCBUSEVOIHNo b3cgYW4NCj4gZXhhbXBsZSBmb3Igd2hpY2ggaXQgZG9lcyBtYWtlIGEgZGlmZmVyZW5jZSBhcyBh IHdheSB0byBleHBsYWluIHRoZQ0KPiB0d28gbW9kZXMuDQoNCisxLg0KDQo= From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 04:28:42 2023 Received: (at 66756) by debbugs.gnu.org; 4 Nov 2023 08:28:42 +0000 Received: from localhost ([127.0.0.1]:60489 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzC1J-0007dA-O1 for submit@debbugs.gnu.org; Sat, 04 Nov 2023 04:28:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzC1I-0007cv-3I for 66756@debbugs.gnu.org; Sat, 04 Nov 2023 04:28:40 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qzC0c-0004hs-NO; Sat, 04 Nov 2023 04:27:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=PQIuBbTL7taVCJPMSHY6sljJE562Q9HEcQ4vn2MU6OA=; b=RbxIMFdg3b0B qNp8DqnUQpeFfykiOy5CyNVDEQ8ty63JvnEbDximA0KldyxJzmTVe8rC1tk0aRlxqh3JpgfSutGFL ZxCLEh2Xdyi5MjMep/JUUFpqTo8llvQyAY8WloXf4VfapUQkcITWVdJX4pGemuHnNipcyTyYcyEWl SSkP9qXbe53IaC93TD3LqNB13t8TfqrtklnvqMUTcs3XwOGeIAHhTQNyKiYFAvXD8+ZPU7VvVOFWk 76Exg9LkmfgGA8d/aMzdP5LsXh31/cDwbFf4PR8f+73Epdse2suUvvPo/F+MVU44DWNF2qliL1oFG qVBQtdavPgn2RTfH/6d7Mg==; Date: Sat, 04 Nov 2023 10:27:51 +0200 Message-Id: <83fs1l6hyw.fsf@gnu.org> From: Eli Zaretskii To: Richard Stallman In-Reply-To: (message from Jim Porter on Thu, 26 Oct 2023 11:30:46 -0700) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: Jim Porter , 66756@debbugs.gnu.org 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.3 (---) > Date: Thu, 26 Oct 2023 11:30:46 -0700 > From: Jim Porter > > On 10/26/2023 12:09 AM, Eli Zaretskii wrote: > > Thanks. > > > > The challenge in updating the Lisp Introduction manual is to try to > > keep its informal and reader-friendly style as much as possible. It > > is not just another ELisp Reference manual! So please try to keep > > that in mind when you write the text, and in particular try not to > > modify the existing text that is still accurate -- it was written by a > > master, and each word there counts, even if it looks at first sight as > > not important. > > Ok, here's a second attempt. I've tried to avoid changing anything that > I don't think is truly necessary. I did alter a bit of the original > wording to emphasize that under lexical binding, 'let' isn't about time, > but about place. For example, that's why I changed this: > > > This is like understanding that whenever your host refers to ``the house'', he means his house, not yours. > > to this: > > > This is like understanding that in your host's home, whenever he refers to ``the house'', he means his house, not yours. > > My previous concern about the "lexical binding" digression still applies > though. However, I'm not sure how to get around that at present; if we > want to talk about lexical binding in the manual, we need to get users > to enable it, so I think it's unavoidable that we at least mention it. I > tried to introduce the jargon as gently as I could (by first introducing > the term "binding" on its own before mentioning "lexical/dynamic > binding"), but it's still a bit intimidating. On the positive side, when > lexical binding is the default, we could remove that entire digression. > > There's also an argument that the example I added is in the wrong spot, > since we haven't actually introduced the 'let' syntax yet. However, I > personally find the example to be pretty useful since it shows off one > of the key differences between lexical and dynamic binding, and helps > show one of the boundaries of the 'let' form's scope. I myself tend to > learn best by seeing examples of that sort. Fixing the order so we > introduce the syntax first would require more extensive changes to this > section... Richard, could you please review these changes? > From 12847e0d59b2de3791efa090addc0169e713e6d1 Mon Sep 17 00:00:00 2001 > From: Jim Porter > Date: Wed, 25 Oct 2023 20:43:57 -0700 > Subject: [PATCH] Introduce 'let' using lexical binding in the Lisp > Introduction > > * doc/lispintro/emacs-lisp-intro.texi (Prevent confusion): Rework the > explanation to discuss how things work under lexical binding > (including how to enable it). > --- > doc/lispintro/emacs-lisp-intro.texi | 67 ++++++++++++++++++++++------- > 1 file changed, 51 insertions(+), 16 deletions(-) > > diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi > index fce7583fe91..e805833f979 100644 > --- a/doc/lispintro/emacs-lisp-intro.texi > +++ b/doc/lispintro/emacs-lisp-intro.texi > @@ -3602,24 +3602,59 @@ Prevent confusion > @cindex @samp{variable, local}, defined > The @code{let} special form prevents confusion. @code{let} creates a > name for a @dfn{local variable} that overshadows any use of the same > -name outside the @code{let} expression. This is like understanding > -that whenever your host refers to ``the house'', he means his house, not > -yours. (Symbols used in argument lists work the same way. > +name outside the @code{let} expression (in computer science jargon, we > +call this ``binding'' the variable). This is like understanding that > +in your host's home, whenever he refers to ``the house'', he means his > +house, not yours. (Symbols used in argument lists work the same way. > @xref{defun, , The @code{defun} Macro}.) > > -Local variables created by a @code{let} expression retain their value > -@emph{only} within the @code{let} expression itself (and within > -expressions called within the @code{let} expression); the local > -variables have no effect outside the @code{let} expression. > - > -Another way to think about @code{let} is that it is like a @code{setq} > -that is temporary and local. The values set by @code{let} are > -automatically undone when the @code{let} is finished. The setting > -only affects expressions that are inside the bounds of the @code{let} > -expression. In computer science jargon, we would say the binding of > -a symbol is visible only in functions called in the @code{let} form; > -in Emacs Lisp, the default scoping is dynamic, not lexical. (The > -non-default lexical binding is not discussed in this manual.) > +@cindex lexical binding > +@cindex binding, lexical > +@cindex dynamic binding > +@cindex binding, dynamic > +Before we begin discussing @code{let} in detail, we must first mention > +an important note. For historical reasons, Emacs Lisp uses a form of > +variable binding called ``dynamic binding''. However, this manual > +will discuss the preferred form of binding, called ``lexical binding'' > +(if you have programmed in other languages before, you're likely > +already familiar with how lexical binding behaves). In order to use > +lexical binding, you should add something like this to the first line > +of your Emacs Lisp file: > + > +@example > +;;; -*- lexical-binding: t -*- > +@end example > + > +For more information about this, @pxref{Selecting Lisp Dialect, , , > +elisp, The Emacs Lisp Reference Manual}. > + > +With that out of the way, we can get back to discussing @code{let}. > +Another way to think about @code{let} is that it defines a place in > +your code where the variables you named have their own local meaning. > +Outside of the @code{let} body, they have another meaning (or they may > +not be defined at all). > + > +This means that inside the @code{let} body, calling @code{setq} > +for a variable named by the @code{let} expression will set the value > +of the @emph{local} variable of that name. This also means that > +outside of the @code{let} body, calling @code{setq} for a variable > +named by the @code{let} expression will @emph{not} affect that local > +variable. > + > +For example, if you call a function inside of a @code{let} > +body, that function's body would be unable to ``see'' (or modify) the > +value of a local variable from the @code{let} expression: > + > +@example > +(setq x 1) > + > +(defun getx () > + x) > + > +(let ((x 2)) > + (get-x)) > + @result{} 1 > +@end example > > @code{let} can create more than one variable at once. Also, > @code{let} gives each variable it creates an initial value, either a > -- > 2.25.1 > From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 04 12:45:32 2023 Received: (at 66756) by debbugs.gnu.org; 4 Nov 2023 16:45:32 +0000 Received: from localhost ([127.0.0.1]:35669 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzJm7-000830-W7 for submit@debbugs.gnu.org; Sat, 04 Nov 2023 12:45:32 -0400 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]:47483) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzJm6-00082l-0T for 66756@debbugs.gnu.org; Sat, 04 Nov 2023 12:45:30 -0400 Received: by mail-pl1-x630.google.com with SMTP id d9443c01a7336-1c434c33ec0so22996955ad.3 for <66756@debbugs.gnu.org>; Sat, 04 Nov 2023 09:44:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1699116288; x=1699721088; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=u+2sdyUuGVSFZtjAlrohp8yA5Iay/zWlfuUEb/9GSBk=; b=aHQL03UTIijyCRaVejsCnEXHsMDW9PhIwpX+8PJHN0CnEkHbVbJWFUBvOSmZAQbVSP BacbI1yDGQiCpowGyzS51s66M0/KPTL3cuoy9z1LzmugrdhDuzp2ABsZtL70cy7xFsED loKcusyRfajkdowr1/gbRU2nF0I8f0VVOHTlkSbMMGivTm9se1sAh31iVVrq42youp7y SkGOFEa+SeLXZA9O6B8pIzONzoi+Nl0Af4L0ebfz6wZ3JzkEX1EqDepvtlbzIq8dHX4F DQmgcOL6ccMl1XSFE7KLumxdE3ySGM0oPnbHI7+wB2DWgAwetaZRdH4Vq/1YY3LB5KO9 qORA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699116288; x=1699721088; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=u+2sdyUuGVSFZtjAlrohp8yA5Iay/zWlfuUEb/9GSBk=; b=ApFmTpySkhmP5n7wdAaCsK3FJm3gGEnmv6wXMLJGGsaoHHxW2iXmluzi9WwWSZ580t oPwM+IoRpnUWaMDNy7+ZJOU0xDwWr0IQCox2hApHy4vKIdUQOXg0lTBqtvgIxD3fd6Qd z2IQidsSi8PeyJpfSwZmepFYatQ+6ge9enBFYPbsMcmdGds2Rl15AbI4xo+anaCsJPcI FLlZatS5cOdCbHqr5FZzOT5kv4MOCARX0AeYYZCaF90RCHwuVHfjF3kjC7T3Y8iqMEGf SA8TYs+gKWQJxSJ6OQNeRyi/d3r4KIUWY6DecRsJf2wmrHYP3WyIEtS7y+1eaFRrpq3C v2fw== X-Gm-Message-State: AOJu0YzxX22ajqke95NieWqqU8Ns+FoOYePJ/3RTMWWlfT7LwJC/qzB7 yevDLKSbi8iRl+COPRFqw7o= X-Google-Smtp-Source: AGHT+IFpV05QtYAkSsbPfIi5mP6l5wxK+VFlX/xP/NCC6kZ8FP3Ai4W5agHdJFUdQv52ZNmNhLjj7g== X-Received: by 2002:a17:903:22ca:b0:1c7:8446:d65c with SMTP id y10-20020a17090322ca00b001c78446d65cmr24369614plg.43.1699116287634; Sat, 04 Nov 2023 09:44:47 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id b8-20020a170903228800b001bf5e24b2a8sm3179274plh.174.2023.11.04.09.44.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 04 Nov 2023 09:44:47 -0700 (PDT) Message-ID: Date: Sat, 4 Nov 2023 09:44:48 -0700 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: Eli Zaretskii , Richard Stallman References: <83fs1l6hyw.fsf@gnu.org> From: Jim Porter In-Reply-To: <83fs1l6hyw.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: 66756@debbugs.gnu.org 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: -1.0 (-) On 11/4/2023 1:27 AM, Eli Zaretskii wrote: > Richard, could you please review these changes? I see that there are already some good suggestions for how to improve my patch, so I'll try to work on that this weekend. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 05 21:30:14 2023 Received: (at 66756) by debbugs.gnu.org; 6 Nov 2023 02:30:15 +0000 Received: from localhost ([127.0.0.1]:38468 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzpNW-0006FR-G1 for submit@debbugs.gnu.org; Sun, 05 Nov 2023 21:30:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43840) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzpNU-0006F7-Lh for 66756@debbugs.gnu.org; Sun, 05 Nov 2023 21:30:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qzpMo-0007lL-3x; Sun, 05 Nov 2023 21:29:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=58Zi5U+KcoqOtzT3/iLnWCJ9kilXVHppT5YkMs3oAsk=; b=Wy/Yw5JE4D0J Bu9qAIfsAGtcsSMDtWbeSV6jVHM9N7FNqGuNL3sH3Uc5l8ZZVRpPXNWZ01oYt+kHrSXad2qeMEIfw taJJk1nN1/BNFiw+ZIZgO40eYZp9gNTsfu/pEQQgS+JvYEVsuNRLeH9VZuduZvuo69L+r96lLfkKz kcRFJ7HcRe7o075vuqN42jFuehqgRR2vwDzAB9MtfxHKi0zHj6I5JKDz90GqXPGdEkvYGjGloA2gl 0zG0rkIV7zn6Y0+JObro+zZh2zDzgI81YVicLa5cdwYGkZaFNrurvBONfzVptLEpz1FSivBET2yhz 0gI8Z3AbXZNP2hvGqi1k2Q==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qzpMn-00023S-L9; Sun, 05 Nov 2023 21:29:29 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: (message from Jim Porter on Wed, 25 Oct 2023 22:54:25 -0700) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: Message-Id: Date: Sun, 05 Nov 2023 21:29:29 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] This change is overall a step forward. Thanks for working on it. A few specific parts of the new text could use a little cleaning up; some of those parts are in the current version also. +``scope''). @code{let} creates a name for a @dfn{local variable} that +overshadows any use of the same name outside the @code{let} expression +(we call this ``binding'' the variable). The word "overshadows" seems stramge here. The usual term is "shadows", and I don't see that "overshadows" adds any clarity. > For historical reasons, Emacs Lisp uses a form of > +variable binding called ``dynamic binding''. This should say "by default", because it isn't always so. For instance, if you specify lexical binding, then Emacs Lisp does not use dynamic binding, except for variables marked special. > +lexical binding, you should add something like this to the first line Delete "something like". -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 05 21:30:15 2023 Received: (at 66756) by debbugs.gnu.org; 6 Nov 2023 02:30:15 +0000 Received: from localhost ([127.0.0.1]:38470 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzpNW-0006FT-SB for submit@debbugs.gnu.org; Sun, 05 Nov 2023 21:30:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43846) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qzpNV-0006F8-8V for 66756@debbugs.gnu.org; Sun, 05 Nov 2023 21:30:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qzpMo-0007lS-Si; Sun, 05 Nov 2023 21:29:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=QGmjkkHOijNZoYFM3F16Qowkk2bO45U0D797pXddglY=; b=qwdwDsJwfNCg 7bRgnfCSbZb0oApuoQ9IVTb6wnEUQrIJUn5/fbNhIAC/IroQHne3L4nIKegCnu0ttFT9o/T4APM/U iPtS2FjKQirhbTcOrg9AEUd9an1aZ1KVn0KcRZ/ZCfmbmXrs4fZMjqCyusdO4DMtmvoE57dZSj5Ub RNHJ2ynzuOypxvdNmxPSFBrzb/65b16q5tptV/YFrvzTpdTHijJl4k57x14LnzZBUf1BW2TC7/+2B 1x+3s3Iy/wVFH4Y7TewK2c46N2sILNWAHrv8eFc06LG2/SGXMQM8E6fAt67BZfX30CcCjno7pEgfx cZdk70YjF3xi/pKTXfw7nw==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1qzpMo-0002Ai-Ao; Sun, 05 Nov 2023 21:29:30 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: (message from Jim Porter on Wed, 25 Oct 2023 22:54:25 -0700) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: Message-Id: Date: Sun, 05 Nov 2023 21:29:30 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > +The @code{let} special form provides a way to confine your variables > +to a particular section of your code (in computer science jargon, a > +``scope''). @code{let} creates a name for a @dfn{local variable} that > +overshadows any use of the same name outside the @code{let} expression > +(we call this ``binding'' the variable). This prevents any accidental > +usage of these variables outside of the @code{let} expression. This is one of several reasons to use `let'. Others are * To compute a value once and use it more than once. * To create a loop index variable. * For special variables, to bind them si as to control the behavior of other code. Should all of them be mentioned in this node? I am not sure; that is a pedagogical question. But this node shouldn't assert that one reason is the only reason. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 17 21:09:34 2023 Received: (at 66756) by debbugs.gnu.org; 18 Nov 2023 02:09:34 +0000 Received: from localhost ([127.0.0.1]:47357 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4Am5-0004aW-L7 for submit@debbugs.gnu.org; Fri, 17 Nov 2023 21:09:34 -0500 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:45229) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4Am0-0004aF-OX for 66756@debbugs.gnu.org; Fri, 17 Nov 2023 21:09:32 -0500 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-280165bba25so2051919a91.2 for <66756@debbugs.gnu.org>; Fri, 17 Nov 2023 18:09:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700273362; x=1700878162; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=+e6TBqxAZ9QtGaZOIhe6g9/4ebXG46sXCkGwUelZtlk=; b=AgsxcYImy8cFNtqy9i5yiZt112WjZNEHAbpNkti+D42s/VuVK7+5POOPFD+t9LJJgV FR/+AHPD012umZmNWzlPelNp+WMiysPYozSajYpHDXGyzGrR5URKyooP+5a4FqAiMheM w8pdr8EpppUncsobssuNjjD7YbV66iio9qJcBUETl4EG+RBKwdZ50T77Q8Xtr+VkazR9 EHMxRn9nQ5zUR/ong2LtbMYt3sSJN1jGDpFsOnZIfFOEsAvQwAEnUOpz9+MNwF/8Sv8X o5DdIttYOpG3M1SrfJI/P4yPgC91Cc/o07b58qjD9I2agGj5BQv0j0Jr7CZrHOvgRn8o Ru7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700273362; x=1700878162; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=+e6TBqxAZ9QtGaZOIhe6g9/4ebXG46sXCkGwUelZtlk=; b=WxpV+KtBsSXpig4ccCXufVZRfR7QYBDbP7CXxaGJ7tPcqv7tppF3qSlgQ/WQvE7ZLn bkpR/ORFuI+OSuVNj8xmbgoAAHXax0ACZUqF0iLEuTwbPP0SNWtvpPX3+AI5pl9vhG0V x6pS/Kn35oz1H6oFXDQwvvj+tZv/AMXtNoKGdp6L3cwkXA8PuT8fs1HLOphogWuDiNi9 uFaDGj2WNk1Lz+MXK3eTVbf+II+SNdq0LMVuP4WAmG6mO/uEBdCdY9m15UqwIgWiM7F4 smOeLSvpCSGio2WWDlZ/2NmstU82w4OyowUV5gCMijZbYiIn48e8B+F+hCS/c2fkDWm+ kTCQ== X-Gm-Message-State: AOJu0YwZFM+gTvgkgt08a84rC/uupprMN41vzW9aNzupATBOYk6Cs3/F pilCyRMdJ1NC0v7dSdAXveY= X-Google-Smtp-Source: AGHT+IEb7p5+2b/+ynSQ7aORh88fSsTza0d6lgtDb/ArSQgpFTUr6YFxvnxUxU588H7cQz0AFdTlBA== X-Received: by 2002:a17:90a:142:b0:280:699:c5c with SMTP id z2-20020a17090a014200b0028006990c5cmr1401804pje.21.1700273362057; Fri, 17 Nov 2023 18:09:22 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id 23-20020a17090a19d700b002805740d668sm4214736pjj.4.2023.11.17.18.09.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 Nov 2023 18:09:21 -0800 (PST) Content-Type: multipart/mixed; boundary="------------c0q4k8B0P0JpPPo3JFZoCO0V" Message-ID: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> Date: Fri, 17 Nov 2023 18:09:20 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: rms@gnu.org References: From: Jim Porter In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------c0q4k8B0P0JpPPo3JFZoCO0V Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/29/2023 9:38 AM, Richard Stallman wrote: > So perhaps it is possible for the first few sections to use examples > which work the same in lexical mode and dynamic mode, THEN show an > example for which it does make a difference as a way to explain the > two modes. It took a bit longer for me to get back to this than I had hoped, but here's an updated patch. I've added a new subsection to the end that describes lexical vs dynamic binding, and tried to keep the "let Prevents Confusion" section as similar in spirit as I could to the original, while still updating the parts that change under lexical binding. --------------c0q4k8B0P0JpPPo3JFZoCO0V Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjOTcyYjBmYmY1MmViMzNlY2ViMmI2NTQ3YmU0MThlNmU2NGJjMWY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCkJ1ZyM2Njc1Ni4KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNw LWludHJvLnRleGkgKFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlv biB0byBkaXNjdXNzIGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihI b3cgbGV0IEJpbmRzIFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3 ZWVuIGxleGljYWwKYW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25m aWd1cmUgaXQpLgotLS0KIGRvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpIHwg OTUgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3OCBp bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGlu dHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBiL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1p bnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFhLi40ZmE3NDMzMjZlZiAxMDA2NDQKLS0tIGEv ZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkKQEAgLTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQ YXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAqIFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAq IFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxlczo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFi bGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAg UHJldmVudCBjb25mdXNpb24KIEBjaW5kZXggQHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmlu ZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rl e2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3Jl YXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRv d3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4 cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5 b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwg bm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUg c2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJp ZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBl eHByZXNzaW9uIChpbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBg YGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcg dGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwgd2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhl IGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVz ZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwg LCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVk IGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7 b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0 aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Np b24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBA Y29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj b2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVt cG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1h dXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAg VGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUg dGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVy IHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9s IGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9 IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMs IG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5v dCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJv dXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2Rl IHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5hbWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1l YW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29kZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90 aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citub3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhp cyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29k ZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz aW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBv ZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1lYW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNv ZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1l ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0 IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBjb2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRo YW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNo IHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3 NzksNiArMzc3Nyw2OSBAQCBVbmluaXRpYWxpemVkIGxldCBWYXJpYWJsZXMKIEBzYW1weyVz fS4pICBUaGUgZm91ciB2YXJpYWJsZXMgYXMgYSBncm91cCBhcmUgcHV0IGludG8gYSBsaXN0 IHRvCiBkZWxpbWl0IHRoZW0gZnJvbSB0aGUgYm9keSBvZiB0aGUgQGNvZGV7bGV0fS4KIAor QG5vZGUgSG93IGxldCBCaW5kcyBWYXJpYWJsZXMKK0BzdWJzZWN0aW9uIEhvdyBAY29kZXts ZXR9IEJpbmRzIFZhcmlhYmxlcworQGNpbmRleCBMZXhpY2FsIGJpbmRpbmcKK0BjaW5kZXgg QmluZGluZywgbGV4aWNhbAorQGNpbmRleCBEeW5hbWljIGJpbmRpbmcKK0BjaW5kZXggQmlu ZGluZywgZHluYW1pYworCitFbWFjcyBMaXNwIHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgd2F5 cyBvZiBiaW5kaW5nIHZhcmlhYmxlIG5hbWVzIHRvCit0aGVpciB2YWx1ZXMuICBUaGVzZSB3 YXlzIGFmZmVjdCB0aGUgcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlIGEKK3BhcnRpY3Vs YXIgYmluZGluZyBpcyB2YWxpZCAoaW4gY29tcHV0ZXIgc2NpZW5jZSBqYXJnb24sIHdlIGNh bGwgdGhlc2UKK3BhcnRzIGEgYGBzY29wZScnKS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMs IEVtYWNzIExpc3AgdXNlcyBhIGZvcm0gb2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBg ZHluYW1pYyBiaW5kaW5nJycgYnkgZGVmYXVsdC4gIEhvd2V2ZXIsIGluCit0aGlzIG1hbnVh bCwgd2UgZGlzY3VzcyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgYmluZGluZywgY2FsbGVkCitg YGxleGljYWwgYmluZGluZycnIChpZiB5b3UgaGF2ZSBwcm9ncmFtbWVkIGluIG90aGVyIGxh bmd1YWdlcyBiZWZvcmUsCit5b3UncmUgbGlrZWx5IGFscmVhZHkgZmFtaWxpYXIgd2l0aCBo b3cgbGV4aWNhbCBiaW5kaW5nIGJlaGF2ZXMpLiAgSW4KK29yZGVyIHRvIHVzZSBsZXhpY2Fs IGJpbmRpbmcgaW4gYSBwcm9ncmFtLCB5b3Ugc2hvdWxkIGFkZCB0aGlzIHRvIHRoZQorZmly c3QgbGluZSBvZiB5b3VyIEVtYWNzIExpc3AgZmlsZToKKworQGV4YW1wbGUKKzs7OyAtKi0g bGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorQGVuZCBleGFtcGxlCisKK0ZvciBtb3JlIGluZm9y bWF0aW9uIGFib3V0IHRoaXMsIEBweHJlZntTZWxlY3RpbmcgTGlzcCBEaWFsZWN0LCAsICwK K2VsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfS4KKworQXMgd2UgZGlz Y3Vzc2VkIGJlZm9yZSwgdW5kZXIgbGV4aWNhbCBiaW5kaW5nLCBAY29kZXtsZXR9IGRlZmlu ZXMgYQorQGVtcGh7cGxhY2V9IGluIHlvdXIgY29kZSB3aGVyZSB0aGUgdmFyaWFibGVzIGhh dmUgdGhlaXIgb3duIGxvY2FsCittZWFuaW5nLiAgVW5kZXIgZHluYW1pYyBiaW5kaW5nLCB0 aGUgcnVsZXMgYXJlIGRpZmZlcmVudDogaW5zdGVhZCwgeW91CithcmUgZGVmaW5pbmcgYSBA ZW1waHt0aW1lfSBpbiB5b3VyIGNvZGUgd2hlbiB0aGUgdmFyaWFibGVzIGhhdmUgdGhlaXIK K293biBsb2NhbCBtZWFuaW5nLgorCitBbm90aGVyIHdheSB0byB0aGluayBhYm91dCBAY29k ZXtsZXR9IHdoZW4gdXNpbmcgZHluYW1pYyBiaW5kaW5nIGlzCit0aGF0IGl0IGlzIGxpa2Ug YSBAY29kZXtzZXRxfSB0aGF0IGlzIHRlbXBvcmFyeSBhbmQgbG9jYWwuICBUaGUgdmFsdWVz CitzZXQgYnkgQGNvZGV7bGV0fSBhcmUgYXV0b21hdGljYWxseSB1bmRvbmUgd2hlbiB0aGUg QGNvZGV7bGV0fSBpcworZmluaXNoZWQuICBUaGUgc2V0dGluZyBvbmx5IGFmZmVjdHMgZXhw cmVzc2lvbnMgdGhhdCBhcmUgaW5zaWRlIHRoZQorYm91bmRzIG9mIHRoZSBAY29kZXtsZXR9 IGV4cHJlc3Npb24uCisKK0luIHNvbWUgY2FzZXMsIGJvdGggbGV4aWNhbCBhbmQgZHluYW1p YyBiaW5kaW5nIGJlaGF2ZSBpZGVudGljYWxseS4KK0hvd2V2ZXIsIGluIG90aGVyIGNhc2Vz LCB0aGV5IGNhbiBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgeW91ciBwcm9ncmFtLgorRm9yIGV4 YW1wbGUsIHVuZGVyIGxleGljYWwgYmluZGluZywgaWYgeW91IGNhbGwgYSBmdW5jdGlvbiBp bnNpZGUgb2YgYQorQGNvZGV7bGV0fSBib2R5LCB0aGF0IGZ1bmN0aW9uJ3MgYm9keSB3b3Vs ZCBiZSB1bmFibGUgdG8gYGBzZWUnJyAob3IKK21vZGlmeSkgdGhlIHZhbHVlIG9mIGEgbG9j YWwgdmFyaWFibGUgZnJvbSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uOgorCitAZXhhbXBs ZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisKKyhzZXRxIHggMSkKKworKGRl ZnVuIGdldHggKCkKKyAgeCkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJl c3VsdHt9IDEKK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0lmIHdlIGluc3RlYWQgY2hh bmdlIEBjb2Rle2xleGljYWwtYmluZGluZ30gdG8gaGF2ZSBhIHZhbHVlIG9mCitAY29kZXtu aWx9LCB3ZSB3aWxsIGdldCBhIGRpZmZlcmVudCByZXN1bHQgaGVyZS4gIE5vdywgdGhlIHJl c3VsdCBvZgorQHNhbXB7KGdldHgpfSBpcyBAc2FtcHsyfSEgIFRoYXQncyBiZWNhdXNlIHVu ZGVyIGR5bmFtaWMgYmluZGluZywgd2hlbgorQGNvZGV7Z2V0eH0gbG9va3MgZm9yIHRoZSB2 YWx1ZSBvZiBAY29kZXt4fSwgaXQgc2VlcyB0aGUgdmFsdWUgd2Ugc2V0CitpbiBvdXIgQGNv ZGV7bGV0fSBleHByZXNzaW9uLgorCiBAbm9kZSBpZgogQHNlY3Rpb24gVGhlIEBjb2Rle2lm fSBTcGVjaWFsIEZvcm0KIEBmaW5kZXggaWYKLS0gCjIuMjUuMQoK --------------c0q4k8B0P0JpPPo3JFZoCO0V-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 18 22:39:16 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 03:39:16 +0000 Received: from localhost ([127.0.0.1]:49709 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4YeS-0006Nv-96 for submit@debbugs.gnu.org; Sat, 18 Nov 2023 22:39:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:45906) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4YeP-0006Ng-Np for 66756@debbugs.gnu.org; Sat, 18 Nov 2023 22:39:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r4YeJ-00009g-4M; Sat, 18 Nov 2023 22:39:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=PuH/zNKQuONtt6o4IiolQrlIG2AsQSznZmnIALvR3Co=; b=oWiVr6lnUWkx raZLwbePaeJ4aSA4c+JxGj0sYuW5Lzd9SDIGwGikpNp3RDyLhNj2ihPBncMkOROCuM50MypS3CfsJ ExmmZG1whWkUKSD693UQFnf+5ZrK9YoKfJqYi+bab/DbyNWVcYLEwVLL3u2rJO8dtZSo7fjVO5EDx HlH165bslJlyqx3qEh8vh9DFi4hD7pg78l6yCJlRn6htCDpLk5o6/2BDNmY+RAjRMx3cCTaLXkWL8 Vt4hx6hO4DNEWNDT8NSbMl71oC0WUP1n020UVkSNrXyQQokOa1gPcllHaS2N0JfGcY+pTZ++vDbzy +hi2LLcQD3XInGp8fcc97A==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1r4YeF-0001fe-Ex; Sat, 18 Nov 2023 22:39:04 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> (message from Jim Porter on Fri, 17 Nov 2023 18:09:20 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> Message-Id: Date: Sat, 18 Nov 2023 22:39:03 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] I think your changes are good. > +parts a ``scope''). For historical reasons, Emacs Lisp uses a form of > +variable binding called ``dynamic binding'' by default. However, in > +this manual, we discuss the preferred form of binding, called > +``lexical binding'' (if you have programmed in other languages before, > +you're likely already familiar with how lexical binding behaves). In > +order to use lexical binding in a program, you should add this to the > +first line of your Emacs Lisp file: > + > +@example > +;;; -*- lexical-binding: t -*- > +@end example > + > +For more information about this, @pxref{Selecting Lisp Dialect, , , > +elisp, The Emacs Lisp Reference Manual}. Do we want to change the default some day to lexical binding:? If so, we should say so somewhere in this manual -- perhaps here, perhaps elsewhere, > +If we instead change @code{lexical-binding} to have a value of > +@code{nil}, we will get a different result here. "Get a different result" is vague -- it would be clearer if it said concretely what will happen. I suggest you show the dynamci situation in the same way you show the lexical situation. That will help people compare the two. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 19 00:25:57 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 05:25:57 +0000 Received: from localhost ([127.0.0.1]:49752 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4aJg-0000pe-RM for submit@debbugs.gnu.org; Sun, 19 Nov 2023 00:25:57 -0500 Received: from mail-oo1-xc2d.google.com ([2607:f8b0:4864:20::c2d]:57609) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4aJa-0000pJ-7V for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 00:25:55 -0500 Received: by mail-oo1-xc2d.google.com with SMTP id 006d021491bc7-58786e23d38so2100021eaf.3 for <66756@debbugs.gnu.org>; Sat, 18 Nov 2023 21:25:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700371543; x=1700976343; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=DJHwToCv8+OIkkeHFm5DIUnjG/WHnnYnaRsXwmURpjE=; b=WFeBiMtUDGughp/nSv+qkHXS1gAGSEgMG7dqBvW3cm6BPx2UTFbiAnsdrmYaa4dMt8 HwYabYcckMnTpSHn+KLlaB2LCa5rFinMViJR5WODjg9RCqizGJpkbH2lPfjIdKYNfZXt hiUx3mjhlwYCUYgxfmxB7aMw6vKJZdGemVp24l+CWRLfZf6jiVtSRO+F8xKyXC6MDiyd IzTL0FiWv93PthT9R+YPAQaHCpA4981ySxFc+b9KJ/BI3AGCIMGxiZ2ikQJYNFyIP9/N XvpuOUcW7DMTPaH65XQ+5MW1zF1rMtMtclpaJ2NDBH9cdP3RwpGy6BGUHd6pQPTkeQ83 U46g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700371543; x=1700976343; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=DJHwToCv8+OIkkeHFm5DIUnjG/WHnnYnaRsXwmURpjE=; b=ZlbhaRuS+08LMVwMtNkJvMpf+dDAGd8KwBhsjm68AtWLrW7aeZAS/C6FWNx5rgOmEL G14O2gaS8N96BAjO/1trztXisRuMfm0k4GfJ4TIphSXzJkuoV3HVxMISRj64IWil5efv aJnVSuHEUgWfQUI3DbRWFb55FK3uHTMMdkGMZ92n1ZSGnyRTZVl6GHseXk0EDkdl61Rk 7mlKu6rh0802tTqRA+xX79aYXsrA5il30K3GY7pWiYDGKGB2TWsqtUGpunkRq6ZBI+Av uq/eon30tiSF1ddSsXlTef6X+eNgdu97ATob43O4eaGkpOEWESKnVIfx5ZkMEk4PWfeH m4ww== X-Gm-Message-State: AOJu0Yw7lh4BWzcVisSml83VLvKcQS9QiFna4RAGdlwYGP3TK0Ngm6EP OYpJrj0Gh9ZTD6LueOta328= X-Google-Smtp-Source: AGHT+IEHUEXPFbyqQXbvQ+YFObbwCR0F0MGh67A70C7qDih21MCTOKnM88tkac3up8p+on6l+FnBFg== X-Received: by 2002:a05:6358:709:b0:168:e7ab:6877 with SMTP id e9-20020a056358070900b00168e7ab6877mr4540099rwj.6.1700371543049; Sat, 18 Nov 2023 21:25:43 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id p18-20020a63fe12000000b0058988954686sm3783753pgh.90.2023.11.18.21.25.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 18 Nov 2023 21:25:42 -0800 (PST) Content-Type: multipart/mixed; boundary="------------XQdsTGiwCBg1kuAdtZ080FQu" Message-ID: <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> Date: Sat, 18 Nov 2023 21:25:42 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> From: Jim Porter In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------XQdsTGiwCBg1kuAdtZ080FQu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/18/2023 7:39 PM, Richard Stallman wrote: > > +parts a ``scope''). For historical reasons, Emacs Lisp uses a form of > > +variable binding called ``dynamic binding'' by default. However, in > > +this manual, we discuss the preferred form of binding, called > > +``lexical binding'' (if you have programmed in other languages before, > > +you're likely already familiar with how lexical binding behaves). In > > +order to use lexical binding in a program, you should add this to the > > +first line of your Emacs Lisp file: > > + > > +@example > > +;;; -*- lexical-binding: t -*- > > +@end example > > + > > +For more information about this, @pxref{Selecting Lisp Dialect, , , > > +elisp, The Emacs Lisp Reference Manual}. > > Do we want to change the default some day to lexical binding:? If so, > we should say so somewhere in this manual -- perhaps here, perhaps > elsewhere, I believe that's the goal, yes. I've added a note that the maintainers eventually plan on making lexical binding the default. > > +If we instead change @code{lexical-binding} to have a value of > > +@code{nil}, we will get a different result here. > > "Get a different result" is vague -- it would be clearer if it said > concretely what will happen. > > I suggest you show the dynamci situation in the same way you show the lexical > situation. That will help people compare the two. Done. I've also expanded the prose explanation at the end in order to re-emphasize the differences between the two. --------------XQdsTGiwCBg1kuAdtZ080FQu Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmODA1ZWJmNjVkYzIxOGM3YWU2MzI1MWEzNTdhNGRlYWFmNDVkNzUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCkJ1ZyM2Njc1Ni4KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNw LWludHJvLnRleGkgKFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlv biB0byBkaXNjdXNzIGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihI b3cgbGV0IEJpbmRzIFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3 ZWVuIGxleGljYWwKYW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25m aWd1cmUgaXQpLgotLS0KIGRvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpIHwg MTE1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5OCBp bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGlu dHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBiL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1p bnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFhLi41NTRiYTRhNzU2MCAxMDA2NDQKLS0tIGEv ZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkKQEAgLTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQ YXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAqIFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAq IFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxlczo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFi bGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAg UHJldmVudCBjb25mdXNpb24KIEBjaW5kZXggQHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmlu ZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rl e2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3Jl YXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRv d3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4 cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5 b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwg bm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUg c2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJp ZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBl eHByZXNzaW9uIChpbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBg YGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcg dGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwgd2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhl IGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVz ZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwg LCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVk IGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7 b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0 aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Np b24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBA Y29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj b2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVt cG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1h dXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAg VGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUg dGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVy IHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9s IGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9 IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMs IG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5v dCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJv dXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2Rl IHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5hbWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1l YW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29kZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90 aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citub3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhp cyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29k ZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz aW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBv ZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1lYW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNv ZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1l ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0 IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBjb2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRo YW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNo IHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3 NzksNiArMzc3Nyw4OSBAQCBVbmluaXRpYWxpemVkIGxldCBWYXJpYWJsZXMKIEBzYW1weyVz fS4pICBUaGUgZm91ciB2YXJpYWJsZXMgYXMgYSBncm91cCBhcmUgcHV0IGludG8gYSBsaXN0 IHRvCiBkZWxpbWl0IHRoZW0gZnJvbSB0aGUgYm9keSBvZiB0aGUgQGNvZGV7bGV0fS4KIAor QG5vZGUgSG93IGxldCBCaW5kcyBWYXJpYWJsZXMKK0BzdWJzZWN0aW9uIEhvdyBAY29kZXts ZXR9IEJpbmRzIFZhcmlhYmxlcworQGNpbmRleCBMZXhpY2FsIGJpbmRpbmcKK0BjaW5kZXgg QmluZGluZywgbGV4aWNhbAorQGNpbmRleCBEeW5hbWljIGJpbmRpbmcKK0BjaW5kZXggQmlu ZGluZywgZHluYW1pYworCitFbWFjcyBMaXNwIHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgd2F5 cyBvZiBiaW5kaW5nIHZhcmlhYmxlIG5hbWVzIHRvCit0aGVpciB2YWx1ZXMuICBUaGVzZSB3 YXlzIGFmZmVjdCB0aGUgcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlIGEKK3BhcnRpY3Vs YXIgYmluZGluZyBpcyB2YWxpZCAoaW4gY29tcHV0ZXIgc2NpZW5jZSBqYXJnb24sIHdlIGNh bGwgdGhlc2UKK3BhcnRzIGEgYGBzY29wZScnKS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMs IEVtYWNzIExpc3AgdXNlcyBhIGZvcm0gb2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBg ZHluYW1pYyBiaW5kaW5nJycgYnkgZGVmYXVsdC4gIEhvd2V2ZXIsIGluCit0aGlzIG1hbnVh bCwgd2UgcHJpbWFyaWx5IGRpc2N1c3MgdGhlIHByZWZlcnJlZCBmb3JtIG9mIGJpbmRpbmcs CitjYWxsZWQgYGBsZXhpY2FsIGJpbmRpbmcnJyB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkIChp biB0aGUgZnV0dXJlLCB0aGUKK0VtYWNzIG1haW50YWluZXJzIHBsYW4gdG8gY2hhbmdlIHRo ZSBkZWZhdWx0IHRvIGxleGljYWwgYmluZGluZykuICBJZgoreW91IGhhdmUgcHJvZ3JhbW1l ZCBpbiBvdGhlciBsYW5ndWFnZXMgYmVmb3JlLCB5b3UncmUgbGlrZWx5IGFscmVhZHkKK2Zh bWlsaWFyIHdpdGggaG93IGxleGljYWwgYmluZGluZyBiZWhhdmVzLgorCitJbiBvcmRlciB0 byB1c2UgbGV4aWNhbCBiaW5kaW5nIGluIGEgcHJvZ3JhbSwgeW91IHNob3VsZCBhZGQgdGhp cyB0bwordGhlIGZpcnN0IGxpbmUgb2YgeW91ciBFbWFjcyBMaXNwIGZpbGU6CisKK0BleGFt cGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KK0BlbmQgZXhhbXBsZQorCitG b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhyZWZ7U2VsZWN0aW5nIExpc3Ag RGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3AgUmVmZXJlbmNlIE1hbnVhbH0u CisKK0FzIHdlIGRpc2N1c3NlZCBiZWZvcmUsIHVuZGVyIGxleGljYWwgYmluZGluZywgQGNv ZGV7bGV0fSBkZWZpbmVzIGEKK0BlbXBoe3BsYWNlfSBpbiB5b3VyIGNvZGUgd2hlcmUgdGhl IHZhcmlhYmxlcyBoYXZlIHRoZWlyIG93biBsb2NhbAorbWVhbmluZy4gIFVuZGVyIGR5bmFt aWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6IGluc3RlYWQsIHlvdQorYXJl IGRlZmluaW5nIGEgQGVtcGh7dGltZX0gaW4geW91ciBjb2RlIHdoZW4gdGhlIHZhcmlhYmxl cyBoYXZlIHRoZWlyCitvd24gbG9jYWwgbWVhbmluZy4KKworQW5vdGhlciB3YXkgdG8gdGhp bmsgYWJvdXQgQGNvZGV7bGV0fSB3aGVuIHVzaW5nIGR5bmFtaWMgYmluZGluZyBpcwordGhh dCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0gdGhhdCBpcyB0ZW1wb3JhcnkgYW5kIGxvY2Fs LiAgVGhlIHZhbHVlcworc2V0IGJ5IEBjb2Rle2xldH0gYXJlIGF1dG9tYXRpY2FsbHkgdW5k b25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMKK2ZpbmlzaGVkLiAgVGhlIHNldHRpbmcgb25s eSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lkZSB0aGUKK2JvdW5kcyBvZiB0 aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgorCitJbiBzb21lIGNhc2VzLCBib3RoIGxleGlj YWwgYW5kIGR5bmFtaWMgYmluZGluZyBiZWhhdmUgaWRlbnRpY2FsbHkuCitIb3dldmVyLCBp biBvdGhlciBjYXNlcywgdGhleSBjYW4gY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHlvdXIgcHJv Z3JhbS4KK0ZvciBleGFtcGxlLCB1bmRlciBsZXhpY2FsIGJpbmRpbmcsIGlmIHlvdSBjYWxs IGEgZnVuY3Rpb24gaW5zaWRlIG9mIGEKK0Bjb2Rle2xldH0gYm9keSwgdGhhdCBmdW5jdGlv bidzIGJvZHkgd291bGQgYmUgdW5hYmxlIHRvIGBgc2VlJycgKG9yCittb2RpZnkpIHRoZSB2 YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIGZyb20gdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lv bjoKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorCisoc2V0 cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4IDIpKQorICAoZ2V0 eCkpCisgICAgIEByZXN1bHR7fSAxCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitJZiB3 ZSB1c2UgZHluYW1pYyBiaW5kaW5nIGluc3RlYWQsIHRoZSBiZWhhdmlvciBpcyBkaWZmZXJl bnQ6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogbmlsIC0qLQorCiso c2V0cSB4IDEpCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhsZXQgKCh4IDIpKQorICAo Z2V0eCkpCisgICAgIEByZXN1bHR7fSAyCitAZW5kIGV4YW1wbGUKKworTm93LCB0aGUgcmVz dWx0IG9mIEBzYW1weyhnZXR4KX0gaXMgQHNhbXB7Mn0hICBUaGF0J3MgYmVjYXVzZSB1bmRl cgorZHluYW1pYyBiaW5kaW5nLCB3aGVuIEBjb2Rle2dldHh9IGxvb2tzIGZvciB0aGUgdmFs dWUgb2YgQGNvZGV7eH0sIGl0CitzZWVzIHRoZSB2YWx1ZSB3ZSBzZXQgaW4gb3VyIEBjb2Rl e2xldH0gZXhwcmVzc2lvbi4gIEluIG90aGVyIHdvcmRzLAordGhlIGNhbGwgdG8gQGNvZGV7 Z2V0eH0gaGFwcGVucyBkdXJpbmcgdGhlIEBlbXBoe3RpbWV9IHdoZW4gb3VyCitAY29kZXts ZXR9IGV4cHJlc3Npb24gaXMgYWN0aXZlLiAgVW5kZXIgbGV4aWNhbCBiaW5kaW5nLCBAY29k ZXtnZXR4fQorZG9lc24ndCBzZWUgdGhlIHZhbHVlIGZyb20gb3VyIEBjb2Rle2xldH0gZXhw cmVzc2lvbi4gIFRoYXQncyBiZWNhdXNlCitpdCBoYXBwZW5zIGluIGEgZGlmZmVyZW50IEBl bXBoe3BsYWNlfSB0aGFuIHRoZSBAY29kZXtsZXR9IGJvZHkuCisKIEBub2RlIGlmCiBAc2Vj dGlvbiBUaGUgQGNvZGV7aWZ9IFNwZWNpYWwgRm9ybQogQGZpbmRleCBpZgotLSAKMi4yNS4x Cgo= --------------XQdsTGiwCBg1kuAdtZ080FQu-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 19 00:30:25 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 05:30:25 +0000 Received: from localhost ([127.0.0.1]:49757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4aO0-0000yW-DG for submit@debbugs.gnu.org; Sun, 19 Nov 2023 00:30:25 -0500 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]:61775) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4aNv-0000yE-I5 for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 00:30:22 -0500 Received: by mail-oo1-xc33.google.com with SMTP id 006d021491bc7-5849fc56c62so2203215eaf.3 for <66756@debbugs.gnu.org>; Sat, 18 Nov 2023 21:30:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700371812; x=1700976612; darn=debbugs.gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=F47wi46MY3GHqFOKoyWSAI3I28LKqQu7Mk8RbHOiPbk=; b=KLUIdGO11Smy2YNZ8iNEfEy5/huHdmA3AljkBvfeceldwS7LCAhYb+WoVqU2NcQMiu UNCovsdfWefe/dT7p47rOCim5ks0CJuKEovqVS0x6/mYyJq0WMlb/k8pMt7vkmxCxuvl mFSBrJ+cZ2/PEf3wTxMl3Yszes4v9m/fqr/RZ62vQXpjgoh0RdhUme6M871z9wokdrdR oT67+JgGAgDV3iQ3X27KNVOvQYsyzxz+2atio0EoRAgf88nwokcf3uFfJLzHyxprt1hn 3COxVjsyPl2g+54kYcgOn0JODwbSze0Po+74RsyqtNy1LiLJlOJEP/vaU596y13NZSeR Tr6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700371812; x=1700976612; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=F47wi46MY3GHqFOKoyWSAI3I28LKqQu7Mk8RbHOiPbk=; b=whqINlDtZ4c6PNptyhjbdwBT1t0vOihfz/18PLgLhpWBwcjKw4QIe5d0jh2nv0IvTY BtzXrc2K7+RkjTxwwCWylnyczPmUyD7KNbX7mbJilSmyUsN4MsmPgnm8KhXBbdjo75hG O+3gnT+SbOoqLmyMBTlsCl1onEZQMjmIg4qS0J7zEttRt8jmB0CEL9WGBo9Z8Lge1xm5 a8nbKkYbe6daqgTcxMvKLeIYV+aYkG6v43XQVY/AdC+XWpZcqR1t57fl7WiZPTD4VEfF Qzn/VCG24ZwaMJNUT3on4BbKFF1XreM7N+qUGD6A/d9V4H3PPEcz0mFq+CXd5B0AzFvz /FkQ== X-Gm-Message-State: AOJu0YzTrzgSA87UIm4wbINFX2iqweeJGeZONTDAtcgNNkeOlPIivGoP PDBxfGfUjFUdJzKAzG5LLqtICORZC84= X-Google-Smtp-Source: AGHT+IFjUM3fx8roP9stpTXMN3VkqZNmTqgfvn5kEJlC4rk7DFWTZYJXjQ4jjRHSaSGBUhE2s2nXcw== X-Received: by 2002:a05:6870:2f05:b0:1ea:2c8b:e18e with SMTP id qj5-20020a0568702f0500b001ea2c8be18emr5180574oab.8.1700371812595; Sat, 18 Nov 2023 21:30:12 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id d14-20020a17090a564e00b002851466f471sm1215739pji.31.2023.11.18.21.30.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 18 Nov 2023 21:30:12 -0800 (PST) Content-Type: multipart/mixed; boundary="------------u39TyNpGDhlethcqzINtvb0H" Message-ID: Date: Sat, 18 Nov 2023 21:30:11 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US From: Jim Porter To: rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> In-Reply-To: <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------u39TyNpGDhlethcqzINtvb0H Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/18/2023 9:25 PM, Jim Porter wrote: > I believe that's the goal, yes. I've added a note that the maintainers > eventually plan on making lexical binding the default. Oops, I forgot to finish rewording one sentence in my previous patch. Here's the fixed version. --------------u39TyNpGDhlethcqzINtvb0H Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhMWVmZmU5NmRlNmM2ZWYxZWMyZDk3ZTY1Y2NiMzgzZGU4NzAyMmZkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCkJ1ZyM2Njc1Ni4KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNw LWludHJvLnRleGkgKFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlv biB0byBkaXNjdXNzIGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihI b3cgbGV0IEJpbmRzIFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3 ZWVuIGxleGljYWwKYW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25m aWd1cmUgaXQpLgotLS0KIGRvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpIHwg MTE1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5OCBp bnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGlu dHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBiL2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1p bnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFhLi41M2E1MWVkMDAxZCAxMDA2NDQKLS0tIGEv ZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkKQEAgLTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQ YXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAqIFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAq IFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxlczo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFi bGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAg UHJldmVudCBjb25mdXNpb24KIEBjaW5kZXggQHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmlu ZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rl e2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3Jl YXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRv d3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4 cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5 b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwg bm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUg c2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJp ZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25hbWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBl eHByZXNzaW9uIChpbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBg YGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcg dGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwgd2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhl IGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVz ZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwg LCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVk IGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7 b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0 aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Np b24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBA Y29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBj b2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVt cG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1h dXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAg VGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUg dGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVy IHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9s IGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9 IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMs IG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5v dCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJv dXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2Rl IHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5hbWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1l YW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29kZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90 aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citub3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhp cyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29k ZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz aW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2YgdGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBv ZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1lYW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNv ZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1l ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0 IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBjb2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRo YW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNo IHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3 NzksNiArMzc3Nyw4OSBAQCBVbmluaXRpYWxpemVkIGxldCBWYXJpYWJsZXMKIEBzYW1weyVz fS4pICBUaGUgZm91ciB2YXJpYWJsZXMgYXMgYSBncm91cCBhcmUgcHV0IGludG8gYSBsaXN0 IHRvCiBkZWxpbWl0IHRoZW0gZnJvbSB0aGUgYm9keSBvZiB0aGUgQGNvZGV7bGV0fS4KIAor QG5vZGUgSG93IGxldCBCaW5kcyBWYXJpYWJsZXMKK0BzdWJzZWN0aW9uIEhvdyBAY29kZXts ZXR9IEJpbmRzIFZhcmlhYmxlcworQGNpbmRleCBMZXhpY2FsIGJpbmRpbmcKK0BjaW5kZXgg QmluZGluZywgbGV4aWNhbAorQGNpbmRleCBEeW5hbWljIGJpbmRpbmcKK0BjaW5kZXggQmlu ZGluZywgZHluYW1pYworCitFbWFjcyBMaXNwIHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgd2F5 cyBvZiBiaW5kaW5nIHZhcmlhYmxlIG5hbWVzIHRvCit0aGVpciB2YWx1ZXMuICBUaGVzZSB3 YXlzIGFmZmVjdCB0aGUgcGFydHMgb2YgeW91ciBwcm9ncmFtIHdoZXJlIGEKK3BhcnRpY3Vs YXIgYmluZGluZyBpcyB2YWxpZCAoaW4gY29tcHV0ZXIgc2NpZW5jZSBqYXJnb24sIHdlIGNh bGwgdGhlc2UKK3BhcnRzIGEgYGBzY29wZScnKS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMs IEVtYWNzIExpc3AgdXNlcyBhIGZvcm0gb2YKK3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBg ZHluYW1pYyBiaW5kaW5nJycgYnkgZGVmYXVsdC4gIEhvd2V2ZXIsIGluCit0aGlzIG1hbnVh bCB3ZSBkaXNjdXNzIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiBiaW5kaW5nLCBjYWxsZWQgYGBs ZXhpY2FsCitiaW5kaW5nJycsIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQgKGluIHRoZSBmdXR1 cmUsIHRoZSBFbWFjcworbWFpbnRhaW5lcnMgcGxhbiB0byBjaGFuZ2UgdGhlIGRlZmF1bHQg dG8gbGV4aWNhbCBiaW5kaW5nKS4gIElmIHlvdQoraGF2ZSBwcm9ncmFtbWVkIGluIG90aGVy IGxhbmd1YWdlcyBiZWZvcmUsIHlvdSdyZSBsaWtlbHkgYWxyZWFkeQorZmFtaWxpYXIgd2l0 aCBob3cgbGV4aWNhbCBiaW5kaW5nIGJlaGF2ZXMuCisKK0luIG9yZGVyIHRvIHVzZSBsZXhp Y2FsIGJpbmRpbmcgaW4gYSBwcm9ncmFtLCB5b3Ugc2hvdWxkIGFkZCB0aGlzIHRvCit0aGUg Zmlyc3QgbGluZSBvZiB5b3VyIEVtYWNzIExpc3AgZmlsZToKKworQGV4YW1wbGUKKzs7OyAt Ki0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorQGVuZCBleGFtcGxlCisKK0ZvciBtb3JlIGlu Zm9ybWF0aW9uIGFib3V0IHRoaXMsIEBweHJlZntTZWxlY3RpbmcgTGlzcCBEaWFsZWN0LCAs ICwKK2VsaXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfS4KKworQXMgd2Ug ZGlzY3Vzc2VkIGJlZm9yZSwgdW5kZXIgbGV4aWNhbCBiaW5kaW5nLCBAY29kZXtsZXR9IGRl ZmluZXMgYQorQGVtcGh7cGxhY2V9IGluIHlvdXIgY29kZSB3aGVyZSB0aGUgdmFyaWFibGVz IGhhdmUgdGhlaXIgb3duIGxvY2FsCittZWFuaW5nLiAgVW5kZXIgZHluYW1pYyBiaW5kaW5n LCB0aGUgcnVsZXMgYXJlIGRpZmZlcmVudDogaW5zdGVhZCwgeW91CithcmUgZGVmaW5pbmcg YSBAZW1waHt0aW1lfSBpbiB5b3VyIGNvZGUgd2hlbiB0aGUgdmFyaWFibGVzIGhhdmUgdGhl aXIKK293biBsb2NhbCBtZWFuaW5nLgorCitBbm90aGVyIHdheSB0byB0aGluayBhYm91dCBA Y29kZXtsZXR9IHdoZW4gdXNpbmcgZHluYW1pYyBiaW5kaW5nIGlzCit0aGF0IGl0IGlzIGxp a2UgYSBAY29kZXtzZXRxfSB0aGF0IGlzIHRlbXBvcmFyeSBhbmQgbG9jYWwuICBUaGUgdmFs dWVzCitzZXQgYnkgQGNvZGV7bGV0fSBhcmUgYXV0b21hdGljYWxseSB1bmRvbmUgd2hlbiB0 aGUgQGNvZGV7bGV0fSBpcworZmluaXNoZWQuICBUaGUgc2V0dGluZyBvbmx5IGFmZmVjdHMg ZXhwcmVzc2lvbnMgdGhhdCBhcmUgaW5zaWRlIHRoZQorYm91bmRzIG9mIHRoZSBAY29kZXts ZXR9IGV4cHJlc3Npb24uCisKK0luIHNvbWUgY2FzZXMsIGJvdGggbGV4aWNhbCBhbmQgZHlu YW1pYyBiaW5kaW5nIGJlaGF2ZSBpZGVudGljYWxseS4KK0hvd2V2ZXIsIGluIG90aGVyIGNh c2VzLCB0aGV5IGNhbiBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgeW91ciBwcm9ncmFtLgorRm9y IGV4YW1wbGUsIHVuZGVyIGxleGljYWwgYmluZGluZywgaWYgeW91IGNhbGwgYSBmdW5jdGlv biBpbnNpZGUgb2YgYQorQGNvZGV7bGV0fSBib2R5LCB0aGF0IGZ1bmN0aW9uJ3MgYm9keSB3 b3VsZCBiZSB1bmFibGUgdG8gYGBzZWUnJyAob3IKK21vZGlmeSkgdGhlIHZhbHVlIG9mIGEg bG9jYWwgdmFyaWFibGUgZnJvbSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uOgorCitAZXhh bXBsZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisKKyhzZXRxIHggMSkKKwor KGRlZnVuIGdldHggKCkKKyAgeCkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAg QHJlc3VsdHt9IDEKK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0lmIHdlIHVzZSBkeW5h bWljIGJpbmRpbmcgaW5zdGVhZCwgdGhlIGJlaGF2aW9yIGlzIGRpZmZlcmVudDoKKworQGV4 YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiBuaWwgLSotCisKKyhzZXRxIHggMSkK KworKGRlZnVuIGdldHggKCkKKyAgeCkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAg ICAgQHJlc3VsdHt9IDIKK0BlbmQgZXhhbXBsZQorCitOb3csIHRoZSByZXN1bHQgb2YgQHNh bXB7KGdldHgpfSBpcyBAc2FtcHsyfSEgIFRoYXQncyBiZWNhdXNlIHVuZGVyCitkeW5hbWlj IGJpbmRpbmcsIHdoZW4gQGNvZGV7Z2V0eH0gbG9va3MgZm9yIHRoZSB2YWx1ZSBvZiBAY29k ZXt4fSwgaXQKK3NlZXMgdGhlIHZhbHVlIHdlIHNldCBpbiBvdXIgQGNvZGV7bGV0fSBleHBy ZXNzaW9uLiAgSW4gb3RoZXIgd29yZHMsCit0aGUgY2FsbCB0byBAY29kZXtnZXR4fSBoYXBw ZW5zIGR1cmluZyB0aGUgQGVtcGh7dGltZX0gd2hlbiBvdXIKK0Bjb2Rle2xldH0gZXhwcmVz c2lvbiBpcyBhY3RpdmUuICBVbmRlciBsZXhpY2FsIGJpbmRpbmcsIEBjb2Rle2dldHh9Citk b2Vzbid0IHNlZSB0aGUgdmFsdWUgZnJvbSBvdXIgQGNvZGV7bGV0fSBleHByZXNzaW9uLiAg VGhhdCdzIGJlY2F1c2UKK2l0IGhhcHBlbnMgaW4gYSBkaWZmZXJlbnQgQGVtcGh7cGxhY2V9 IHRoYW4gdGhlIEBjb2Rle2xldH0gYm9keS4KKwogQG5vZGUgaWYKIEBzZWN0aW9uIFRoZSBA Y29kZXtpZn0gU3BlY2lhbCBGb3JtCiBAZmluZGV4IGlmCi0tIAoyLjI1LjEKCg== --------------u39TyNpGDhlethcqzINtvb0H-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 19 03:39:08 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 08:39:08 +0000 Received: from localhost ([127.0.0.1]:49866 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4dKd-0003k9-Mr for submit@debbugs.gnu.org; Sun, 19 Nov 2023 03:39:08 -0500 Received: from mout.gmx.net ([212.227.15.18]:58717) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4dKa-0003jc-0S for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 03:39:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1700383135; x=1700987935; i=michael.albinus@gmx.de; bh=M1I9TVLt4uo0h6wZWL9eUyhuT+vbc07nid2TNIFsVjM=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References: Date; b=B7Rw707J4eWlABIAHZBmnEt1aNhPfnzFgNgd52uFDj6IEtqyQFyq3s0IfPhmzIQN iZmP8NGOjzTNQjs2jmIh1Ce3SfQLsXyWguQUmT9zg9WCQRlOzIPYmoLwVESSqVQgJ jRmTmXyOcQGy5jRGH9qvDi7xJIo1wmZkpzTRUzjCE4QUs2T7CbW9u+vrv86wE7/OR eB4eWpBk5OQbJcKSTbdizJW8I0nOAID6i/B+n4TDLwkgJIhWOKeMOZm2jlcqxTmjV U9mMnrYnL+Gp7ZQdoi59ZJrThfA7O/JvD0bFF7dQu45mQuwBG+HNwn/M78Fl0S7aM UXtOLsKTJCt/gLnlGw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.39.30]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N0XCw-1rIkOZ2zSe-00wRM1; Sun, 19 Nov 2023 09:38:55 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual In-Reply-To: (Jim Porter's message of "Sat, 18 Nov 2023 21:30:11 -0800") References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> Date: Sun, 19 Nov 2023 09:38:54 +0100 Message-ID: <878r6ut9wh.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:uWEMuC+jODN6xmCCNm62YTFri9lGa87RFxls2iKwytFY4U2hPRl IL5eFS0OMB7pc8bto/9lN+cEIdwGa+dhSL0/x3v+b0O+STkYO1juHPuOykZ/25kRdQ9s0w1 Xjpkwm63xFtY9MvNfZIzQ4fFzl7YgIr7zE6Ep2N4kXcaMTd+Bc3wMXCkljG8DFrRZixE5h3 28/SRnCGeJ44SlOmbe9UQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:gukPw5BsXJQ=;w6T5vzV4QOl3dIDYxYOn7n0WMXa vkOo57PXnUP+oZIipaEp2GqLWl5Jpd/VZiFM8dqQ92zhg80FQ8NMXJDOHMOVeDuYzLhCjrUgG jpsptA+w4LoajeVQNcZVAvrN8Z1rRPUG+Z7XrILc8+5LrkbJMm1oH7kNw6NkqUBZXA/zNqSox PMekpCrqm7tNgjDkB4CCj/8L8yaDwgLf+GAI77U29kxDTOKMQ6lrCyafbyZkvVwt9Rl7zNI/n /66yDUlog5q/5wpT5Gk2mcVZeeHJ2i7YhOGuwp6jAl352n9O/fLu+u5X7tM86zuMStXX5SFYi jXWNcIpG81m3WnDmhnf+GmmpkCZ9uhS90ieASoaV0pRHAHnQq/2EVG2v9ZxFBaSmsPsK9LeUh KuV352LIcOR4tovEc64SzpFdubF/AfwiwpDK8XnLkDHcet/pKluPpCC1q9fzMs9dKuVWxxSYY RBz+IqURAgX9xM1vYR5UIZLvIy5ubm3PMlI8dkOqYOtVxAAYc79iVFI09a3NbqRqhmGWLDK/l 0ByT7K4SJlZrwm0lLOl1iXbEvTT0nhIog/bld6BxN+db2s1I6EpJfp/6Qs4Xm06wcAkGC9NXs ZwTWHHKc122SfwYJtXJNcxcVhT63LjaQrc5Qv2AAbDMdyT6j1UNdpDLMVeiUc5yHW2sHKGqOR SfFzPO7CZh4TIJhiydnVgqs1loCrzShTtKGJueMnllwBYfInuMUHZyWw1eNe6kuuyQDO08rAW zXyS+G7Zj2yFBbzSvRoZsoGhPWotfSmSZm65g0ceS0Sojo84Gepf9xnhyFqzq75xhd+fbnKxJ rtriE92IifcgS8kZBXGNRIfVouEdS9aM9Kxq8NBo12xbiw9QEQKhA+MiD6eRruDiO1zK+oWTu GNqfQc29YOeTR0dC3Vsu48LMSVErOXUrEVJ+yJSHNOtqBlb34YJxfli3kGrWIRuTR4j5522zI zlLrhg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, rms@gnu.org, 66756@debbugs.gnu.org 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: -1.7 (-) Jim Porter writes: Hi Jim, > +In some cases, both lexical and dynamic binding behave identically. > +However, in other cases, they can change the meaning of your program. > +For example, under lexical binding, if you call a function inside of a > +@code{let} body, that function's body would be unable to ``see'' (or > +modify) the value of a local variable from the @code{let} expression: > + > +@example > +;;; -*- lexical-binding: t -*- > + > +(setq x 1) > + > +(defun getx () > + x) > + > +(let ((x 2)) > + (getx)) > + @result{} 1 > +@end example > + > +@noindent > +If we use dynamic binding instead, the behavior is different: > + > +@example > +;;; -*- lexical-binding: nil -*- > + > +(setq x 1) > + > +(defun getx () > + x) > + > +(let ((x 2)) > + (getx)) > + @result{} 2 > +@end example > + > +Now, the result of @samp{(getx)} is @samp{2}! That's because under > +dynamic binding, when @code{getx} looks for the value of @code{x}, it > +sees the value we set in our @code{let} expression. In other words, > +the call to @code{getx} happens during the @emph{time} when our > +@code{let} expression is active. Under lexical binding, @code{getx} > +doesn't see the value from our @code{let} expression. That's because > +it happens in a different @emph{place} than the @code{let} body. Would it be worth to emphasize, that a declaration of x changes this? That is, when a variable is declared, both lexical and dynamic binding behave identically. @example ;;; -*- lexical-binding: t -*- (devfar x 1) (defun getx () x) (let ((x 2)) (getx)) @result{} 2 @end example Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 19 15:17:31 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 20:17:31 +0000 Received: from localhost ([127.0.0.1]:52155 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4oEV-0002ts-H4 for submit@debbugs.gnu.org; Sun, 19 Nov 2023 15:17:31 -0500 Received: from mail-pf1-x436.google.com ([2607:f8b0:4864:20::436]:43026) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4oES-0002te-Vk for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 15:17:30 -0500 Received: by mail-pf1-x436.google.com with SMTP id d2e1a72fcca58-6cb55001124so641706b3a.0 for <66756@debbugs.gnu.org>; Sun, 19 Nov 2023 12:17:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700425041; x=1701029841; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=qq7yOyNtXPSUKSbr/q4FzcTPnL0M/JjgFUficEwDJfg=; b=bUQGb+WJws4WBPNqmaV22fR3JRU5poeYZpK/V9RW3vlMuAl4aZ/CFg/t6VZtzgVvDt A9d8Vq30eXa6jeiee73jsMpqTqZGagoFqoqabxUfDCuxdVTpr9CBexexMoFqRF4lfOKh /uvFz9zpe5B8+W7y63bHnUE6HgSBiV9aYuWBdpTdq2WZjo6G27DGJi17kVEePbCNtqj1 WU82iF95l3oPR4B0nrF5rYyMjINTyxJrvHROB7XCNV4mJCQX7hARm8G093LvkxybT99T Hbhtox0dqtLQuN/N7H/LMtkyU5Rc6FoA07wW7m+io+aFhAhE3ewia+LmzPmcJK3ND3pW xI7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700425041; x=1701029841; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=qq7yOyNtXPSUKSbr/q4FzcTPnL0M/JjgFUficEwDJfg=; b=cjRfA8MvacSM4omWyel7DC0gdM+MoTlNvK8mg4kpySv6HFqQnlaVL8qDccy5Aa7qOS zY0DUCxv7bIegbQ9uNSRhAbMcrlZPRq96QLQQcR051LOhdW4s1pr7fccNG1QPEZvTlQb bFhedb1ahBdjPINQgmLD6AOcwOiS7MtPTc9OzK4wYgQImHClIp8kUJGhFvGwmoGxGdw2 f8d9oDFNQ5H2Rsd7AcjNXOsJZgDaFnXHf3Odw+qC3j0HDHd5K2IuXQt4HsLG90KBdjrJ IVYVHtWnVf0hKJOuxVqDWcArgzN/DHBn2uXS78XRcm2/vqnFBrsqAj1Nu5B/W7tgkks+ owpQ== X-Gm-Message-State: AOJu0Yy/LtDs4WnDdqZ7jQJmEFBU5R/v1DcaMHvDl02iYmg+qUnx1M2Y 06ZayZEv9Fv7KfT9lF9Geu4= X-Google-Smtp-Source: AGHT+IEfCgRBD7/yLKR+2rOHMJkMIq3sV6XdWKft47sA2fcm/IsuA84f8djhVLy0lyYtXJQLy7LhPA== X-Received: by 2002:a05:6a21:999d:b0:187:4e8c:ac5c with SMTP id ve29-20020a056a21999d00b001874e8cac5cmr7308001pzb.1.1700425041423; Sun, 19 Nov 2023 12:17:21 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id f2-20020a056a0022c200b0064fd4a6b306sm4651235pfj.76.2023.11.19.12.17.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 19 Nov 2023 12:17:21 -0800 (PST) Message-ID: Date: Sun, 19 Nov 2023 12:17:19 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: Michael Albinus References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <878r6ut9wh.fsf@gmx.de> From: Jim Porter In-Reply-To: <878r6ut9wh.fsf@gmx.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, rms@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) On 11/19/2023 12:38 AM, Michael Albinus wrote: > Would it be worth to emphasize, that a declaration of x changes this? > That is, when a variable is declared, both lexical and dynamic binding > behave identically. Thanks, that's probably a good idea. We should mention this in the section that introduces 'defvar'. I'll work on adding that. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 19 18:06:11 2023 Received: (at 66756) by debbugs.gnu.org; 19 Nov 2023 23:06:11 +0000 Received: from localhost ([127.0.0.1]:52241 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4qri-0001rL-B0 for submit@debbugs.gnu.org; Sun, 19 Nov 2023 18:06:11 -0500 Received: from mail-pj1-x1036.google.com ([2607:f8b0:4864:20::1036]:54627) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r4qrc-0001ql-Ts for 66756@debbugs.gnu.org; Sun, 19 Nov 2023 18:06:09 -0500 Received: by mail-pj1-x1036.google.com with SMTP id 98e67ed59e1d1-27ff7fe7fbcso3013475a91.1 for <66756@debbugs.gnu.org>; Sun, 19 Nov 2023 15:06:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700435157; x=1701039957; darn=debbugs.gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=lc4S2Y81m8BYcmemIVr0/1qog6RH+r2y0VazQ3Wo0Ng=; b=D7ee0KDDZECVhTw1IIID+p8lOAyhTKBMiZU6LINxACAgMaNF32IsCt7DYlyK44b0UX WGln4SAzdbfYn+5AXxC5/KuQQIIYyvySICNWSraGqsftLNaa2D3OUZqn/dtdUQ5SjaYz bboofJ/xc60ImPWWE2mokVXGiJneboahG9rm6ElKt2GG+LebR0mWaw0K2gSlUAtTdP3t YhNb0U0H++IqNUTQk8Oqla/LVbvh56Z/xMTR2yJjO/dJ6my/aIOY/c1zK/qZYBvS8jDK zNnLNAkiAutVimoLvBZG/9KmdEMxD6oxikcfLKdzhWfXDen5Yscq3I2Ge49BbnfGLFSD osDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700435157; x=1701039957; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=lc4S2Y81m8BYcmemIVr0/1qog6RH+r2y0VazQ3Wo0Ng=; b=B7dljz1y0tNpLucDvcdjJLuBd2ak6J45Zqqnh5zl0Gc53CokphE8iso7tl8swEsPHF 9wNQKA5454vy+4qAFjsle1TlkddRrT7P96NIdPDOc3GqXkCIU4rsO98xX2ay76GHevhp JVKWVrwYN9g2h8CP8tbWkssNvg4Xbm2MqpX67ky7gZ162vlxgeoA1cOE2fstTSq9K6DI JzkJPLF+6G25iCfTsXnR0/2uvdxFGO/LwdBpzZqbcmtY+PAg/e+Hr4Dwem5nfmoo6O47 q5Hp9IKckBVPRnVXIQtew5ASeirB2xz+SVK2FtjS+XQCybHnrMMt9rgfp4XjAX+rggNg NAnw== X-Gm-Message-State: AOJu0YxnyVxjTMYOA8im1XRpxF9zVz6vicFzskdkm2t0wKTBGnzvCKJL FBT7k6OPyNmDyY7K5fqk0Q0= X-Google-Smtp-Source: AGHT+IEWPqcfJ2REikNXMAW6z/puLD4y0ip8TxjmfoL3CODR4Hzvwo/qBO5ff2M/WxgU3TKoqeiyMQ== X-Received: by 2002:a17:90b:4b43:b0:27d:2dde:5979 with SMTP id mi3-20020a17090b4b4300b0027d2dde5979mr6519320pjb.5.1700435157217; Sun, 19 Nov 2023 15:05:57 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id w3-20020a17090ac98300b0027669cbc30asm6835933pjt.1.2023.11.19.15.05.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 19 Nov 2023 15:05:56 -0800 (PST) Content-Type: multipart/mixed; boundary="------------HFC8aug65ZI4H50QmbSChXjz" Message-ID: <94698677-0fd0-2fb8-6811-3f7e3973107d@gmail.com> Date: Sun, 19 Nov 2023 15:05:55 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US From: Jim Porter To: Michael Albinus References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <878r6ut9wh.fsf@gmx.de> In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, rms@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------HFC8aug65ZI4H50QmbSChXjz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/19/2023 12:17 PM, Jim Porter wrote: > On 11/19/2023 12:38 AM, Michael Albinus wrote: >> Would it be worth to emphasize, that a declaration of x changes this? >> That is, when a variable is declared, both lexical and dynamic binding >> behave identically. > > Thanks, that's probably a good idea. We should mention this in the > section that introduces 'defvar'. I'll work on adding that. Ok, what about this? I just added a mention to the 'defvar' section about this, and cross-referenced the two sections. --------------HFC8aug65ZI4H50QmbSChXjz Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5ZGI2NzU2NTZlYTc2YTQwMWE3OTJhNzExMjMxNzY2YjNkN2E4N2QyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCkJ1ZyM2Njc1Ni4KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNw LWludHJvLnRleGkgKFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlv biB0byBkaXNjdXNzIGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihI b3cgbGV0IEJpbmRzIFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3 ZWVuIGxleGljYWwKYW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25m aWd1cmUgaXQpLgooZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZh cmlhYmxlcyBhcyBhbHdheXMKZHluYW1pY2FsbHktYm91bmQuCi0tLQogZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxMzMgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh Li45YThiOTNmYmQzZSAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0 ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg QHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmluZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUs IGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRz IGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9j YWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFt ZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5k ZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhv dXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQg aW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57 bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJpZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25h bWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIChpbiBjb21wdXRlciBzY2ll bmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBgYGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAg VGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcgdGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwg d2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91 c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0 aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwgLCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4p CiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9u IHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9 IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0 aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBo YXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFu b3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtl IGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVtcG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1 ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1hdXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRo ZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAgVGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBl eHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0 fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBz YXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9sIGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlv bnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUg ZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMsIG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRl ZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5vdCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwu KQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRl ZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2RlIHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5h bWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1lYW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29k ZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citu b3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhpcyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNv ZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29kZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1l ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2Yg dGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1l YW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rl e3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz aW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBj b2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBB bHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5p dGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3NzksNiArMzc3Nyw5MyBAQCBVbmluaXRpYWxp emVkIGxldCBWYXJpYWJsZXMKIEBzYW1weyVzfS4pICBUaGUgZm91ciB2YXJpYWJsZXMgYXMg YSBncm91cCBhcmUgcHV0IGludG8gYSBsaXN0IHRvCiBkZWxpbWl0IHRoZW0gZnJvbSB0aGUg Ym9keSBvZiB0aGUgQGNvZGV7bGV0fS4KIAorQG5vZGUgSG93IGxldCBCaW5kcyBWYXJpYWJs ZXMKK0BzdWJzZWN0aW9uIEhvdyBAY29kZXtsZXR9IEJpbmRzIFZhcmlhYmxlcworQGNpbmRl eCBMZXhpY2FsIGJpbmRpbmcKK0BjaW5kZXggQmluZGluZywgbGV4aWNhbAorQGNpbmRleCBE eW5hbWljIGJpbmRpbmcKK0BjaW5kZXggQmluZGluZywgZHluYW1pYworCitFbWFjcyBMaXNw IHN1cHBvcnRzIHR3byBkaWZmZXJlbnQgd2F5cyBvZiBiaW5kaW5nIHZhcmlhYmxlIG5hbWVz IHRvCit0aGVpciB2YWx1ZXMuICBUaGVzZSB3YXlzIGFmZmVjdCB0aGUgcGFydHMgb2YgeW91 ciBwcm9ncmFtIHdoZXJlIGEKK3BhcnRpY3VsYXIgYmluZGluZyBpcyB2YWxpZCAoaW4gY29t cHV0ZXIgc2NpZW5jZSBqYXJnb24sIHdlIGNhbGwgdGhlc2UKK3BhcnRzIGEgYGBzY29wZScn KS4gIEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIEVtYWNzIExpc3AgdXNlcyBhIGZvcm0gb2YK K3ZhcmlhYmxlIGJpbmRpbmcgY2FsbGVkIGBgZHluYW1pYyBiaW5kaW5nJycgYnkgZGVmYXVs dC4gIEhvd2V2ZXIsIGluCit0aGlzIG1hbnVhbCB3ZSBkaXNjdXNzIHRoZSBwcmVmZXJyZWQg Zm9ybSBvZiBiaW5kaW5nLCBjYWxsZWQgYGBsZXhpY2FsCitiaW5kaW5nJycsIHVubGVzcyBv dGhlcndpc2Ugbm90ZWQgKGluIHRoZSBmdXR1cmUsIHRoZSBFbWFjcworbWFpbnRhaW5lcnMg cGxhbiB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgdG8gbGV4aWNhbCBiaW5kaW5nKS4gIElmIHlv dQoraGF2ZSBwcm9ncmFtbWVkIGluIG90aGVyIGxhbmd1YWdlcyBiZWZvcmUsIHlvdSdyZSBs aWtlbHkgYWxyZWFkeQorZmFtaWxpYXIgd2l0aCBob3cgbGV4aWNhbCBiaW5kaW5nIGJlaGF2 ZXMuCisKK0luIG9yZGVyIHRvIHVzZSBsZXhpY2FsIGJpbmRpbmcgaW4gYSBwcm9ncmFtLCB5 b3Ugc2hvdWxkIGFkZCB0aGlzIHRvCit0aGUgZmlyc3QgbGluZSBvZiB5b3VyIEVtYWNzIExp c3AgZmlsZToKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQor QGVuZCBleGFtcGxlCisKK0ZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMsIEBweHJl ZntTZWxlY3RpbmcgTGlzcCBEaWFsZWN0LCAsICwKK2VsaXNwLCBUaGUgRW1hY3MgTGlzcCBS ZWZlcmVuY2UgTWFudWFsfS4KKworQXMgd2UgZGlzY3Vzc2VkIGJlZm9yZSwgdW5kZXIgbGV4 aWNhbCBiaW5kaW5nLCBAY29kZXtsZXR9IGRlZmluZXMgYQorQGVtcGh7cGxhY2V9IGluIHlv dXIgY29kZSB3aGVyZSB0aGUgdmFyaWFibGVzIGhhdmUgdGhlaXIgb3duIGxvY2FsCittZWFu aW5nLiAgVW5kZXIgZHluYW1pYyBiaW5kaW5nLCB0aGUgcnVsZXMgYXJlIGRpZmZlcmVudDog aW5zdGVhZCwgeW91CithcmUgZGVmaW5pbmcgYSBAZW1waHt0aW1lfSBpbiB5b3VyIGNvZGUg d2hlbiB0aGUgdmFyaWFibGVzIGhhdmUgdGhlaXIKK293biBsb2NhbCBtZWFuaW5nLgorCitB bm90aGVyIHdheSB0byB0aGluayBhYm91dCBAY29kZXtsZXR9IHdoZW4gdXNpbmcgZHluYW1p YyBiaW5kaW5nIGlzCit0aGF0IGl0IGlzIGxpa2UgYSBAY29kZXtzZXRxfSB0aGF0IGlzIHRl bXBvcmFyeSBhbmQgbG9jYWwuICBUaGUgdmFsdWVzCitzZXQgYnkgQGNvZGV7bGV0fSBhcmUg YXV0b21hdGljYWxseSB1bmRvbmUgd2hlbiB0aGUgQGNvZGV7bGV0fSBpcworZmluaXNoZWQu ICBUaGUgc2V0dGluZyBvbmx5IGFmZmVjdHMgZXhwcmVzc2lvbnMgdGhhdCBhcmUgaW5zaWRl IHRoZQorYm91bmRzIG9mIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCisKK0luIHNvbWUg Y2FzZXMsIGJvdGggbGV4aWNhbCBhbmQgZHluYW1pYyBiaW5kaW5nIGJlaGF2ZSBpZGVudGlj YWxseS4KK0hvd2V2ZXIsIGluIG90aGVyIGNhc2VzLCB0aGV5IGNhbiBjaGFuZ2UgdGhlIG1l YW5pbmcgb2YgeW91ciBwcm9ncmFtLgorRm9yIGV4YW1wbGUsIHVuZGVyIGxleGljYWwgYmlu ZGluZywgaWYgeW91IGNhbGwgYSBmdW5jdGlvbiBpbnNpZGUgb2YgYQorQGNvZGV7bGV0fSBi b2R5LCB0aGF0IGZ1bmN0aW9uJ3MgYm9keSB3b3VsZCBiZSB1bmFibGUgdG8gYGBzZWUnJyAo b3IKK21vZGlmeSkgdGhlIHZhbHVlIG9mIGEgbG9jYWwgdmFyaWFibGUgZnJvbSB0aGUgQGNv ZGV7bGV0fSBleHByZXNzaW9uOgorCitAZXhhbXBsZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRp bmc6IHQgLSotCisKKyhzZXRxIHggMSkKKworKGRlZnVuIGdldHggKCkKKyAgeCkKKworKGxl dCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDEKK0BlbmQgZXhhbXBsZQor CitAbm9pbmRlbnQKK0lmIHdlIHVzZSBkeW5hbWljIGJpbmRpbmcgaW5zdGVhZCwgdGhlIGJl aGF2aW9yIGlzIGRpZmZlcmVudDoKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5k aW5nOiBuaWwgLSotCisKKyhzZXRxIHggMSkKKworKGRlZnVuIGdldHggKCkKKyAgeCkKKwor KGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDIKK0BlbmQgZXhhbXBs ZQorCitOb3csIHRoZSByZXN1bHQgb2YgQHNhbXB7KGdldHgpfSBpcyBAc2FtcHsyfSEgIFRo YXQncyBiZWNhdXNlIHVuZGVyCitkeW5hbWljIGJpbmRpbmcsIHdoZW4gQGNvZGV7Z2V0eH0g bG9va3MgZm9yIHRoZSB2YWx1ZSBvZiBAY29kZXt4fSwgaXQKK3NlZXMgdGhlIHZhbHVlIHdl IHNldCBpbiBvdXIgQGNvZGV7bGV0fSBleHByZXNzaW9uLiAgSW4gb3RoZXIgd29yZHMsCit0 aGUgY2FsbCB0byBAY29kZXtnZXR4fSBoYXBwZW5zIGR1cmluZyB0aGUgQGVtcGh7dGltZX0g d2hlbiBvdXIKK0Bjb2Rle2xldH0gZXhwcmVzc2lvbiBpcyBhY3RpdmUuICBVbmRlciBsZXhp Y2FsIGJpbmRpbmcsIEBjb2Rle2dldHh9Citkb2Vzbid0IHNlZSB0aGUgdmFsdWUgZnJvbSBv dXIgQGNvZGV7bGV0fSBleHByZXNzaW9uLiAgVGhhdCdzIGJlY2F1c2UKK2l0IGhhcHBlbnMg aW4gYSBkaWZmZXJlbnQgQGVtcGh7cGxhY2V9IHRoYW4gdGhlIEBjb2Rle2xldH0gYm9keS4K KworKFNvbWUgdmFyaWFibGVzIGFyZSBhbHNvIGBgc3BlY2lhbCcnLCBhbmQgdGhleSBhcmUg YWx3YXlzIGR5bmFtaWNhbGx5Citib3VuZCBldmVuIHdoZW4gQGNvZGV7bGV4aWNhbC1iaW5k aW5nfSBpcyBAY29kZXt0fS4gIEB4cmVme2RlZnZhciwgLAorSW5pdGlhbGl6aW5nIGEgVmFy aWFibGUgd2l0aCBAY29kZXtkZWZ2YXJ9fS4pCisKIEBub2RlIGlmCiBAc2VjdGlvbiBUaGUg QGNvZGV7aWZ9IFNwZWNpYWwgRm9ybQogQGZpbmRleCBpZgpAQCAtOTEzMCwxMiArOTIxNSwx NCBAQCBkZWZ2YXIKIGdpdmVuIGFuIGluaXRpYWwgdmFsdWUgYnkgdXNpbmcgdGhlIEBjb2Rl e2RlZnZhcn0gc3BlY2lhbCBmb3JtLiAgVGhlCiBuYW1lIGNvbWVzIGZyb20gYGBkZWZpbmUg dmFyaWFibGUnJy4KIAotVGhlIEBjb2Rle2RlZnZhcn0gc3BlY2lhbCBmb3JtIGlzIHNpbWls YXIgdG8gQGNvZGV7c2V0cX0gaW4gdGhhdCBpdCBzZXRzCi10aGUgdmFsdWUgb2YgYSB2YXJp YWJsZS4gIEl0IGlzIHVubGlrZSBAY29kZXtzZXRxfSBpbiB0d28gd2F5czogZmlyc3QsCi1p dCBvbmx5IHNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBpZiB0aGUgdmFyaWFibGUg ZG9lcyBub3QgYWxyZWFkeQotaGF2ZSBhIHZhbHVlLiAgSWYgdGhlIHZhcmlhYmxlIGFscmVh ZHkgaGFzIGEgdmFsdWUsIEBjb2Rle2RlZnZhcn0gZG9lcwotbm90IG92ZXJyaWRlIHRoZSBl eGlzdGluZyB2YWx1ZS4gIFNlY29uZCwgQGNvZGV7ZGVmdmFyfSBoYXMgYQotZG9jdW1lbnRh dGlvbiBzdHJpbmcuCitUaGUgQGNvZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0gaXMgc2ltaWxh ciB0byBAY29kZXtzZXRxfSBpbiB0aGF0IGl0CitzZXRzIHRoZSB2YWx1ZSBvZiBhIHZhcmlh YmxlLiAgSXQgaXMgdW5saWtlIEBjb2Rle3NldHF9IGluIHRocmVlIHdheXM6CitmaXJzdCwg aXQgb25seSBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgaWYgdGhlIHZhcmlhYmxl IGRvZXMgbm90CithbHJlYWR5IGhhdmUgYSB2YWx1ZS4gIElmIHRoZSB2YXJpYWJsZSBhbHJl YWR5IGhhcyBhIHZhbHVlLAorQGNvZGV7ZGVmdmFyfSBkb2VzIG5vdCBvdmVycmlkZSB0aGUg ZXhpc3RpbmcgdmFsdWUuICBTZWNvbmQsIGl0IG1hcmtzCit0aGUgdmFyaWFibGUgYXMgYGBz cGVjaWFsJycgc28gdGhhdCBpdCBpcyBhbHdheXMgZHluYW1pY2FsbHkgYm91bmQsCitldmVu IHdoZW4gQGNvZGV7bGV4aWNhbC1iaW5kaW5nfSBpcyBAY29kZXt0fSAoQHB4cmVme0hvdyBs ZXQgQmluZHMKK1ZhcmlhYmxlc30pLiAgVGhpcmQsIEBjb2Rle2RlZnZhcn0gaGFzIGEgZG9j dW1lbnRhdGlvbiBzdHJpbmcuCiAKIChUaGVyZSBpcyBhIHJlbGF0ZWQgbWFjcm8sIEBjb2Rl e2RlZmN1c3RvbX0sIGRlc2lnbmVkIGZvciB2YXJpYWJsZXMKIHRoYXQgcGVvcGxlIGN1c3Rv bWl6ZS4gIEl0IGhhcyBtb3JlIGZlYXR1cmVzIHRoYW4gQGNvZGV7ZGVmdmFyfS4KLS0gCjIu MjUuMQoK --------------HFC8aug65ZI4H50QmbSChXjz-- From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 20 08:28:47 2023 Received: (at 66756) by debbugs.gnu.org; 20 Nov 2023 13:28:47 +0000 Received: from localhost ([127.0.0.1]:52801 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r54KV-0001Yq-Au for submit@debbugs.gnu.org; Mon, 20 Nov 2023 08:28:47 -0500 Received: from mout.gmx.net ([212.227.15.19]:42339) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r54KS-0001YZ-9n for 66756@debbugs.gnu.org; Mon, 20 Nov 2023 08:28:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1700486915; x=1701091715; i=michael.albinus@gmx.de; bh=pRzsQ1zNtVo+/VTY/xXE0yUg0NGXQ3TvfywCT9cmK9o=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References: Date; b=tAD7FU+yF3T3sPOMHXcnlfHVA9Vm8XXrGrPYmMr1IeSQzaucnxMDK5Z349P/2cRV hlHnoCWvLDxPzm/5OP9CyjxYtKLsmUga+KvtZumvy1IoNAJFX/rHWiutJWrWu7Y/V cMcU7Ctzk3gZSkore5VqGossnpb+9pJwMPLsYfY8n6lzEQL29UyCprSA6iwOq/gJy T8TYuer8GEjoIvNyHP3T9VN/o4LHUZa67h+VqhEx4CpcIZXpAug/JiSHv8RXr9ILN 5Z6u2Z8FZg2k9LcFBGM+HMQi3fgtxVx5yP4vjFvfcDZ9uB5VdsK8+/ReGrGGmHiQU cGnB8UY6CQm1y8Xu3Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from gandalf.gmx.de ([185.89.39.30]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N9dsV-1rRyRa1GBJ-015XkR; Mon, 20 Nov 2023 14:28:35 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual In-Reply-To: <94698677-0fd0-2fb8-6811-3f7e3973107d@gmail.com> (Jim Porter's message of "Sun, 19 Nov 2023 15:05:55 -0800") References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <878r6ut9wh.fsf@gmx.de> <94698677-0fd0-2fb8-6811-3f7e3973107d@gmail.com> Date: Mon, 20 Nov 2023 14:28:34 +0100 Message-ID: <874jhgk0zh.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:vTblUPdgd14rwfXo/H742ZU3huFNhxRiCPv62Jdk9SAKSCBhyo5 Me7nXQB5ZUc4iLmpnAnQhih0geQnjoclBroMZDthY010nsMS5k2nRvrRDuar+wfOaWAdkQn c6d9PPA3cpWjYVEJCyp+FgbOc//FE7QB0aV2yQ8D0iaxP0IyA1hjW/WlFeT9VMhly832VdA 4i3m8x3cJZy1bc2xtpjbA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:RDt6ST8b8r8=;T+/Yn+WOLxXQV0iTlYYL8VFPcuW SkSB7NAZpOsm5VTgMh6Heqj9Vg5MU21iOrwxX19A76bWg8k24HVAXOSKZ/6Z7kGRwp4OFhNq4 bMZkVytpYirF04kE9pr2gM5+zQSNz5ov+XeuxPqqfHtEwBmkmBxM25Zh5+bdfxMogZv+HDaU6 zRJD/rBxLRd2hs11pjAc1EJettLP9oDmXvQF1kbDyKalS9xNkNYonS3EhaJ5hlfSV+3ylRTCp MavUuA88l9p1Ed8dY0mkHCNaBIR1WMHO2jjJQgDy4MedoT2qBvzv0IAoHpqO9vm7QojY9SM5F PIBBSs6sQABpYe5sGXZw2+wNY/TQeFsttJL4YMAKjTn3Hp6muYAwc4xPETPnQOLfzLIZtuV7I d7wTqckeA74Hv0ZumODl/rml9g9el9aKZPMR9NZSZFi+JGGrqY19OZKc3A0jJ/EiLouuwGMQh XSrK7dx9F0+IHUeo2oc2a3w8w89J5iJjcK1N0eyEdT+9WLfyP/D84ll8cu6fQ6j4ML10WuIr4 JV3GAosk6UihZfmSticZN8rZkbEnJsho2sq3nw0PWuPeMdMgQBUgAKDWRv72IlzYsjQZTtzBR AmsYMaaViMhYty24h6SwyXuumL03F/difU1RsrJ7BRBgJsjBLFly6A+XkQFQFntCSf5ARr/1D HUZ8VWBcf6b6k+/R98e7lomsjK9uLMhc93cQlhkrOu2sBfBTW8MliYI6cvhHIKtFSzNoqOSQl H8s0R/jZ3k2ZeAIPhlFeBq5G31hg1agn/Opm9IDWAbaLQJ9q3AV/KoqN2Sg3RriHm9rzTx1TJ KkwPQN1cgoodQ5Y3F5uNFPanNG+3oFWyi2OSVUH6UJ4Nn/Lpxi+5YxTVb3FcjYgRCv+ib/Qae LZ8ARVf6w1Hvjm9EyPYDdeX7zp0Dv3+1nDLqR2IAg8Yn4lW7tOrcYFuClPZFt/tz0uu0Y8dhk mNAHhA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, rms@gnu.org, 66756@debbugs.gnu.org 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: -1.7 (-) Jim Porter writes: Hi Jim, > Ok, what about this? I just added a mention to the 'defvar' section > about this, and cross-referenced the two sections. Looks OK to me. But perhaps Lisp language experts might have a look on this also. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 22 21:58:03 2023 Received: (at 66756) by debbugs.gnu.org; 23 Nov 2023 02:58:03 +0000 Received: from localhost ([127.0.0.1]:60300 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r5zuk-0002Z4-Ng for submit@debbugs.gnu.org; Wed, 22 Nov 2023 21:58:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59180) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r5zui-0002YW-Ca for 66756@debbugs.gnu.org; Wed, 22 Nov 2023 21:58:01 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r5zuZ-00008L-BX; Wed, 22 Nov 2023 21:57:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=zgp0G0W/q5ZuItKjGE2QSJ7NkKSC94DfOcMZzpfMbFU=; b=avGSICI9LBer JRCWz53OBzSS/LVvUMKzeTzsdcI4tnjZJHPJPCrRUcZILOC8b7HYpjt1TBA36GcfC0xuM/XINZANl N88niIZUqKULxJ9t1UNe9Io/wOASV58VdovxSm//P+Qfp8bgA3bYaNKcwcUnMGrVFSwmlmMUhIywf qm4Ee5oK/4kIM+1tvGQUpdGmdVNGB5TC5uPhY2Ww/sbSKKvddzqLpdU1oviLT18T9sslShfBa87qI 1Wu1RyyqsGuFiTt465aLIypyO5yo2/s8NSTJ7jR8CdKB9B6bN6J7YdIQ9X6N/0Jd7aiJ3RPEBsjjj VCEbywzyNcKoFDkinPYGvA==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1r5zuY-00041H-Bl; Wed, 22 Nov 2023 21:57:50 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: (message from Jim Porter on Sat, 18 Nov 2023 21:30:11 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> Message-Id: Date: Wed, 22 Nov 2023 21:57:50 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Your work is good. After this, > +;;; -*- lexical-binding: t -*- > + > +(setq x 1) > + > +(defun getx () > + x) > + > +(let ((x 2)) > + (getx)) > + @result{} 1 > +@end example it could be good to add the following: +(setq x 3) + +(let ((x 2)) + (getx)) + @result{} 3 + +(setq x '(foo)) + +(let ((x 2)) + (getx)) + @result{} (foo) +@end example to show that `getx' accesses the current value of the global binding, not the value that the global binding had when getx was defined. Adding this to the lexical binding example +(setq x 3) + +(let ((x 2)) + (getx)) + @result{} 2 + +(setq x '(foo)) + +(let ((x 2)) + (getx)) + @result{} 2 could also help, by showing that changes in the global binding's value are irrelevant for references to x where that binding is shadowed. Or perhaps this pair of examples should be presented as a separate point following the other one. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 23 16:04:14 2023 Received: (at 66756) by debbugs.gnu.org; 23 Nov 2023 21:04:15 +0000 Received: from localhost ([127.0.0.1]:35226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6Gru-0000Bs-70 for submit@debbugs.gnu.org; Thu, 23 Nov 2023 16:04:14 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:51480) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6Grs-0000BW-4Z for 66756@debbugs.gnu.org; Thu, 23 Nov 2023 16:04:12 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1cf98f961e9so4291565ad.3 for <66756@debbugs.gnu.org>; Thu, 23 Nov 2023 13:04:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700773442; x=1701378242; darn=debbugs.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=sCaSlL3HVSC7s/l9nwmdxyHZAV9CNt0duaIAR8Ae59g=; b=VXGF8egtYv003E0/th76+cjnSarPaJEA63F3Se1/lluOGSSHabIu2lIG2O39w//i5W qY2eY3lE8rPFu/XxR4nNSN+Jac3WvkB7J0tee07nAOZEw2NfsqUL2abZCpTfSMUuYL0D uTdnjSwpsxXQ/l+0Qm7faY4cODL5CUvuQ6Bfnfr934nQeYEn2WJupCixytPv/JG+njME Q9ia9CBt9j4u+TvLMYm81ElfcqDbGf0hm/ILcmnOAG4G2uS5uYdgaE9QtHW0+KWyrZOO kKhNlvSahnzWPHDQBjCG2ZJyrIbeAmuehxm84pt+iyQlS2vYZSvjB6Ed4Mty2yxLM6FK uLSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700773442; x=1701378242; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=sCaSlL3HVSC7s/l9nwmdxyHZAV9CNt0duaIAR8Ae59g=; b=GqPP/bPHhB0NvQZvMM+gOPQH3ws4b7vzt0G/crfwFsYNDHKfPCqoAUgE/fA2fLEM6Z q3TQW/VEvEw9mHGM8qpWxmnQxUOJiJDUMPzGILqTcfDcVYtqBGBpDaSjdqfGuBTbJM11 Od2YcREijOoHjWbWxAdj+VPZ4ZlShCrnNv2N0XNzdjsRaMnuxBxxpcwphk3h+0vDrIXg dv2QJU2RF/y0kkA4EyJ5XoKA3H73kgUTyzXpqgXZwuSKUjgCHoT5nAYvUnNG88D329WC tJ06vkVeulnWSu10NoxuVYPjD7GcsOAX46O4j0vrD4ANlJldSOv5se67E1R+n2jFLSUY GO2w== X-Gm-Message-State: AOJu0YyhDg1fIgOnngK0fC5XV9Igf0pmbO7+8gpmKc5p6OQrBt9j19mN /6gEEoZxw2Ng87eAnK0xQPc= X-Google-Smtp-Source: AGHT+IGZJAnoQCK5m/OuOhaConP3ohn34UdRRwaTsOvL9OuVGXdmMSqxf1uf55xjAWlNHR8mm/hv3Q== X-Received: by 2002:a17:903:2596:b0:1cf:8a98:3ae with SMTP id jb22-20020a170903259600b001cf8a9803aemr483709plb.68.1700773441997; Thu, 23 Nov 2023 13:04:01 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id t15-20020a1709027fcf00b001c898328289sm1817712plb.158.2023.11.23.13.04.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 23 Nov 2023 13:04:01 -0800 (PST) Content-Type: multipart/mixed; boundary="------------kuo0BZ5UmJ4lqgUpf01c05tQ" Message-ID: <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> Date: Thu, 23 Nov 2023 13:04:01 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual To: rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> Content-Language: en-US From: Jim Porter In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------kuo0BZ5UmJ4lqgUpf01c05tQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/22/2023 6:57 PM, Richard Stallman wrote: > it could be good to add the following: [snip] > to show that `getx' accesses the current value of the global binding, > not the value that the global binding had when getx was defined. How about this? Instead of adding further examples, I made the existing ones just a bit more complex (I added another 'setq' after defining the function 'getx' to both examples). Then I explained specifically that in the lexical binding example, "... 'getx' sees the current global value of 'x'." Hopefully this strikes the right balance between being explicit and detailed about what's happening without adding too many twists and turns to the section. I wanted to stick with just two blocks of code in this section so that a reader who was skimming (or just reading quickly) could easily pick them out to compare and contrast with each other. Additional code blocks made this harder to do when I tried it. --------------kuo0BZ5UmJ4lqgUpf01c05tQ Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmZGZhZTIxOWJlYzgyNTVlMTczZThlZjQ0OGYzYjQ5ZGU2ZmNjNzUzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihIb3cgbGV0IEJpbmRz IFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxleGljYWwK YW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25maWd1cmUgaXQpLgoo ZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZhcmlhYmxlcyBhcyBh bHdheXMKZHluYW1pY2FsbHktYm91bmQgKGJ1ZyM2Njc1NikuCi0tLQogZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh Li45MjI4N2E0MTEwYyAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0 ZXgKQEAgLTM2MDEsMjUgKzM2MDIsMjIgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg QHNhbXB7bG9jYWwgdmFyaWFibGV9IGRlZmluZWQKIEBjaW5kZXggQHNhbXB7dmFyaWFibGUs IGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lhbCBmb3JtIHByZXZlbnRz IGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCi1uYW1lIGZvciBhIEBkZm57bG9j YWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBvZiB0aGUgc2FtZQotbmFt ZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBUaGlzIGlzIGxpa2UgdW5k ZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVmZXJzIHRvIGBgdGhlIGhv dXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4gIChTeW1ib2xzIHVzZWQg aW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCituYW1lIGZvciBhIEBkZm57 bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnJpZGVzIGFueSB1c2Ugb2YgdGhlIHNhbWUKK25h bWUgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIChpbiBjb21wdXRlciBzY2ll bmNlIGphcmdvbiwgd2UKK2NhbGwgdGhpcyBgYGJpbmRpbmcnJyB0aGUgdmFyaWFibGUpLiAg VGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcgdGhhdAoraW4geW91ciBob3N0J3MgaG9tZSwg d2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcworaG91 c2UsIG5vdCB5b3Vycy4gIChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0 aGUgc2FtZSB3YXkuCiBAeHJlZntkZWZ1biwgLCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4p CiAKLUxvY2FsIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9u IHJldGFpbiB0aGVpciB2YWx1ZQotQGVtcGh7b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9 IGV4cHJlc3Npb24gaXRzZWxmIChhbmQgd2l0aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0 aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBo YXZlIG5vIGVmZmVjdCBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFu b3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtl IGEgQGNvZGV7c2V0cX0KLXRoYXQgaXMgdGVtcG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1 ZXMgc2V0IGJ5IEBjb2Rle2xldH0gYXJlCi1hdXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRo ZSBAY29kZXtsZXR9IGlzIGZpbmlzaGVkLiAgVGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBl eHByZXNzaW9ucyB0aGF0IGFyZSBpbnNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0 fQotZXhwcmVzc2lvbi4gIEluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBz YXkgdGhlIGJpbmRpbmcgb2YKLWEgc3ltYm9sIGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlv bnMgY2FsbGVkIGluIHRoZSBAY29kZXtsZXR9IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUg ZGVmYXVsdCBzY29waW5nIGlzIGR5bmFtaWMsIG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRl ZmF1bHQgbGV4aWNhbCBiaW5kaW5nIGlzIG5vdCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwu KQorQW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRl ZmluZXMgYSBwbGFjZSBpbgoreW91ciBjb2RlIHdoZXJlIHRoZSB2YXJpYWJsZXMgeW91IG5h bWVkIGhhdmUgdGhlaXIgb3duIGxvY2FsIG1lYW5pbmcuCitPdXRzaWRlIG9mIHRoZSBAY29k ZXtsZXR9IGJvZHksIHRoZXkgaGF2ZSBhbm90aGVyIG1lYW5pbmcgKG9yIHRoZXkgbWF5Citu b3QgYmUgZGVmaW5lZCBhdCBhbGwpLiAgVGhpcyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNv ZGV7bGV0fSBib2R5LAorY2FsbGluZyBAY29kZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1l ZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uCit3aWxsIHNldCB0aGUgdmFsdWUgb2Yg dGhlIEBlbXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0aGF0IG5hbWUuICBUaGlzCithbHNvIG1l YW5zIHRoYXQgb3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rl e3NldHF9Citmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNz aW9uIHdpbGwgQGVtcGh7bm90fQorYWZmZWN0IHRoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBj b2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBB bHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5p dGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3NzksNiArMzc3NywxMDIgQEAgVW5pbml0aWFs aXplZCBsZXQgVmFyaWFibGVzCiBAc2FtcHslc30uKSAgVGhlIGZvdXIgdmFyaWFibGVzIGFz IGEgZ3JvdXAgYXJlIHB1dCBpbnRvIGEgbGlzdCB0bwogZGVsaW1pdCB0aGVtIGZyb20gdGhl IGJvZHkgb2YgdGhlIEBjb2Rle2xldH0uCiAKK0Bub2RlIEhvdyBsZXQgQmluZHMgVmFyaWFi bGVzCitAc3Vic2VjdGlvbiBIb3cgQGNvZGV7bGV0fSBCaW5kcyBWYXJpYWJsZXMKK0BjaW5k ZXggTGV4aWNhbCBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGxleGljYWwKK0BjaW5kZXgg RHluYW1pYyBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGR5bmFtaWMKKworRW1hY3MgTGlz cCBzdXBwb3J0cyB0d28gZGlmZmVyZW50IHdheXMgb2YgYmluZGluZyB2YXJpYWJsZSBuYW1l cyB0bwordGhlaXIgdmFsdWVzLiAgVGhlc2Ugd2F5cyBhZmZlY3QgdGhlIHBhcnRzIG9mIHlv dXIgcHJvZ3JhbSB3aGVyZSBhCitwYXJ0aWN1bGFyIGJpbmRpbmcgaXMgdmFsaWQgKGluIGNv bXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSBjYWxsIHRoZXNlCitwYXJ0cyBhIGBgc2NvcGUn JykuICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBFbWFjcyBMaXNwIHVzZXMgYSBmb3JtIG9m Cit2YXJpYWJsZSBiaW5kaW5nIGNhbGxlZCBgYGR5bmFtaWMgYmluZGluZycnIGJ5IGRlZmF1 bHQuICBIb3dldmVyLCBpbgordGhpcyBtYW51YWwgd2UgZGlzY3VzcyB0aGUgcHJlZmVycmVk IGZvcm0gb2YgYmluZGluZywgY2FsbGVkIGBgbGV4aWNhbAorYmluZGluZycnLCB1bmxlc3Mg b3RoZXJ3aXNlIG5vdGVkIChpbiB0aGUgZnV0dXJlLCB0aGUgRW1hY3MKK21haW50YWluZXJz IHBsYW4gdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRvIGxleGljYWwgYmluZGluZykuICBJZiB5 b3UKK2hhdmUgcHJvZ3JhbW1lZCBpbiBvdGhlciBsYW5ndWFnZXMgYmVmb3JlLCB5b3UncmUg bGlrZWx5IGFscmVhZHkKK2ZhbWlsaWFyIHdpdGggaG93IGxleGljYWwgYmluZGluZyBiZWhh dmVzLgorCitJbiBvcmRlciB0byB1c2UgbGV4aWNhbCBiaW5kaW5nIGluIGEgcHJvZ3JhbSwg eW91IHNob3VsZCBhZGQgdGhpcyB0bwordGhlIGZpcnN0IGxpbmUgb2YgeW91ciBFbWFjcyBM aXNwIGZpbGU6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0K K0BlbmQgZXhhbXBsZQorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhy ZWZ7U2VsZWN0aW5nIExpc3AgRGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3Ag UmVmZXJlbmNlIE1hbnVhbH0uCisKK0FzIHdlIGRpc2N1c3NlZCBiZWZvcmUsIHVuZGVyIGxl eGljYWwgYmluZGluZywgQGNvZGV7bGV0fSBkZWZpbmVzIGEKK0BlbXBoe3BsYWNlfSBpbiB5 b3VyIGNvZGUgd2hlcmUgdGhlIHZhcmlhYmxlcyBoYXZlIHRoZWlyIG93biBsb2NhbAorbWVh bmluZy4gIFVuZGVyIGR5bmFtaWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6 IGluc3RlYWQsIHlvdQorYXJlIGRlZmluaW5nIGEgQGVtcGh7dGltZX0gaW4geW91ciBjb2Rl IHdoZW4gdGhlIHZhcmlhYmxlcyBoYXZlIHRoZWlyCitvd24gbG9jYWwgbWVhbmluZy4KKwor QW5vdGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSB3aGVuIHVzaW5nIGR5bmFt aWMgYmluZGluZyBpcwordGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0gdGhhdCBpcyB0 ZW1wb3JhcnkgYW5kIGxvY2FsLiAgVGhlIHZhbHVlcworc2V0IGJ5IEBjb2Rle2xldH0gYXJl IGF1dG9tYXRpY2FsbHkgdW5kb25lIHdoZW4gdGhlIEBjb2Rle2xldH0gaXMKK2ZpbmlzaGVk LiAgVGhlIHNldHRpbmcgb25seSBhZmZlY3RzIGV4cHJlc3Npb25zIHRoYXQgYXJlIGluc2lk ZSB0aGUKK2JvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgorCitJbiBzb21l IGNhc2VzLCBib3RoIGxleGljYWwgYW5kIGR5bmFtaWMgYmluZGluZyBiZWhhdmUgaWRlbnRp Y2FsbHkuCitIb3dldmVyLCBpbiBvdGhlciBjYXNlcywgdGhleSBjYW4gY2hhbmdlIHRoZSBt ZWFuaW5nIG9mIHlvdXIgcHJvZ3JhbS4KK0ZvciBleGFtcGxlLCB1bmRlciBsZXhpY2FsIGJp bmRpbmcsIGlmIHlvdSBjYWxsIGEgZnVuY3Rpb24gaW5zaWRlIG9mIGEKK0Bjb2Rle2xldH0g Ym9keSwgdGhhdCBmdW5jdGlvbidzIGJvZHkgd291bGQgYmUgdW5hYmxlIHRvIGBgc2VlJycg KG9yCittb2RpZnkpIHRoZSB2YWx1ZSBvZiBhIGxvY2FsIHZhcmlhYmxlIGZyb20gdGhlIEBj b2Rle2xldH0gZXhwcmVzc2lvbjoKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4aWNhbC1iaW5k aW5nOiB0IC0qLQorCisoc2V0cSB4IDApCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhz ZXRxIHggMSkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDEK K0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0hlcmUsIHRoZSByZXN1bHQgb2YgQGNvZGV7 KGdldHgpfSBpcyBAY29kZXsxfS4gIFVuZGVyIGxleGljYWwgYmluZGluZywKK0Bjb2Rle2dl dHh9IGRvZXNuJ3Qgc2VlIHRoZSB2YWx1ZSBmcm9tIG91ciBAY29kZXtsZXR9IGV4cHJlc3Np b24uCitUaGF0J3MgYmVjYXVzZSBpdCBoYXBwZW5zIGluIGEgZGlmZmVyZW50IEBlbXBoe3Bs YWNlfSB0aGFuIHRoZQorQGNvZGV7bGV0fSBib2R5LiAgSW5zdGVhZCwgQGNvZGV7Z2V0eH0g c2VlcyB0aGUgY3VycmVudCBnbG9iYWwgdmFsdWUKK29mIEBjb2Rle3h9LgorCitJZiB3ZSB1 c2UgZHluYW1pYyBiaW5kaW5nIGluc3RlYWQsIHRoZSBiZWhhdmlvciBpcyBkaWZmZXJlbnQ6 CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogbmlsIC0qLQorCisoc2V0 cSB4IDApCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisKKyhzZXRxIHggMSkKKworKGxldCAo KHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9IDIKK0BlbmQgZXhhbXBsZQorCitA bm9pZGVudAorTm93LCB0aGUgcmVzdWx0IG9mIEBjb2RleyhnZXR4KX0gaXMgQGNvZGV7Mn0h ICBUaGF0J3MgYmVjYXVzZSB1bmRlcgorZHluYW1pYyBiaW5kaW5nLCB3aGVuIEBjb2Rle2dl dHh9IGxvb2tzIGZvciB0aGUgdmFsdWUgb2YgQGNvZGV7eH0sIGl0CitzZWVzIHRoZSB2YWx1 ZSB3ZSBzZXQgaW4gb3VyIEBjb2Rle2xldH0gZXhwcmVzc2lvbi4gIEluIG90aGVyIHdvcmRz LAordGhlIGNhbGwgdG8gQGNvZGV7Z2V0eH0gaGFwcGVucyBkdXJpbmcgdGhlIEBlbXBoe3Rp bWV9IHdoZW4gb3VyCitAY29kZXtsZXR9IGV4cHJlc3Npb24gaXMgYWN0aXZlLgorCisoU29t ZSB2YXJpYWJsZXMgYXJlIGFsc28gYGBzcGVjaWFsJycsIGFuZCB0aGV5IGFyZSBhbHdheXMg ZHluYW1pY2FsbHkKK2JvdW5kIGV2ZW4gd2hlbiBAY29kZXtsZXhpY2FsLWJpbmRpbmd9IGlz IEBjb2Rle3R9LiAgQHhyZWZ7ZGVmdmFyLCAsCitJbml0aWFsaXppbmcgYSBWYXJpYWJsZSB3 aXRoIEBjb2Rle2RlZnZhcn19LikKKwogQG5vZGUgaWYKIEBzZWN0aW9uIFRoZSBAY29kZXtp Zn0gU3BlY2lhbCBGb3JtCiBAZmluZGV4IGlmCkBAIC05MTMwLDEyICs5MjI0LDE0IEBAIGRl ZnZhcgogZ2l2ZW4gYW4gaW5pdGlhbCB2YWx1ZSBieSB1c2luZyB0aGUgQGNvZGV7ZGVmdmFy fSBzcGVjaWFsIGZvcm0uICBUaGUKIG5hbWUgY29tZXMgZnJvbSBgYGRlZmluZSB2YXJpYWJs ZScnLgogCi1UaGUgQGNvZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0gaXMgc2ltaWxhciB0byBA Y29kZXtzZXRxfSBpbiB0aGF0IGl0IHNldHMKLXRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLiAg SXQgaXMgdW5saWtlIEBjb2Rle3NldHF9IGluIHR3byB3YXlzOiBmaXJzdCwKLWl0IG9ubHkg c2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlmIHRoZSB2YXJpYWJsZSBkb2VzIG5v dCBhbHJlYWR5Ci1oYXZlIGEgdmFsdWUuICBJZiB0aGUgdmFyaWFibGUgYWxyZWFkeSBoYXMg YSB2YWx1ZSwgQGNvZGV7ZGVmdmFyfSBkb2VzCi1ub3Qgb3ZlcnJpZGUgdGhlIGV4aXN0aW5n IHZhbHVlLiAgU2Vjb25kLCBAY29kZXtkZWZ2YXJ9IGhhcyBhCi1kb2N1bWVudGF0aW9uIHN0 cmluZy4KK1RoZSBAY29kZXtkZWZ2YXJ9IHNwZWNpYWwgZm9ybSBpcyBzaW1pbGFyIHRvIEBj b2Rle3NldHF9IGluIHRoYXQgaXQKK3NldHMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuICBJ dCBpcyB1bmxpa2UgQGNvZGV7c2V0cX0gaW4gdGhyZWUgd2F5czoKK2ZpcnN0LCBpdCBvbmx5 IHNldHMgdGhlIHZhbHVlIG9mIHRoZSB2YXJpYWJsZSBpZiB0aGUgdmFyaWFibGUgZG9lcyBu b3QKK2FscmVhZHkgaGF2ZSBhIHZhbHVlLiAgSWYgdGhlIHZhcmlhYmxlIGFscmVhZHkgaGFz IGEgdmFsdWUsCitAY29kZXtkZWZ2YXJ9IGRvZXMgbm90IG92ZXJyaWRlIHRoZSBleGlzdGlu ZyB2YWx1ZS4gIFNlY29uZCwgaXQgbWFya3MKK3RoZSB2YXJpYWJsZSBhcyBgYHNwZWNpYWwn JyBzbyB0aGF0IGl0IGlzIGFsd2F5cyBkeW5hbWljYWxseSBib3VuZCwKK2V2ZW4gd2hlbiBA Y29kZXtsZXhpY2FsLWJpbmRpbmd9IGlzIEBjb2Rle3R9IChAcHhyZWZ7SG93IGxldCBCaW5k cworVmFyaWFibGVzfSkuICBUaGlyZCwgQGNvZGV7ZGVmdmFyfSBoYXMgYSBkb2N1bWVudGF0 aW9uIHN0cmluZy4KIAogKFRoZXJlIGlzIGEgcmVsYXRlZCBtYWNybywgQGNvZGV7ZGVmY3Vz dG9tfSwgZGVzaWduZWQgZm9yIHZhcmlhYmxlcwogdGhhdCBwZW9wbGUgY3VzdG9taXplLiAg SXQgaGFzIG1vcmUgZmVhdHVyZXMgdGhhbiBAY29kZXtkZWZ2YXJ9LgotLSAKMi4yNS4xCgo= --------------kuo0BZ5UmJ4lqgUpf01c05tQ-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 24 02:06:38 2023 Received: (at 66756) by debbugs.gnu.org; 24 Nov 2023 07:06:38 +0000 Received: from localhost ([127.0.0.1]:35529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6QGs-0008Ef-1Y for submit@debbugs.gnu.org; Fri, 24 Nov 2023 02:06:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6QGp-0008ET-V3 for 66756@debbugs.gnu.org; Fri, 24 Nov 2023 02:06:36 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r6QGg-0004yx-6T; Fri, 24 Nov 2023 02:06:26 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=aIX3f18NZPFBqY/hWf5E3+eGhXaPo4UqIkFe3LGZNGc=; b=GCT23NZWYehO E2sKsqAdXtcMtBXomjqTDJ2cpr8+LPWmgqy2GqZmYp2ftqYsS3XZ0tvhmpR6T0mTlYKWzbVcKB/w+ cYMcrGAdvtxU7Z4cUGauoY1HboIlxzrcrhsMt//bYt3ur2CcP/PQ9tTDoCw3Mq+GTc2THRlg/eqe8 eCgkdlTSpVCLADFmtJdLLcYGDxkvbm4wko/A4bcCIhFR4WXedY+95JO7jsGE88KjuERSdSM0IPUdD VENBwU1xRSKWj5q4R1JH0A+rlebkukj6QL+WIcVBcan4CNA1i0yQNkLYVDaHBIYzcJEgH8Mqsr5dH zEIbocNOrq0QW7WDqXgJdg==; Date: Fri, 24 Nov 2023 09:06:11 +0200 Message-Id: <83jzq7fx5o.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> (message from Jim Porter on Thu, 23 Nov 2023 13:04:01 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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.3 (---) > Date: Thu, 23 Nov 2023 13:04:01 -0800 > Cc: eliz@gnu.org, 66756@debbugs.gnu.org > From: Jim Porter > > @@ -3601,25 +3602,22 @@ Prevent confusion > @cindex @samp{local variable} defined > @cindex @samp{variable, local}, defined > The @code{let} special form prevents confusion. @code{let} creates a > -name for a @dfn{local variable} that overshadows any use of the same > -name outside the @code{let} expression. This is like understanding > -that whenever your host refers to ``the house'', he means his house, not > -yours. (Symbols used in argument lists work the same way. > +name for a @dfn{local variable} that overrides any use of the same > +name outside the @code{let} expression (in computer science jargon, we > +call this ``binding'' the variable). This is like understanding that > +in your host's home, whenever he refers to ``the house'', he means his > +house, not yours. (Symbols used in argument lists work the same way. > @xref{defun, , The @code{defun} Macro}.) FWIW, I find the use of "overshadows" in the original text to be better than the "overrides" in the new text. This is partly because the meaning of "override" is not clear when talking about the use of a name, and partly because "override" is really inaccurate here. If we are not happy with the original text, then we need to find something else, IMO, perhaps a more detailed description. > +@node How let Binds Variables > +@subsection How @code{let} Binds Variables > +@cindex Lexical binding > +@cindex Binding, lexical > +@cindex Dynamic binding > +@cindex Binding, dynamic > + > +Emacs Lisp supports two different ways of binding variable names to > +their values. These ways affect the parts of your program where a > +particular binding is valid (in computer science jargon, we call these > +parts a ``scope''). For historical reasons, Emacs Lisp uses a form of > +variable binding called ``dynamic binding'' by default. However, in > +this manual we discuss the preferred form of binding, called ``lexical > +binding'', unless otherwise noted (in the future, the Emacs > +maintainers plan to change the default to lexical binding). If you > +have programmed in other languages before, you're likely already > +familiar with how lexical binding behaves. Markup note: each of the phrases quoted ``like this'' in this passage should actually be a @dfn. > +As we discussed before, under lexical binding, @code{let} defines a > +@emph{place} in your code where the variables have their own local > +meaning. Under dynamic binding, the rules are different: instead, you > +are defining a @emph{time} in your code when the variables have their > +own local meaning. If this wants to explain the difference between compile-time and run-time binding, then perhaps it should say so, instead of talking about the confusing "place where" vs "time when" the value changes? And if compile-time is problematic (Emacs being an interpreter), then we should find another description, one that doesn't use confusing concept of "place". IOW, I don't feel like reading this and the previous description of 'let' I understood the difference between lexical-binding and dynamic binding. One problem here is that, in an interpreted environment such as Emacs Lisp, there's no well-defined notion of "compile-time", and "time" is deterministically determined by "place". > +Another way to think about @code{let} when using dynamic binding is > +that it is like a @code{setq} that is temporary and local. The values > +set by @code{let} are automatically undone when the @code{let} is > +finished. The setting only affects expressions that are inside the > +bounds of the @code{let} expression. The immediate question I had when reading this is how is this different from the lexical-binding rules. Isn't the let-binding under lexical-binding also "temporary and local"? isn't the value also "undone when 'let' is finished? doesn't the setting only "affect the expressions that are inside the bounds of 'let'"? Can the text answer these questions? > +@example > +;;; -*- lexical-binding: t -*- > + > +(setq x 0) > + > +(defun getx () > + x) > + > +(setq x 1) > + > +(let ((x 2)) > + (getx)) > + @result{} 1 > +@end example > + > +@noindent > +Here, the result of @code{(getx)} is @code{1}. Under lexical binding, > +@code{getx} doesn't see the value from our @code{let} expression. > +That's because it happens in a different @emph{place} than the > +@code{let} body. Instead, @code{getx} sees the current global value > +of @code{x}. It is not really clear here what is meant by "place". The code shows 3 "places" where x gets a value: the two 'setq's and the 'let'. It is left unexplained why 'getx' sees the 2nd place, but not the other two. So something crucial is missing from this description. > +Now, the result of @code{(getx)} is @code{2}! That's because under > +dynamic binding, when @code{getx} looks for the value of @code{x}, it > +sees the value we set in our @code{let} expression. In other words, > +the call to @code{getx} happens during the @emph{time} when our > +@code{let} expression is active. The last sentence should be rephrased. As written, it states the obvious: 'getx' is called inside of 'let'. What it should say instead is something that would explain why this "during the *time*" part explains how dynamic binding works, perhaps talking about the last time a variable gets its value in the run-time sequence of events. The sentence before that should probably also rephrased accordingly. > -The @code{defvar} special form is similar to @code{setq} in that it sets > -the value of a variable. It is unlike @code{setq} in two ways: first, > -it only sets the value of the variable if the variable does not already > -have a value. If the variable already has a value, @code{defvar} does > -not override the existing value. Second, @code{defvar} has a > -documentation string. > +The @code{defvar} special form is similar to @code{setq} in that it > +sets the value of a variable. It is unlike @code{setq} in three ways: > +first, it only sets the value of the variable if the variable does not > +already have a value. If the variable already has a value, > +@code{defvar} does not override the existing value. Second, it marks > +the variable as ``special'' so that it is always dynamically bound, > +even when @code{lexical-binding} is @code{t} (@pxref{How let Binds > +Variables}). Third, @code{defvar} has a documentation string. I wonder whether we should make the "second" part be the "first" one here. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 24 04:01:46 2023 Received: (at 66756) by debbugs.gnu.org; 24 Nov 2023 09:01:46 +0000 Received: from localhost ([127.0.0.1]:35579 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6S4I-0002qx-90 for submit@debbugs.gnu.org; Fri, 24 Nov 2023 04:01:46 -0500 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]:50379) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6S4G-0002qk-Gu for 66756@debbugs.gnu.org; Fri, 24 Nov 2023 04:01:45 -0500 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1cf897c8de1so11642675ad.0 for <66756@debbugs.gnu.org>; Fri, 24 Nov 2023 01:01:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700816494; x=1701421294; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=sQEwkGG2voqhxzPPbPPKBVPzV+Ze1zUevsAmj+7MOD0=; b=hy5w66KFQk2OvWW4rdtacB7rhWUT/TSxj0ghdW42981soO8PgmsBSamLpXmd87Vlod FHg4VRKw2cQVYKC5Hd7f/kr4xcNr888l+VUTYTZjQM5VfIARctKCpWkj/Mf9RwBgajGe l7piixVMBIav8Y2ms/bV+1Ppc7VxnkN4mnpBobYBex3qzLz/DfMYUiHXlrLM9k31w9hw rtykwoHZgyfZKIxiwlIPhGpaysVBuHPspOsZVq9VSiDHncN63iiJUokQcqINY+0SP04S 4D01xwpvZlHGlefBP7F18Vt3TEOT9r5jd9bVh6qAAPDev+W2JxAjhiz4K51JV3UnDXdj kxbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700816494; x=1701421294; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sQEwkGG2voqhxzPPbPPKBVPzV+Ze1zUevsAmj+7MOD0=; b=G8SpGM1fUX1TMZQDHMUgoCwBgWqhAuKSs/zf79coCknfSR+gwTOm9kj2xeyutBI3Xj zPZrFgYuLdDLkKPxVM0m2GcXip62ABiFocKEFiBFvbNrDwmYVTkf1z51Msbw3g/ab+pw EIe2Zwlc3Q5hBjUd4CeBhd8402cpjYl37x0AAIFF7+q+JHAWFASBbNd6ODymrOxee8LZ 9LOpCjOF/vJxNoupZg4hSEYdaiyZbb1K4SXW2giQ359du7GdlU3oiTaxgNqswbuaF2oQ F4+wJya1JaTlQGbm+rq//5vQr71a9/TS86az584V1lAw58CiKXd24dXsbT+eYTqVTU4x 6SeQ== X-Gm-Message-State: AOJu0YxkS/wXvN92bPjBJF6xayf19NoDF7TP43FG0PftJOHQYK0dUynR eljp1oVcQTvJZgtTC2g+TIM= X-Google-Smtp-Source: AGHT+IHuGy2PAR6LUZFTnTeDHSWaUL6jNLMgwJAzgYUtFLFbwLTtQwWLTrP/mKUObDudTAIAWi7eCA== X-Received: by 2002:a17:90a:e7cd:b0:280:cd5f:bf90 with SMTP id kb13-20020a17090ae7cd00b00280cd5fbf90mr2048236pjb.23.1700816493873; Fri, 24 Nov 2023 01:01:33 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id bo21-20020a17090b091500b002809822545dsm2484401pjb.32.2023.11.24.01.01.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Nov 2023 01:01:33 -0800 (PST) Message-ID: <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> Date: Fri, 24 Nov 2023 01:01:33 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: Eli Zaretskii References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> From: Jim Porter In-Reply-To: <83jzq7fx5o.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) Thanks for taking a look, Eli. Just a few questions/thoughts on some of your comments. (I trimmed the others since I'll probably rework the other sections based on how we handle the second part below.) On 11/23/2023 11:06 PM, Eli Zaretskii wrote: > FWIW, I find the use of "overshadows" in the original text to be > better than the "overrides" in the new text. This is partly because > the meaning of "override" is not clear when talking about the use of a > name, and partly because "override" is really inaccurate here. If we > are not happy with the original text, then we need to find something > else, IMO, perhaps a more detailed description. Maybe we should just leave it as is for now? I don't think it's strictly necessary to change that sentence for the rest of the patch to make sense. We could always improve it in a follow up. (Or if someone has the perfect phrase to use here, I'll happily make the change. I just don't want the patch to get bogged down by changes that are merely *near* the parts I'm working on.) >> +As we discussed before, under lexical binding, @code{let} defines a >> +@emph{place} in your code where the variables have their own local >> +meaning. Under dynamic binding, the rules are different: instead, you >> +are defining a @emph{time} in your code when the variables have their >> +own local meaning. > > If this wants to explain the difference between compile-time and > run-time binding, then perhaps it should say so, instead of talking > about the confusing "place where" vs "time when" the value changes? > And if compile-time is problematic (Emacs being an interpreter), then > we should find another description, one that doesn't use confusing > concept of "place". I'm open to other wordings, but I wanted to describe what's going on without getting into the details of the interpreter or how it evaluates the code. The "place" is supposed to refer to the actual body of the 'let' form. That's described in the first part I changed. However, the "time" description could probably be expanded. Maybe we could contrast "within the body of the let expression" vs "during execution of the let expression"? That gets across the idea to me that the former is about compile-time ("body" refers to the actual Lisp form), while the latter is about run-time ("execution"). From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 24 06:41:27 2023 Received: (at 66756) by debbugs.gnu.org; 24 Nov 2023 11:41:27 +0000 Received: from localhost ([127.0.0.1]:35747 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6UYp-0007MN-AE for submit@debbugs.gnu.org; Fri, 24 Nov 2023 06:41:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6UYn-0007M5-H2 for 66756@debbugs.gnu.org; Fri, 24 Nov 2023 06:41:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r6UYd-0000zh-Lf; Fri, 24 Nov 2023 06:41:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=w5kjPvojXMgymUc892VK+K4+qsj5u5d9BE9Oj40R0cY=; b=CQ419JxcLv9w vSE56Fartc6MAoCnUkzRMzC96Hz/BJcU7qurjVQi6bD91Dldm897mM9+fB4zoH569XaovSH3ww9VR AH00ZCgDQQpmjVnz53qxP1ocm3bt5WrZfenVCGKrhXUAcRT/jWOtckOUhk73sbgCcS0aFO7bGkGl2 oolaLQI/yA7LXeNjLg1k7lpgXLgkW92i/r3BxRKXycQjKawdbqzv79TPrVliCg9jvMsHwSALvtn3o qF14Ds76ELuZsrwx4Y7xw/TD6a4phw5O5ti/uTqZ3saXXcMxgVqa5C5m7IpKNc55S+gzpP5wtFxHE BiAIEqE+w3De62BFCupjgw==; Date: Fri, 24 Nov 2023 13:41:04 +0200 Message-Id: <838r6nfkfj.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> (message from Jim Porter on Fri, 24 Nov 2023 01:01:33 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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.3 (---) > Date: Fri, 24 Nov 2023 01:01:33 -0800 > Cc: rms@gnu.org, 66756@debbugs.gnu.org > From: Jim Porter > > >> +As we discussed before, under lexical binding, @code{let} defines a > >> +@emph{place} in your code where the variables have their own local > >> +meaning. Under dynamic binding, the rules are different: instead, you > >> +are defining a @emph{time} in your code when the variables have their > >> +own local meaning. > > > > If this wants to explain the difference between compile-time and > > run-time binding, then perhaps it should say so, instead of talking > > about the confusing "place where" vs "time when" the value changes? > > And if compile-time is problematic (Emacs being an interpreter), then > > we should find another description, one that doesn't use confusing > > concept of "place". > > I'm open to other wordings, but I wanted to describe what's going on > without getting into the details of the interpreter or how it evaluates > the code. The "place" is supposed to refer to the actual body of the > 'let' form. That's described in the first part I changed. However, the > "time" description could probably be expanded. > > Maybe we could contrast "within the body of the let expression" vs > "during execution of the let expression"? That gets across the idea to > me that the former is about compile-time ("body" refers to the actual > Lisp form), while the latter is about run-time ("execution"). "During the execution" is probably a good idea, but "within the body of the expression" Does not seem to contrast with that, since it also holds for dynamic binding. I think the explanation should focus on the code of getx, not on the code in the 'let'-form's body. The reason for what happens under lexical binding is in getx. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 24 16:47:14 2023 Received: (at 66756) by debbugs.gnu.org; 24 Nov 2023 21:47:14 +0000 Received: from localhost ([127.0.0.1]:37376 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6e13-0006j8-W5 for submit@debbugs.gnu.org; Fri, 24 Nov 2023 16:47:14 -0500 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]:60736) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6e10-0006iY-FI for 66756@debbugs.gnu.org; Fri, 24 Nov 2023 16:47:12 -0500 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-5c230c79c0bso1575350a12.1 for <66756@debbugs.gnu.org>; Fri, 24 Nov 2023 13:47:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1700862419; x=1701467219; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=a6zAOx+qCEyMQGYAW6f9Hg2uqihl81t7Eo3o8T6ALXc=; b=dnUjW13CPKu3WwCFXrIW4woWW993exCw9NCMqTwx1X9cvReQRtvUP/ut81iEqMFm7W Pg6Q4tohd5BkuKMglVLimSr1iM9hy4pAPTxb4qxOvvrjyUxtp2wTJz4nV9UtSz/u80j6 BeHPj36KKMznqPe+r4Ku23K8Hm9cXEJxpaw+tXMNjg5/YMKLUdV71WrXpzH9qwO3P32z TkIbvB1VRD2ORLwa2tVeRlhilezrks8Sd5r5Js0unT3NdSdw1Dn2gtd6g7/l1ZEJtwb5 AprpxeCHT3Td50mMwHC2lRjLooYRBFfdHrWzjBVyuGKEDgiq+5FbBU6psvy6xdCJJpTA TdxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700862419; x=1701467219; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=a6zAOx+qCEyMQGYAW6f9Hg2uqihl81t7Eo3o8T6ALXc=; b=cJtSKd8G1t+iaP2UNyd0C8gIvdcNpalduI9WqhIs0sE55H7m7LrcRt8kbKh6pSH7SS TZ6BLPmupWMref2yRZ4B8UhcJUzXswdla3XxzRx5k10TMMEfQ2fMSzGQrylCP2N7E4Oc J/TuXdO+Qy5bpOf/+bYnZOCcYl18FsbmqtUk6/VnwtmRXqnSxSPChz9EZ/tWuTj6kgdB zbcK5iv6D+pTOuNKgW324KEAISjLrBb4BJszYKt3d5BGmEDZY4V4EZrhQVt0Xzc2z92a XK6WUANjUNbPadx4xJmpqKF9/tV/Bmp+DURvHDWhBSL/xLYYFSj5kV3t3S8eiCWSeHTx 46NQ== X-Gm-Message-State: AOJu0YzgsNBZ45cUwwbhUULx7iTjjkXY/6052GCR11WaCcEYHsWxJsx6 1wP7UBGq6vf0lc+jh/MY6FI= X-Google-Smtp-Source: AGHT+IHOT4zsAIvxRZJGIX1J9/gqUWJpB+V2IazNf7jAnzvxrnbSW/IANYppmhaXDzF945Ip+YoX9w== X-Received: by 2002:a05:6a20:431e:b0:189:2e8f:d34d with SMTP id h30-20020a056a20431e00b001892e8fd34dmr5420510pzk.42.1700862419068; Fri, 24 Nov 2023 13:46:59 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id nr6-20020a17090b240600b002856f69e40esm1368654pjb.0.2023.11.24.13.46.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Nov 2023 13:46:58 -0800 (PST) Content-Type: multipart/mixed; boundary="------------rkk3UQtC2aZQSv4MjDH8tZ0c" Message-ID: Date: Fri, 24 Nov 2023 13:46:55 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: Eli Zaretskii References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> From: Jim Porter In-Reply-To: <838r6nfkfj.fsf@gnu.org> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------rkk3UQtC2aZQSv4MjDH8tZ0c Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/24/2023 3:41 AM, Eli Zaretskii wrote: > "During the execution" is probably a good idea, but "within the body > of the expression" Does not seem to contrast with that, since it also > holds for dynamic binding. For "within the body of the expression", I wanted a phrase I could use near the beginning of this discussion, before we get into the differences of lexical vs dynamic binding. That way, I can refer back to it in the lexical/dynamic binding section and contrast it with the dynamic binding definition. I've added some more explanation to it though, so hopefully that helps clarify things. I also reworked the description of dynamic binding to talk about how each variable has a stack of bindings. Hopefully this is clear enough; I think it's more straightforward than the previous one, since it uses a stack of papers on one's desk as a visual analogy to help drive the point home. --------------rkk3UQtC2aZQSv4MjDH8tZ0c Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA5ODAwYzE0NThmZmEzMzc4MGMyNzYzZGJkMzAxM2VmYWQxYjJkYmQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihIb3cgbGV0IEJpbmRz IFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxleGljYWwK YW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25maWd1cmUgaXQpLgoo ZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZhcmlhYmxlcyBhcyBh bHdheXMKZHluYW1pY2FsbHktYm91bmQgKGJ1ZyM2Njc1NikuCi0tLQogZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxNTcgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh Li5lZGNiNDFlZDc5NiAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0 ZXgKQEAgLTM2MDIsMjQgKzM2MDMsMjIgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg QHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lh bCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCiBuYW1l IGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBv ZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBU aGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVm ZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4g IChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCi1A eHJlZntkZWZ1biwgLCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCi0KLUxvY2FsIHZhcmlh YmxlcyBjcmVhdGVkIGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2 YWx1ZQotQGVtcGh7b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRz ZWxmIChhbmQgd2l0aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXts ZXR9IGV4cHJlc3Npb24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBv dXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRo aW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0K LXRoYXQgaXMgdGVtcG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rl e2xldH0gYXJlCi1hdXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlz IGZpbmlzaGVkLiAgVGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0 IGFyZSBpbnNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4g IEluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcg b2YKLWEgc3ltYm9sIGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRo ZSBAY29kZXtsZXR9IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5n IGlzIGR5bmFtaWMsIG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBi aW5kaW5nIGlzIG5vdCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorbmFtZSBvdXRzaWRl IHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gKGluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29u LCB3ZQorY2FsbCB0aGlzIEBkZm57YmluZGluZ30gdGhlIHZhcmlhYmxlKS4gIFRoaXMgaXMg bGlrZSB1bmRlcnN0YW5kaW5nCit0aGF0IGluIHlvdXIgaG9zdCdzIGhvbWUsIHdoZW5ldmVy IGhlIHJlZmVycyB0byBgYHRoZSBob3VzZScnLCBoZQorbWVhbnMgaGlzIGhvdXNlLCBub3Qg eW91cnMuICAoU3ltYm9scyB1c2VkIGluIGFyZ3VtZW50IGxpc3RzIHdvcmsgdGhlCitzYW1l IHdheS4gIEB4cmVme2RlZnVuLCAsIFRoZSBAY29kZXtkZWZ1bn0gTWFjcm99LikKKworQW5v dGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMg YSBzcGVjaWFsCityZWdpb24gaW4geW91ciBjb2RlOiB3aXRoaW4gdGhlIGJvZHkgb2YgdGhl IEBjb2Rle2xldH0gZXhwcmVzc2lvbiwgdGhlCit2YXJpYWJsZXMgeW91J3ZlIG5hbWVkIGhh dmUgdGhlaXIgb3duIGxvY2FsIG1lYW5pbmcuICBPdXRzaWRlIG9mIHRoZQorQGNvZGV7bGV0 fSBib2R5LCB0aGV5IGhhdmUgb3RoZXIgbWVhbmluZ3MgKG9yIHRoZXkgbWF5IG5vdCBiZSBk ZWZpbmVkCithdCBhbGwpLiAgSW4gcHJhY3RpY2UsIHRoaXMgbWVhbnMgdGhhdCBpbnNpZGUg dGhlIEBjb2Rle2xldH0gYm9keSwKK2NhbGxpbmcgQGNvZGV7c2V0cX0gZm9yIGEgdmFyaWFi bGUgbmFtZWQgYnkgdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbgord2lsbCBzZXQgdGhlIHZh bHVlIG9mIHRoZSBAZW1waHtsb2NhbH0gdmFyaWFibGUgb2YgdGhhdCBuYW1lLgorSG93ZXZl ciwgb3V0c2lkZSBvZiB0aGUgQGNvZGV7bGV0fSBib2R5LCBjYWxsaW5nIEBjb2Rle3NldHF9 IGZvciBhCit2YXJpYWJsZSBuYW1lZCBieSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdp bGwgQGVtcGh7bm90fSBhZmZlY3QKK3RoYXQgbG9jYWwgdmFyaWFibGUuCiAKIEBjb2Rle2xl dH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25lIHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAog QGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlhYmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2 YWx1ZSwgZWl0aGVyIGEKQEAgLTM3NzksNiArMzc3OCwxMTQgQEAgVW5pbml0aWFsaXplZCBs ZXQgVmFyaWFibGVzCiBAc2FtcHslc30uKSAgVGhlIGZvdXIgdmFyaWFibGVzIGFzIGEgZ3Jv dXAgYXJlIHB1dCBpbnRvIGEgbGlzdCB0bwogZGVsaW1pdCB0aGVtIGZyb20gdGhlIGJvZHkg b2YgdGhlIEBjb2Rle2xldH0uCiAKK0Bub2RlIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzCitA c3Vic2VjdGlvbiBIb3cgQGNvZGV7bGV0fSBCaW5kcyBWYXJpYWJsZXMKK0BjaW5kZXggTGV4 aWNhbCBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGxleGljYWwKK0BjaW5kZXggRHluYW1p YyBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGR5bmFtaWMKKworRW1hY3MgTGlzcCBzdXBw b3J0cyB0d28gZGlmZmVyZW50IHdheXMgb2YgYmluZGluZyB2YXJpYWJsZSBuYW1lcyB0bwor dGhlaXIgdmFsdWVzLiAgVGhlc2Ugd2F5cyBhZmZlY3QgdGhlIHBhcnRzIG9mIHlvdXIgcHJv Z3JhbSB3aGVyZSBhCitwYXJ0aWN1bGFyIGJpbmRpbmcgaXMgdmFsaWQgKGluIGNvbXB1dGVy IHNjaWVuY2UgamFyZ29uLCB3ZSBjYWxsIHRoZXNlCitwYXJ0cyBhIEBkZm57c2NvcGV9KS4g IEZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIEVtYWNzIExpc3AgdXNlcyBhIGZvcm0KK29mIHZh cmlhYmxlIGJpbmRpbmcgY2FsbGVkIEBkZm57ZHluYW1pYyBiaW5kaW5nfSBieSBkZWZhdWx0 LiAgSG93ZXZlciwKK2luIHRoaXMgbWFudWFsIHdlIGRpc2N1c3MgdGhlIHByZWZlcnJlZCBm b3JtIG9mIGJpbmRpbmcsIGNhbGxlZAorQGRmbntsZXhpY2FsIGJpbmRpbmd9LCB1bmxlc3Mg b3RoZXJ3aXNlIG5vdGVkIChpbiB0aGUgZnV0dXJlLCB0aGUKK0VtYWNzIG1haW50YWluZXJz IHBsYW4gdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRvIGxleGljYWwgYmluZGluZykuICBJZgor eW91IGhhdmUgcHJvZ3JhbW1lZCBpbiBvdGhlciBsYW5ndWFnZXMgYmVmb3JlLCB5b3UncmUg bGlrZWx5IGFscmVhZHkKK2ZhbWlsaWFyIHdpdGggaG93IGxleGljYWwgYmluZGluZyBiZWhh dmVzLgorCitJbiBvcmRlciB0byB1c2UgbGV4aWNhbCBiaW5kaW5nIGluIGEgcHJvZ3JhbSwg eW91IHNob3VsZCBhZGQgdGhpcyB0bwordGhlIGZpcnN0IGxpbmUgb2YgeW91ciBFbWFjcyBM aXNwIGZpbGU6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0K K0BlbmQgZXhhbXBsZQorCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLCBAcHhy ZWZ7U2VsZWN0aW5nIExpc3AgRGlhbGVjdCwgLCAsCitlbGlzcCwgVGhlIEVtYWNzIExpc3Ag UmVmZXJlbmNlIE1hbnVhbH0uCisKK0FzIHdlIGRpc2N1c3NlZCBiZWZvcmUsIHdoZW4geW91 IGNyZWF0ZSBsb2NhbCB2YXJpYWJsZXMgd2l0aAorQGNvZGV7bGV0fSB1bmRlciBsZXhpY2Fs IGJpbmRpbmcsIHRob3NlIHZhcmlhYmxlcyBhcmUgdmFsaWQgb25seQord2l0aGluIHRoZSBi b2R5IG9mIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBJbiBvdGhlciBwYXJ0cyBvZiB5 b3VyCitjb2RlLCB0aGV5IGhhdmUgb3RoZXIgbWVhbmluZ3MsIHNvIGlmIHlvdSBjYWxsIGEg ZnVuY3Rpb24gaW4gdGhlCitAY29kZXtsZXR9IGJvZHksIHRoYXQgZnVuY3Rpb24gd291bGQg YmUgdW5hYmxlIHRvIGBgc2VlJycgdGhlIGxvY2FsCit2YXJpYWJsZXMgeW91J3ZlIGNyZWF0 ZWQuCisKK1VuZGVyIGR5bmFtaWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6 IGluc3RlYWQsIHdoZW4geW91IHVzZQorQGNvZGV7bGV0fSwgdGhlIGxvY2FsIHZhcmlhYmxl cyB5b3UndmUgY3JlYXRlZCBhcmUgdmFsaWQgZHVyaW5nCitleGVjdXRpb24gb2YgdGhlIGxl dCBleHByZXNzaW9uLiAgVGhpcyBtZWFucyB0aGF0LCBpZiB5b3VyIEBjb2Rle2xldH0KK2V4 cHJlc3Npb24gY2FsbHMgYSBmdW5jdGlvbiwgdGhhdCBmdW5jdGlvbiBjYW4gc2VlIChhbmQg bW9kaWZ5KSB0aGVzZQorbG9jYWwgdmFyaWFibGVzLgorCitBbm90aGVyIHdheSB0byB0aGlu ayBhYm91dCBAY29kZXtsZXR9IHdoZW4gdXNpbmcgZHluYW1pYyBiaW5kaW5nIGlzCit0aGF0 IGV2ZXJ5IHZhcmlhYmxlIG5hbWUgaGFzIGEgYGBzdGFjaycnIG9mIGJpbmRpbmdzLCBhbmQg d2hlbmV2ZXIgeW91Cit1c2UgdGhhdCB2YXJpYWJsZSdzIG5hbWUsIGl0IHJlZmVycyB0byB0 aGUgYmluZGluZyBvbiB0aGUgdG9wIG9mIHRoZQorc3RhY2suICAoWW91IGNhbiBpbWFnaW5l IHRoaXMgbGlrZSBhIHN0YWNrIG9mIHBhcGVycyBvbiB5b3VyIGRlc2sgd2l0aAordGhlIHZh bHVlcyB3cml0dGVuIG9uIHRoZW0uKSAgV2hlbiB5b3UgYmluZCBhIHZhcmlhYmxlIHdpdGgK K0Bjb2Rle2xldH0sIGl0IHB1dHMgdGhlIG5ldyBiaW5kaW5nIHlvdSd2ZSBzcGVjaWZpZWQg b24gdGhlIHRvcCBvZiB0aGUKK3N0YWNrLCBhbmQgdGhlbiBleGVjdXRlcyB0aGUgQGNvZGV7 bGV0fSBib2R5LiAgT25jZSB0aGUgQGNvZGV7bGV0fQorYm9keSBmaW5pc2hlcywgaXQgdGFr ZXMgdGhhdCBiaW5kaW5nIG9mZiBvZiB0aGUgc3RhY2ssIHJldmVhbGluZyB0aGUKK29uZSBp dCBoYWQgKGlmIGFueSkgYmVmb3JlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCisKK0lu IHNvbWUgY2FzZXMsIGJvdGggbGV4aWNhbCBhbmQgZHluYW1pYyBiaW5kaW5nIGJlaGF2ZSBp ZGVudGljYWxseS4KK0hvd2V2ZXIsIGluIG90aGVyIGNhc2VzLCB0aGV5IGNhbiBjaGFuZ2Ug dGhlIG1lYW5pbmcgb2YgeW91ciBwcm9ncmFtLgorRm9yIGV4YW1wbGUsIHNlZSB3aGF0IGhh cHBlbnMgaW4gdGhpcyBjb2RlIHVuZGVyIGxleGljYWwgYmluZGluZzoKKworQGV4YW1wbGUK Kzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0IC0qLQorCisoc2V0cSB4IDApCisKKyhkZWZ1 biBnZXR4ICgpCisgIHgpCisKKyhzZXRxIHggMSkKKworKGxldCAoKHggMikpCisgIChnZXR4 KSkKKyAgICAgQHJlc3VsdHt9IDEKK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK0hlcmUs IHRoZSByZXN1bHQgb2YgQGNvZGV7KGdldHgpfSBpcyBAY29kZXsxfS4gIFVuZGVyIGxleGlj YWwgYmluZGluZywKK0Bjb2Rle2dldHh9IGRvZXNuJ3Qgc2VlIHRoZSB2YWx1ZSBmcm9tIG91 ciBAY29kZXtsZXR9IGV4cHJlc3Npb24uCitUaGF0J3MgYmVjYXVzZSB0aGUgYm9keSBvZiBA Y29kZXtnZXR4fSBpcyBvdXRzaWRlIG9mIHRoZSBib2R5IG9mIG91cgorQGNvZGV7bGV0fSBl eHByZXNzaW9uLiAgSW5zdGVhZCwgQGNvZGV7Z2V0eH0gbG9va3MgZm9yIEBjb2Rle3h9Citl bHNld2hlcmUsIGFuZCBmaW5kcyBpdCBhdCB0aGUgZ2xvYmFsIHNjb3BlIG9mIG91ciBjb2Rl LiAgV2hlbgorZXhlY3V0aW5nIEBjb2Rle2dldHh9LCB0aGUgY3VycmVudCBnbG9iYWwgdmFs dWUgb2YgQGNvZGV7eH0gaXMKK0Bjb2RlezF9LCBzbyB0aGF0J3Mgd2hhdCBAY29kZXtnZXR4 fSByZXR1cm5zLgorCitJZiB3ZSB1c2UgZHluYW1pYyBiaW5kaW5nIGluc3RlYWQsIHRoZSBi ZWhhdmlvciBpcyBkaWZmZXJlbnQ6CisKK0BleGFtcGxlCis7OzsgLSotIGxleGljYWwtYmlu ZGluZzogbmlsIC0qLQorCisoc2V0cSB4IDApCisKKyhkZWZ1biBnZXR4ICgpCisgIHgpCisK KyhzZXRxIHggMSkKKworKGxldCAoKHggMikpCisgIChnZXR4KSkKKyAgICAgQHJlc3VsdHt9 IDIKK0BlbmQgZXhhbXBsZQorCitAbm9pZGVudAorTm93LCB0aGUgcmVzdWx0IG9mIEBjb2Rl eyhnZXR4KX0gaXMgQGNvZGV7Mn0hICBUaGF0J3MgYmVjYXVzZSB1bmRlcgorZHluYW1pYyBi aW5kaW5nLCB3aGVuIGV4ZWN1dGluZyBAY29kZXtnZXR4fSwgdGhlIGN1cnJlbnQgYmluZGlu ZyBmb3IKK0Bjb2Rle3h9IGlzIHRoZSBvbmUgZnJvbSBvdXIgQGNvZGV7bGV0fSBiaW5kaW5n LiAgVGhpcyB0aW1lLAorQGNvZGV7Z2V0eH0gZG9lc24ndCBzZWUgdGhlIGdsb2JhbCB2YWx1 ZSBmb3IgQGNvZGV7eH0sIHNpbmNlIGl0cworYmluZGluZyBpcyBiZWxvdyB0aGUgb25lIGZy b20gb3VyIEBjb2Rle2xldH0gZXhwcmVzc2lvbiBpbiB0aGUgc3RhY2sKK29mIGJpbmRpbmdz LgorCisoU29tZSB2YXJpYWJsZXMgYXJlIGFsc28gYGBzcGVjaWFsJycsIGFuZCB0aGV5IGFy ZSBhbHdheXMgZHluYW1pY2FsbHkKK2JvdW5kIGV2ZW4gd2hlbiBAY29kZXtsZXhpY2FsLWJp bmRpbmd9IGlzIEBjb2Rle3R9LiAgQHhyZWZ7ZGVmdmFyLCAsCitJbml0aWFsaXppbmcgYSBW YXJpYWJsZSB3aXRoIEBjb2Rle2RlZnZhcn19LikKKwogQG5vZGUgaWYKIEBzZWN0aW9uIFRo ZSBAY29kZXtpZn0gU3BlY2lhbCBGb3JtCiBAZmluZGV4IGlmCkBAIC05MTMwLDEyICs5MjM3 LDE0IEBAIGRlZnZhcgogZ2l2ZW4gYW4gaW5pdGlhbCB2YWx1ZSBieSB1c2luZyB0aGUgQGNv ZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0uICBUaGUKIG5hbWUgY29tZXMgZnJvbSBgYGRlZmlu ZSB2YXJpYWJsZScnLgogCi1UaGUgQGNvZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0gaXMgc2lt aWxhciB0byBAY29kZXtzZXRxfSBpbiB0aGF0IGl0IHNldHMKLXRoZSB2YWx1ZSBvZiBhIHZh cmlhYmxlLiAgSXQgaXMgdW5saWtlIEBjb2Rle3NldHF9IGluIHR3byB3YXlzOiBmaXJzdCwK LWl0IG9ubHkgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlmIHRoZSB2YXJpYWJs ZSBkb2VzIG5vdCBhbHJlYWR5Ci1oYXZlIGEgdmFsdWUuICBJZiB0aGUgdmFyaWFibGUgYWxy ZWFkeSBoYXMgYSB2YWx1ZSwgQGNvZGV7ZGVmdmFyfSBkb2VzCi1ub3Qgb3ZlcnJpZGUgdGhl IGV4aXN0aW5nIHZhbHVlLiAgU2Vjb25kLCBAY29kZXtkZWZ2YXJ9IGhhcyBhCi1kb2N1bWVu dGF0aW9uIHN0cmluZy4KK1RoZSBAY29kZXtkZWZ2YXJ9IHNwZWNpYWwgZm9ybSBpcyBzaW1p bGFyIHRvIEBjb2Rle3NldHF9IGluIHRoYXQgaXQKK3NldHMgdGhlIHZhbHVlIG9mIGEgdmFy aWFibGUuICBJdCBpcyB1bmxpa2UgQGNvZGV7c2V0cX0gaW4gdGhyZWUgd2F5czoKK2ZpcnN0 LCBpdCBtYXJrcyB0aGUgdmFyaWFibGUgYXMgYGBzcGVjaWFsJycgc28gdGhhdCBpdCBpcyBh bHdheXMKK2R5bmFtaWNhbGx5IGJvdW5kLCBldmVuIHdoZW4gQGNvZGV7bGV4aWNhbC1iaW5k aW5nfSBpcyBAY29kZXt0fQorKEBweHJlZntIb3cgbGV0IEJpbmRzIFZhcmlhYmxlc30pLiAg U2Vjb25kLCBpdCBvbmx5IHNldHMgdGhlIHZhbHVlIG9mCit0aGUgdmFyaWFibGUgaWYgdGhl IHZhcmlhYmxlIGRvZXMgbm90IGFscmVhZHkgaGF2ZSBhIHZhbHVlLiAgSWYgdGhlCit2YXJp YWJsZSBhbHJlYWR5IGhhcyBhIHZhbHVlLCBAY29kZXtkZWZ2YXJ9IGRvZXMgbm90IG92ZXJy aWRlIHRoZQorZXhpc3RpbmcgdmFsdWUuICBUaGlyZCwgQGNvZGV7ZGVmdmFyfSBoYXMgYSBk b2N1bWVudGF0aW9uIHN0cmluZy4KIAogKFRoZXJlIGlzIGEgcmVsYXRlZCBtYWNybywgQGNv ZGV7ZGVmY3VzdG9tfSwgZGVzaWduZWQgZm9yIHZhcmlhYmxlcwogdGhhdCBwZW9wbGUgY3Vz dG9taXplLiAgSXQgaGFzIG1vcmUgZmVhdHVyZXMgdGhhbiBAY29kZXtkZWZ2YXJ9LgotLSAK Mi4yNS4xCgo= --------------rkk3UQtC2aZQSv4MjDH8tZ0c-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 25 02:52:18 2023 Received: (at 66756) by debbugs.gnu.org; 25 Nov 2023 07:52:18 +0000 Received: from localhost ([127.0.0.1]:37693 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6nSb-0006vG-Es for submit@debbugs.gnu.org; Sat, 25 Nov 2023 02:52:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50894) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r6nSX-0006v1-6O for 66756@debbugs.gnu.org; Sat, 25 Nov 2023 02:52:15 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r6nSL-0005ye-IR; Sat, 25 Nov 2023 02:52:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=fn8uZPNGYjVKr5Z9Gykm3TWQi55C/CW9G0e/AzHlg68=; b=kI5JO8kuJPmK xWlZdNhv90Dfy4nt0ZXh3XJoc6nJbtO+uVJ6hm74OaHh76Tvp8hyXPS5jSZ3I5Rg76OqvsHIPxEvX zkA/TO+OAzM8sqvme0sMK+Rj+lzwnusZZK2Rga2PydBJa7moHTx0z21NLsKVoii1RJllQfOXwF51q PGFW0BR3uCFStO/ibGxp/k6uRMYefcNoZ0/PBbHpuNFpCJaxxRTEt3c6gRoj9/BJzRIoAxC3HBJR9 OYtWJNH/jVMiaEZEMoPfa7J/ImpKuFeW40eSWtfvQusIpz7PDgYrIyWc96P0yvfuVlmDTzC8TbZrl qP/yxGErvT6tO1crEVmZ4A==; Date: Sat, 25 Nov 2023 09:51:48 +0200 Message-Id: <83jzq6e0dn.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: (message from Jim Porter on Fri, 24 Nov 2023 13:46:55 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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.3 (---) > Date: Fri, 24 Nov 2023 13:46:55 -0800 > Cc: rms@gnu.org, 66756@debbugs.gnu.org > From: Jim Porter > > +Another way to think about @code{let} is that it defines a special > +region in your code: within the body of the @code{let} expression, the > +variables you've named have their own local meaning. Outside of the > +@code{let} body, they have other meanings (or they may not be defined > +at all). In practice, this means that inside the @code{let} body, > +calling @code{setq} for a variable named by the @code{let} expression > +will set the value of the @emph{local} variable of that name. > +However, outside of the @code{let} body, calling @code{setq} for a > +variable named by the @code{let} expression will @emph{not} affect > +that local variable. I think something is missing from this description: "inside the 'let' body" is ambiguous when the body calls functions. The text should explain that the body of functions called from 'let' is NOT considered to be "inside the 'let' body". This crucial point is hinted or explained later, but it must be explained right here at the start. > +As we discussed before, when you create local variables with > +@code{let} under lexical binding, those variables are valid only > +within the body of the @code{let} expression. In other parts of your > +code, they have other meanings, so if you call a function in the > +@code{let} body, that function would be unable to ``see'' the local > +variables you've created. First, AFAIU the last sentence is correct only if the function's definition is outside of the 'let'. And second, this crucial dependence on where the function is defined is very important for understanding _why_ the function won't see the value bound by 'let'. So it must be in the text, IMO. > +Under dynamic binding, the rules are different: instead, when you use > +@code{let}, the local variables you've created are valid during > +execution of the let expression. This means that, if your @code{let} > +expression calls a function, that function can see (and modify) these > +local variables. This should say "...regardless of where the function is defined." I would even add that the above is true even for functions defined on other Lisp files. > +Another way to think about @code{let} when using dynamic binding is > +that every variable name has a ``stack'' of bindings, and whenever you > +use that variable's name, it refers to the binding on the top of the > +stack. (You can imagine this like a stack of papers on your desk with > +the values written on them.) When you bind a variable with > +@code{let}, it puts the new binding you've specified on the top of the > +stack, and then executes the @code{let} body. Once the @code{let} > +body finishes, it takes that binding off of the stack, revealing the > +one it had (if any) before the @code{let} expression. This should IMO tell that this "binding stack" is _global_, i.e. it is seen by every function regardless of where and how it was defined. > +Here, the result of @code{(getx)} is @code{1}. Under lexical binding, > +@code{getx} doesn't see the value from our @code{let} expression. > +That's because the body of @code{getx} is outside of the body of our > +@code{let} expression. The last sentence is critical for understanding of the issue, and should be at the very beginning of the 'let' description (and repeated here, of course). > Instead, @code{getx} looks for @code{x} > +elsewhere, and finds it at the global scope of our code. This "looks for and finds" is problematic, IMO, because it is not clear why would it "find" the value of x set by 'setq', but not the value of x set by 'let'. IOW, the mechanism of "looking and finding" remains mysterious and no intuitive description is provided to help understanding it. Can we provide such a description? If you cannot think about one, how about explaining the internal workings of this "looking and finding" as it is implemented, and we could then take it from there and express the idea in less technical ways. > +Now, the result of @code{(getx)} is @code{2}! That's because under > +dynamic binding, when executing @code{getx}, the current binding for > +@code{x} is the one from our @code{let} binding. This time, > +@code{getx} doesn't see the global value for @code{x}, since its > +binding is below the one from our @code{let} expression in the stack > +of bindings. This should mention the stack and its top earlier, where it talks about "the current binding". Thanks. From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 30 16:04:11 2023 Received: (at 66756) by debbugs.gnu.org; 30 Nov 2023 21:04:11 +0000 Received: from localhost ([127.0.0.1]:54569 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8oCg-0002Wk-4r for submit@debbugs.gnu.org; Thu, 30 Nov 2023 16:04:11 -0500 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:45496) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8oCe-0002WU-Mq for 66756@debbugs.gnu.org; Thu, 30 Nov 2023 16:04:09 -0500 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-6cdd28aa7f8so1392349b3a.3 for <66756@debbugs.gnu.org>; Thu, 30 Nov 2023 13:04:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701378234; x=1701983034; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=VjmvX6CpkixRO7gTTwlVgrMOzLUcIG/HYXDXAOstDNY=; b=DOoEOSvfXm/RVgshfSORXlGj2zAt5iCQxv92fcfphwd8THTR6W4/SbK4uS3yb/0hbL VDc54tWTF3e5YGIemsjuGYgpErK9zx5Qx1ZHjxkRf9ARKYw/RWAMV9YN15OBn0gF5kHU QuzbgPvWDira4cOwdXL8ndXIrn1Mq4w/HGvvupvOTSgcB8ZRhhN/a1Ifpft8MLGjqVOd R1/TZVv/YskOsI0oi9V0rPLU/goc8uAPR4Ebs5m1IuHwM5nmcOaxR+cS1Q+WOKfb4d6q CUQ0+d14H1NdJc44fCitLXJ2rGohrWyQOwWoOari9WyC2brzko+JRFnVgLghT5dQSlGt pEZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701378234; x=1701983034; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=VjmvX6CpkixRO7gTTwlVgrMOzLUcIG/HYXDXAOstDNY=; b=cmZOfZEpIvCNzfryR69tnDCJvR/s5uPhGtSrJfpVcZZWrSDFQcMA96DSvuGxtuvgAx 2COkB4RgHHsaDHaL2xjkNIZNNc0tERj53fneAxowpWPLXd2tubqKro6nhLTXCj0+yEw0 BAs4id50ZgkZHLIMSrFt/mOQqaGXq9J2JNc9YdI8WTediJqQnTCoYAfyp7VFdghkKhRP tGL/hUmLlcmEMq7zfSQtGzt0letdUncl14X+fdLBYie8eEKbDGXcOn6AkISSDVmWIYR5 fx7RIMgXMX9J/mtabZR4MfXG3SyJJt/zWz/NYHmU9XjwezPUG5Za5kbRHmrhsYyuC2Bp wFiw== X-Gm-Message-State: AOJu0YwOrR/NYOgIBOdkAJ198bnvB82NwWdS25tJ7sMBF/1s+H705pTC 9gVBqshbU6IKgOxG2d87JYU= X-Google-Smtp-Source: AGHT+IFMaGUrgYSxB9Abf/JtWqr/3RU58eoeihx/HmlXMGSVryfZV+EcYsMh0jwN6vDh83KkzqVbTg== X-Received: by 2002:a17:902:d2cb:b0:1cf:ee3a:2398 with SMTP id n11-20020a170902d2cb00b001cfee3a2398mr13592039plc.42.1701378234184; Thu, 30 Nov 2023 13:03:54 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id h10-20020a170902748a00b001cfb99d8b82sm1842342pll.136.2023.11.30.13.03.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Nov 2023 13:03:53 -0800 (PST) Content-Type: multipart/mixed; boundary="------------lfRemlczGkaSGJ0whIlnXGXz" Message-ID: <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> Date: Thu, 30 Nov 2023 13:03:52 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US To: Eli Zaretskii References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> From: Jim Porter In-Reply-To: <83jzq6e0dn.fsf@gnu.org> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: rms@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------lfRemlczGkaSGJ0whIlnXGXz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/24/2023 11:51 PM, Eli Zaretskii wrote: > I think something is missing from this description: "inside the 'let' > body" is ambiguous when the body calls functions. The text should > explain that the body of functions called from 'let' is NOT considered > to be "inside the 'let' body". This crucial point is hinted or > explained later, but it must be explained right here at the start. I added a short parenthetical here to explain this point: "(such as when calling a function that was defined elsewhere)". I intentionally kept this brief though, since this introductory section is primarily about introducing the basics of 'let' and why you'd use it. Once we've shown readers *how* to use 'let', then we return to a more detailed discussion of how the binding works in the last section. >> +As we discussed before, when you create local variables with >> +@code{let} under lexical binding, those variables are valid only >> +within the body of the @code{let} expression. In other parts of your >> +code, they have other meanings, so if you call a function in the >> +@code{let} body, that function would be unable to ``see'' the local >> +variables you've created. > > First, AFAIU the last sentence is correct only if the function's > definition is outside of the 'let'. And second, this crucial > dependence on where the function is defined is very important for > understanding _why_ the function won't see the value bound by 'let'. > So it must be in the text, IMO. I've expanded upon this and added a description of what happens when you call a function defined within a 'let' body. >> +Under dynamic binding, the rules are different: instead, when you use >> +@code{let}, the local variables you've created are valid during >> +execution of the let expression. This means that, if your @code{let} >> +expression calls a function, that function can see (and modify) these >> +local variables. > > This should say "...regardless of where the function is defined." I > would even add that the above is true even for functions defined on > other Lisp files. Done. > This should IMO tell that this "binding stack" is _global_, i.e. it is > seen by every function regardless of where and how it was defined. Done. >> +Here, the result of @code{(getx)} is @code{1}. Under lexical binding, >> +@code{getx} doesn't see the value from our @code{let} expression. >> +That's because the body of @code{getx} is outside of the body of our >> +@code{let} expression. > > The last sentence is critical for understanding of the issue, and > should be at the very beginning of the 'let' description (and repeated > here, of course). Done. >> Instead, @code{getx} looks for @code{x} >> +elsewhere, and finds it at the global scope of our code. > > This "looks for and finds" is problematic, IMO, because it is not > clear why would it "find" the value of x set by 'setq', but not the > value of x set by 'let'. IOW, the mechanism of "looking and finding" > remains mysterious and no intuitive description is provided to help > understanding it. Can we provide such a description? If you cannot > think about one, how about explaining the internal workings of this > "looking and finding" as it is implemented, and we could then take it > from there and express the idea in less technical ways. I've reworded this to hopefully be more explicit that, since 'getx' is defined outside of any 'let' body, it will look for 'x' at global scope. Combined with the previous, more-general discussion of how 'let' and 'defun' interact, I think (hope) this should cover things. >> +Now, the result of @code{(getx)} is @code{2}! That's because under >> +dynamic binding, when executing @code{getx}, the current binding for >> +@code{x} is the one from our @code{let} binding. This time, >> +@code{getx} doesn't see the global value for @code{x}, since its >> +binding is below the one from our @code{let} expression in the stack >> +of bindings. > > This should mention the stack and its top earlier, where it talks > about "the current binding". Done. --------------lfRemlczGkaSGJ0whIlnXGXz Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4YzQxNmI3NTJhODdiYzkyMjZlZWFhZDAzOTlhMzY3OTk4NTgyNWE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihIb3cgbGV0IEJpbmRz IFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxleGljYWwK YW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25maWd1cmUgaXQpLgoo ZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZhcmlhYmxlcyBhcyBh bHdheXMKZHluYW1pY2FsbHktYm91bmQgKGJ1ZyM2Njc1NikuCi0tLQogZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxNjEgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzNyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh Li5jYWY5YTNjODc2YyAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0 ZXgKQEAgLTM2MDIsMjQgKzM2MDMsMjIgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg QHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lh bCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCiBuYW1l IGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBv ZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBU aGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVm ZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4g IChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCi1A eHJlZntkZWZ1biwgLCBUaGUgQGNvZGV7ZGVmdW59IE1hY3JvfS4pCi0KLUxvY2FsIHZhcmlh YmxlcyBjcmVhdGVkIGJ5IGEgQGNvZGV7bGV0fSBleHByZXNzaW9uIHJldGFpbiB0aGVpciB2 YWx1ZQotQGVtcGh7b25seX0gd2l0aGluIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gaXRz ZWxmIChhbmQgd2l0aGluCi1leHByZXNzaW9ucyBjYWxsZWQgd2l0aGluIHRoZSBAY29kZXts ZXR9IGV4cHJlc3Npb24pOyB0aGUgbG9jYWwKLXZhcmlhYmxlcyBoYXZlIG5vIGVmZmVjdCBv dXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCi0KLUFub3RoZXIgd2F5IHRvIHRo aW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBpcyBsaWtlIGEgQGNvZGV7c2V0cX0K LXRoYXQgaXMgdGVtcG9yYXJ5IGFuZCBsb2NhbC4gIFRoZSB2YWx1ZXMgc2V0IGJ5IEBjb2Rl e2xldH0gYXJlCi1hdXRvbWF0aWNhbGx5IHVuZG9uZSB3aGVuIHRoZSBAY29kZXtsZXR9IGlz IGZpbmlzaGVkLiAgVGhlIHNldHRpbmcKLW9ubHkgYWZmZWN0cyBleHByZXNzaW9ucyB0aGF0 IGFyZSBpbnNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgQGNvZGV7bGV0fQotZXhwcmVzc2lvbi4g IEluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29uLCB3ZSB3b3VsZCBzYXkgdGhlIGJpbmRpbmcg b2YKLWEgc3ltYm9sIGlzIHZpc2libGUgb25seSBpbiBmdW5jdGlvbnMgY2FsbGVkIGluIHRo ZSBAY29kZXtsZXR9IGZvcm07Ci1pbiBFbWFjcyBMaXNwLCB0aGUgZGVmYXVsdCBzY29waW5n IGlzIGR5bmFtaWMsIG5vdCBsZXhpY2FsLiAgKFRoZQotbm9uLWRlZmF1bHQgbGV4aWNhbCBi aW5kaW5nIGlzIG5vdCBkaXNjdXNzZWQgaW4gdGhpcyBtYW51YWwuKQorbmFtZSBvdXRzaWRl IHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24gKGluIGNvbXB1dGVyIHNjaWVuY2UgamFyZ29u LCB3ZQorY2FsbCB0aGlzIEBkZm57YmluZGluZ30gdGhlIHZhcmlhYmxlKS4gIFRoaXMgaXMg bGlrZSB1bmRlcnN0YW5kaW5nCit0aGF0IGluIHlvdXIgaG9zdCdzIGhvbWUsIHdoZW5ldmVy IGhlIHJlZmVycyB0byBgYHRoZSBob3VzZScnLCBoZQorbWVhbnMgaGlzIGhvdXNlLCBub3Qg eW91cnMuICAoU3ltYm9scyB1c2VkIGluIGFyZ3VtZW50IGxpc3RzIHdvcmsgdGhlCitzYW1l IHdheS4gIEB4cmVme2RlZnVuLCAsIFRoZSBAY29kZXtkZWZ1bn0gTWFjcm99LikKKworQW5v dGhlciB3YXkgdG8gdGhpbmsgYWJvdXQgQGNvZGV7bGV0fSBpcyB0aGF0IGl0IGRlZmluZXMg YSBzcGVjaWFsCityZWdpb24gaW4geW91ciBjb2RlOiB3aXRoaW4gdGhlIGJvZHkgb2YgdGhl IEBjb2Rle2xldH0gZXhwcmVzc2lvbiwgdGhlCit2YXJpYWJsZXMgeW91J3ZlIG5hbWVkIGhh dmUgdGhlaXIgb3duIGxvY2FsIG1lYW5pbmcuICBPdXRzaWRlIG9mIHRoZQorQGNvZGV7bGV0 fSBib2R5LCB0aGV5IGhhdmUgb3RoZXIgbWVhbmluZ3MgKG9yIHRoZXkgbWF5IG5vdCBiZSBk ZWZpbmVkCithdCBhbGwpLiAgVGhpcyBtZWFucyB0aGF0IGluc2lkZSB0aGUgQGNvZGV7bGV0 fSBib2R5LCBjYWxsaW5nCitAY29kZXtzZXRxfSBmb3IgYSB2YXJpYWJsZSBuYW1lZCBieSB0 aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uIHdpbGwgc2V0Cit0aGUgdmFsdWUgb2YgdGhlIEBl bXBoe2xvY2FsfSB2YXJpYWJsZSBvZiB0aGF0IG5hbWUuICBIb3dldmVyLCBvdXRzaWRlCitv ZiB0aGUgQGNvZGV7bGV0fSBib2R5IChzdWNoIGFzIHdoZW4gY2FsbGluZyBhIGZ1bmN0aW9u IHRoYXQgd2FzCitkZWZpbmVkIGVsc2V3aGVyZSksIGNhbGxpbmcgQGNvZGV7c2V0cX0gZm9y IGEgdmFyaWFibGUgbmFtZWQgYnkgdGhlCitAY29kZXtsZXR9IGV4cHJlc3Npb24gd2lsbCBA ZW1waHtub3R9IGFmZmVjdCB0aGF0IGxvY2FsIHZhcmlhYmxlLgogCiBAY29kZXtsZXR9IGNh biBjcmVhdGUgbW9yZSB0aGFuIG9uZSB2YXJpYWJsZSBhdCBvbmNlLiAgQWxzbywKIEBjb2Rl e2xldH0gZ2l2ZXMgZWFjaCB2YXJpYWJsZSBpdCBjcmVhdGVzIGFuIGluaXRpYWwgdmFsdWUs IGVpdGhlciBhCkBAIC0zNzc5LDYgKzM3NzgsMTE4IEBAIFVuaW5pdGlhbGl6ZWQgbGV0IFZh cmlhYmxlcwogQHNhbXB7JXN9LikgIFRoZSBmb3VyIHZhcmlhYmxlcyBhcyBhIGdyb3VwIGFy ZSBwdXQgaW50byBhIGxpc3QgdG8KIGRlbGltaXQgdGhlbSBmcm9tIHRoZSBib2R5IG9mIHRo ZSBAY29kZXtsZXR9LgogCitAbm9kZSBIb3cgbGV0IEJpbmRzIFZhcmlhYmxlcworQHN1YnNl Y3Rpb24gSG93IEBjb2Rle2xldH0gQmluZHMgVmFyaWFibGVzCitAY2luZGV4IExleGljYWwg YmluZGluZworQGNpbmRleCBCaW5kaW5nLCBsZXhpY2FsCitAY2luZGV4IER5bmFtaWMgYmlu ZGluZworQGNpbmRleCBCaW5kaW5nLCBkeW5hbWljCisKK0VtYWNzIExpc3Agc3VwcG9ydHMg dHdvIGRpZmZlcmVudCB3YXlzIG9mIGJpbmRpbmcgdmFyaWFibGUgbmFtZXMgdG8KK3RoZWly IHZhbHVlcy4gIFRoZXNlIHdheXMgYWZmZWN0IHRoZSBwYXJ0cyBvZiB5b3VyIHByb2dyYW0g d2hlcmUgYQorcGFydGljdWxhciBiaW5kaW5nIGlzIHZhbGlkc2NvcC4gIEZvciBoaXN0b3Jp Y2FsIHJlYXNvbnMsIEVtYWNzIExpc3AgdXNlcworYSBmb3JtIG9mIHZhcmlhYmxlIGJpbmRp bmcgY2FsbGVkIEBkZm57ZHluYW1pYyBiaW5kaW5nfSBieSBkZWZhdWx0LgorSG93ZXZlciwg aW4gdGhpcyBtYW51YWwgd2UgZGlzY3VzcyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgYmluZGlu ZywKK2NhbGxlZCBAZGZue2xleGljYWwgYmluZGluZ30sIHVubGVzcyBvdGhlcndpc2Ugbm90 ZWQgKGluIHRoZSBmdXR1cmUsCit0aGUgRW1hY3MgbWFpbnRhaW5lcnMgcGxhbiB0byBjaGFu Z2UgdGhlIGRlZmF1bHQgdG8gbGV4aWNhbCBiaW5kaW5nKS4KK0lmIHlvdSBoYXZlIHByb2dy YW1tZWQgaW4gb3RoZXIgbGFuZ3VhZ2VzIGJlZm9yZSwgeW91J3JlIGxpa2VseQorYWxyZWFk eSBmYW1pbGlhciB3aXRoIGhvdyBsZXhpY2FsIGJpbmRpbmcgYmVoYXZlcy4KKworSW4gb3Jk ZXIgdG8gdXNlIGxleGljYWwgYmluZGluZyBpbiBhIHByb2dyYW0sIHlvdSBzaG91bGQgYWRk IHRoaXMgdG8KK3RoZSBmaXJzdCBsaW5lIG9mIHlvdXIgRW1hY3MgTGlzcCBmaWxlOgorCitA ZXhhbXBsZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCitAZW5kIGV4YW1wbGUK KworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcywgQHB4cmVme1NlbGVjdGluZyBM aXNwIERpYWxlY3QsICwgLAorZWxpc3AsIFRoZSBFbWFjcyBMaXNwIFJlZmVyZW5jZSBNYW51 YWx9LgorCitBcyB3ZSBkaXNjdXNzZWQgYmVmb3JlLCB3aGVuIHlvdSBjcmVhdGUgbG9jYWwg dmFyaWFibGVzIHdpdGgKK0Bjb2Rle2xldH0gdW5kZXIgbGV4aWNhbCBiaW5kaW5nLCB0aG9z ZSB2YXJpYWJsZXMgYXJlIHZhbGlkIG9ubHkKK3dpdGhpbiB0aGUgYm9keSBvZiB0aGUgQGNv ZGV7bGV0fSBleHByZXNzaW9uLiAgSW4gb3RoZXIgcGFydHMgb2YgeW91cgorY29kZSwgdGhl eSBoYXZlIG90aGVyIG1lYW5pbmdzLCBzbyBpZiB5b3UgY2FsbCBhIGZ1bmN0aW9uIGRlZmlu ZWQKK2Vsc2V3aGVyZSB3aXRoaW4gdGhlIEBjb2Rle2xldH0gYm9keSwgdGhhdCBmdW5jdGlv biB3b3VsZCBiZSB1bmFibGUgdG8KK2Bgc2VlJycgdGhlIGxvY2FsIHZhcmlhYmxlcyB5b3Un dmUgY3JlYXRlZC4gIChPbiB0aGUgb3RoZXIgaGFuZCwgaWYKK3lvdSBjYWxsIGEgZnVuY3Rp b24gZGVmaW5lZCB3aXRoaW4gYSBAY29kZXtsZXR9IGJvZHksIHRoYXQgZnVuY3Rpb24KK0Bl bXBoe3dvdWxkfSBiZSBhYmxlIHRvIHNlZS0tLWFuZCBtb2RpZnktLS10aGUgbG9jYWwgdmFy aWFibGVzIGZyb20KK3RoYXQgQGNvZGV7bGV0fSBleHByZXNzaW9uLikKKworVW5kZXIgZHlu YW1pYyBiaW5kaW5nLCB0aGUgcnVsZXMgYXJlIGRpZmZlcmVudDogaW5zdGVhZCwgd2hlbiB5 b3UgdXNlCitAY29kZXtsZXR9LCB0aGUgbG9jYWwgdmFyaWFibGVzIHlvdSd2ZSBjcmVhdGVk IGFyZSB2YWxpZCBkdXJpbmcKK2V4ZWN1dGlvbiBvZiB0aGUgbGV0IGV4cHJlc3Npb24uICBU aGlzIG1lYW5zIHRoYXQsIGlmIHlvdXIgQGNvZGV7bGV0fQorZXhwcmVzc2lvbiBjYWxscyBh IGZ1bmN0aW9uLCB0aGF0IGZ1bmN0aW9uIGNhbiBzZWUgdGhlc2UgbG9jYWwKK3ZhcmlhYmxl cywgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgZnVuY3Rpb24gaXMgZGVmaW5lZCAoaW5jbHVk aW5nIGluCithbm90aGVyIGZpbGUgZW50aXJlbHkpLgorCitBbm90aGVyIHdheSB0byB0aGlu ayBhYm91dCBAY29kZXtsZXR9IHdoZW4gdXNpbmcgZHluYW1pYyBiaW5kaW5nIGlzCit0aGF0 IGV2ZXJ5IHZhcmlhYmxlIG5hbWUgaGFzIGEgZ2xvYmFsIGBgc3RhY2snJyBvZiBiaW5kaW5n cywgYW5kCit3aGVuZXZlciB5b3UgdXNlIHRoYXQgdmFyaWFibGUncyBuYW1lLCBpdCByZWZl cnMgdG8gdGhlIGJpbmRpbmcgb24gdGhlCit0b3Agb2YgdGhlIHN0YWNrLiAgKFlvdSBjYW4g aW1hZ2luZSB0aGlzIGxpa2UgYSBzdGFjayBvZiBwYXBlcnMgb24KK3lvdXIgZGVzayB3aXRo IHRoZSB2YWx1ZXMgd3JpdHRlbiBvbiB0aGVtLikgIFdoZW4geW91IGJpbmQgYSB2YXJpYWJs ZQord2l0aCBAY29kZXtsZXR9LCBpdCBwdXRzIHRoZSBuZXcgYmluZGluZyB5b3UndmUgc3Bl Y2lmaWVkIG9uIHRoZSB0b3AKK29mIHRoZSBzdGFjaywgYW5kIHRoZW4gZXhlY3V0ZXMgdGhl IEBjb2Rle2xldH0gYm9keS4gIE9uY2UgdGhlCitAY29kZXtsZXR9IGJvZHkgZmluaXNoZXMs IGl0IHRha2VzIHRoYXQgYmluZGluZyBvZmYgb2YgdGhlIHN0YWNrLAorcmV2ZWFsaW5nIHRo ZSBvbmUgaXQgaGFkIChpZiBhbnkpIGJlZm9yZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9u LgorCitJbiBzb21lIGNhc2VzLCBib3RoIGxleGljYWwgYW5kIGR5bmFtaWMgYmluZGluZyBi ZWhhdmUgaWRlbnRpY2FsbHkuCitIb3dldmVyLCBpbiBvdGhlciBjYXNlcywgdGhleSBjYW4g Y2hhbmdlIHRoZSBtZWFuaW5nIG9mIHlvdXIgcHJvZ3JhbS4KK0ZvciBleGFtcGxlLCBzZWUg d2hhdCBoYXBwZW5zIGluIHRoaXMgY29kZSB1bmRlciBsZXhpY2FsIGJpbmRpbmc6CisKK0Bl eGFtcGxlCis7OzsgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KKworKHNldHEgeCAwKQor CisoZGVmdW4gZ2V0eCAoKQorICB4KQorCisoc2V0cSB4IDEpCisKKyhsZXQgKCh4IDIpKQor ICAoZ2V0eCkpCisgICAgIEByZXN1bHR7fSAxCitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50 CitIZXJlLCB0aGUgcmVzdWx0IG9mIEBjb2RleyhnZXR4KX0gaXMgQGNvZGV7MX0uICBVbmRl ciBsZXhpY2FsIGJpbmRpbmcsCitAY29kZXtnZXR4fSBkb2Vzbid0IHNlZSB0aGUgdmFsdWUg ZnJvbSBvdXIgQGNvZGV7bGV0fSBleHByZXNzaW9uLgorVGhhdCdzIGJlY2F1c2UgdGhlIGJv ZHkgb2YgQGNvZGV7Z2V0eH0gaXMgb3V0c2lkZSBvZiB0aGUgYm9keSBvZiBvdXIKK0Bjb2Rl e2xldH0gZXhwcmVzc2lvbi4gIFNpbmNlIEBjb2Rle2dldHh9IGlzIGRlZmluZWQgYXQgdGhl IHRvcCwKK2dsb2JhbCBsZXZlbCBvZiBvdXIgY29kZSAoaS5lLkA6IG5vdCBpbnNpZGUgdGhl IGJvZHkgb2YgYW55IEBjb2Rle2xldH0KK2V4cHJlc3Npb24pLCBpdCBsb29rcyBmb3IgYW5k IGZpbmRzIEBjb2Rle3h9IGF0IHRoZSBnbG9iYWwgbGV2ZWwgYXMKK3dlbGwuICBXaGVuIGV4 ZWN1dGluZyBAY29kZXtnZXR4fSwgdGhlIGN1cnJlbnQgZ2xvYmFsIHZhbHVlIG9mCitAY29k ZXt4fSBpcyBAY29kZXsxfSwgc28gdGhhdCdzIHdoYXQgQGNvZGV7Z2V0eH0gcmV0dXJucy4K KworSWYgd2UgdXNlIGR5bmFtaWMgYmluZGluZyBpbnN0ZWFkLCB0aGUgYmVoYXZpb3IgaXMg ZGlmZmVyZW50OgorCitAZXhhbXBsZQorOzs7IC0qLSBsZXhpY2FsLWJpbmRpbmc6IG5pbCAt Ki0KKworKHNldHEgeCAwKQorCisoZGVmdW4gZ2V0eCAoKQorICB4KQorCisoc2V0cSB4IDEp CisKKyhsZXQgKCh4IDIpKQorICAoZ2V0eCkpCisgICAgIEByZXN1bHR7fSAyCitAZW5kIGV4 YW1wbGUKKworQG5vaW5kZW50CitOb3csIHRoZSByZXN1bHQgb2YgQGNvZGV7KGdldHgpfSBp cyBAY29kZXsyfSEgIFRoYXQncyBiZWNhdXNlIHVuZGVyCitkeW5hbWljIGJpbmRpbmcsIHdo ZW4gZXhlY3V0aW5nIEBjb2Rle2dldHh9LCB0aGUgY3VycmVudCBiaW5kaW5nIGZvcgorQGNv ZGV7eH0gYXQgdGhlIHRvcCBvZiBvdXIgc3RhY2sgaXMgdGhlIG9uZSBmcm9tIG91ciBAY29k ZXtsZXR9CitiaW5kaW5nLiAgVGhpcyB0aW1lLCBAY29kZXtnZXR4fSBkb2Vzbid0IHNlZSB0 aGUgZ2xvYmFsIHZhbHVlIGZvcgorQGNvZGV7eH0sIHNpbmNlIGl0cyBiaW5kaW5nIGlzIGJl bG93IHRoZSBvbmUgZnJvbSBvdXIgQGNvZGV7bGV0fQorZXhwcmVzc2lvbiBpbiB0aGUgc3Rh Y2sgb2YgYmluZGluZ3MuCisKKyhTb21lIHZhcmlhYmxlcyBhcmUgYWxzbyBgYHNwZWNpYWwn JywgYW5kIHRoZXkgYXJlIGFsd2F5cyBkeW5hbWljYWxseQorYm91bmQgZXZlbiB3aGVuIEBj b2Rle2xleGljYWwtYmluZGluZ30gaXMgQGNvZGV7dH0uICBAeHJlZntkZWZ2YXIsICwKK0lu aXRpYWxpemluZyBhIFZhcmlhYmxlIHdpdGggQGNvZGV7ZGVmdmFyfX0uKQorCiBAbm9kZSBp ZgogQHNlY3Rpb24gVGhlIEBjb2Rle2lmfSBTcGVjaWFsIEZvcm0KIEBmaW5kZXggaWYKQEAg LTkxMzAsMTIgKzkyNDEsMTQgQEAgZGVmdmFyCiBnaXZlbiBhbiBpbml0aWFsIHZhbHVlIGJ5 IHVzaW5nIHRoZSBAY29kZXtkZWZ2YXJ9IHNwZWNpYWwgZm9ybS4gIFRoZQogbmFtZSBjb21l cyBmcm9tIGBgZGVmaW5lIHZhcmlhYmxlJycuCiAKLVRoZSBAY29kZXtkZWZ2YXJ9IHNwZWNp YWwgZm9ybSBpcyBzaW1pbGFyIHRvIEBjb2Rle3NldHF9IGluIHRoYXQgaXQgc2V0cwotdGhl IHZhbHVlIG9mIGEgdmFyaWFibGUuICBJdCBpcyB1bmxpa2UgQGNvZGV7c2V0cX0gaW4gdHdv IHdheXM6IGZpcnN0LAotaXQgb25seSBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUg aWYgdGhlIHZhcmlhYmxlIGRvZXMgbm90IGFscmVhZHkKLWhhdmUgYSB2YWx1ZS4gIElmIHRo ZSB2YXJpYWJsZSBhbHJlYWR5IGhhcyBhIHZhbHVlLCBAY29kZXtkZWZ2YXJ9IGRvZXMKLW5v dCBvdmVycmlkZSB0aGUgZXhpc3RpbmcgdmFsdWUuICBTZWNvbmQsIEBjb2Rle2RlZnZhcn0g aGFzIGEKLWRvY3VtZW50YXRpb24gc3RyaW5nLgorVGhlIEBjb2Rle2RlZnZhcn0gc3BlY2lh bCBmb3JtIGlzIHNpbWlsYXIgdG8gQGNvZGV7c2V0cX0gaW4gdGhhdCBpdAorc2V0cyB0aGUg dmFsdWUgb2YgYSB2YXJpYWJsZS4gIEl0IGlzIHVubGlrZSBAY29kZXtzZXRxfSBpbiB0aHJl ZSB3YXlzOgorZmlyc3QsIGl0IG1hcmtzIHRoZSB2YXJpYWJsZSBhcyBgYHNwZWNpYWwnJyBz byB0aGF0IGl0IGlzIGFsd2F5cworZHluYW1pY2FsbHkgYm91bmQsIGV2ZW4gd2hlbiBAY29k ZXtsZXhpY2FsLWJpbmRpbmd9IGlzIEBjb2Rle3R9CisoQHB4cmVme0hvdyBsZXQgQmluZHMg VmFyaWFibGVzfSkuICBTZWNvbmQsIGl0IG9ubHkgc2V0cyB0aGUgdmFsdWUgb2YKK3RoZSB2 YXJpYWJsZSBpZiB0aGUgdmFyaWFibGUgZG9lcyBub3QgYWxyZWFkeSBoYXZlIGEgdmFsdWUu ICBJZiB0aGUKK3ZhcmlhYmxlIGFscmVhZHkgaGFzIGEgdmFsdWUsIEBjb2Rle2RlZnZhcn0g ZG9lcyBub3Qgb3ZlcnJpZGUgdGhlCitleGlzdGluZyB2YWx1ZS4gIFRoaXJkLCBAY29kZXtk ZWZ2YXJ9IGhhcyBhIGRvY3VtZW50YXRpb24gc3RyaW5nLgogCiAoVGhlcmUgaXMgYSByZWxh dGVkIG1hY3JvLCBAY29kZXtkZWZjdXN0b219LCBkZXNpZ25lZCBmb3IgdmFyaWFibGVzCiB0 aGF0IHBlb3BsZSBjdXN0b21pemUuICBJdCBoYXMgbW9yZSBmZWF0dXJlcyB0aGFuIEBjb2Rl e2RlZnZhcn0uCi0tIAoyLjI1LjEKCg== --------------lfRemlczGkaSGJ0whIlnXGXz-- From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 01 03:30:16 2023 Received: (at 66756) by debbugs.gnu.org; 1 Dec 2023 08:30:16 +0000 Received: from localhost ([127.0.0.1]:55037 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8yue-0006nt-0n for submit@debbugs.gnu.org; Fri, 01 Dec 2023 03:30:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r8yub-0006ne-5K for 66756@debbugs.gnu.org; Fri, 01 Dec 2023 03:30:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r8yuN-00051O-3T; Fri, 01 Dec 2023 03:29:59 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=1+dEhVK9Yi5FrixvRQ82TbxkuqBGxJga0tyY0Iega2I=; b=R/yUC44YzQnA BifGu8QkkcU7xc30u4+xAIWTFEJHPAh1QlELtWdAeoBYM64NEbL8bDHuxovEqH34BA1aoNGgOgsdC LcwA5bbkZwD+rqeR8h7YJJwMh3hoVFUQUXPvGNOA7XiAsbRg8fHsFjzvOdUofO4+293wHNq4x+44Z iJsmqzQ5ZAJIJGYhYQvVtfYv4M6+VbOQn0qTSOkX0eZlNQQ1yfI76P3lCilZ8rHztmzqsK2UYiYyV +PUQICe6+vRp6akIe93+8DPZ/TTP0Lu9F6G7AD9R96jqAdNFWVpoU/T6WvOfKmHQOu/bOqAT2y/Dp 88mw2lfMDsLswhgRV+dcjw==; Date: Fri, 01 Dec 2023 10:29:47 +0200 Message-Id: <83v89i9vgk.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter , Richard Stallman In-Reply-To: <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> (message from Jim Porter on Thu, 30 Nov 2023 13:03:52 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: 66756@debbugs.gnu.org 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.3 (---) > Date: Thu, 30 Nov 2023 13:03:52 -0800 > Cc: rms@gnu.org, 66756@debbugs.gnu.org > From: Jim Porter > > Done. Thanks, I'm happy with this text now. Richard, would you please read the latest patch posted by Jim and comment on it? From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 22:08:58 2023 Received: (at 66756) by debbugs.gnu.org; 4 Dec 2023 03:08:58 +0000 Received: from localhost ([127.0.0.1]:33218 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKL-0003bi-TB for submit@debbugs.gnu.org; Sun, 03 Dec 2023 22:08:58 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKI-0003bQ-VT for 66756@debbugs.gnu.org; Sun, 03 Dec 2023 22:08:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9zK2-0005x9-48; Sun, 03 Dec 2023 22:08:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=TBU9lZ3rpIrZ+UmC4n1pt6YYCsbnMRvo86nzhdO8qAI=; b=mD67VNg0NS7L xImqtqG6E7OOO90DmJ746kiMMsN/IsjRAi/hY439P7ECMKP86hUPlHu3ZsN+OMi51ccLB/fKoZCh+ I62efibomBZZmrPH9Xjv9g+iR0gc4wvuprjy3oHBnlgTXErJF8FNbcxPYvUzy4/S0OxXRw/7H0xUO mYS91EEGtLOYCiAQTWMvF//PwmCeetNe2OCjGqInJkZpDcIC1MSMs99EZHMqAwkC3vgtbvLujZcAB dEUgt/k7BnRb7PEdoOb+G0Sx7jTxLiwzSnAjQxIWuB8KeSFvV0MBKo5xcHLF2d+DuEzJ/GRrs0iIm IZBZlfcB7G32Ks7ofsRYJQ==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1r9zK1-0003MB-PT; Sun, 03 Dec 2023 22:08:37 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> (message from Jim Porter on Thu, 30 Nov 2023 13:03:52 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> Message-Id: Date: Sun, 03 Dec 2023 22:08:37 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > +means his house, not yours. (Symbols used in argument lists work the > +same way. Maybe that sentence should be more explicit about which symbols it refers to and which aspect of "working". Perhaps like this: (The symbols used to name function arguments are bound as local variables in exactly the same way.) This statement However, outside +of the @code{let} body (such as when calling a function that was +defined elsewhere), calling @code{setq} for a variable named by the +@code{let} expression will @emph{not} affect that local variable. is true only in lexical binding. With dynamic binding, such a setq _will_ set the let's local variable (in the simplest cases). +Emacs Lisp supports two different ways of binding variable names to +their values. These ways affect the parts of your program where a +particular binding is validscop. Typo there. +As we discussed before, when you create local variables with +@code{let} under lexical binding, those variables are valid only +within the body of the @code{let} expression. Where is this previous discussion? I don't see it. The distinction of dynamic vs lexical was first introduced two paragraphs above, and its effects on binding have not been discussed yet. Is this a reference to the following? However, outside +of the @code{let} body (such as when calling a function that was +defined elsewhere), calling @code{setq} for a variable named by the +@code{let} expression will @emph{not} affect that local variable. That may be meant as a discussion of local binding with lexical scoping, but it isn't one, since it doesn't say "lexical scoping." (On the other hand, if +you call a function defined within a @code{let} body, I recommend "that was defined within"; it is more clear. +Under dynamic binding, the rules are different: instead, when you use +@code{let}, the local variables you've created are valid during +execution of the let expression. @code needed here. When you bind a variable +with @code{let}, it puts the new binding you've specified on the top +of the stack, For clarity, I suggest "bind a variable dynamically" or something to reiterate that this sentence is only about dynamic binding. Without that, the reader could take it to be independent of which mode is currently selected. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 22:09:00 2023 Received: (at 66756) by debbugs.gnu.org; 4 Dec 2023 03:09:00 +0000 Received: from localhost ([127.0.0.1]:33222 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKO-0003bw-EY for submit@debbugs.gnu.org; Sun, 03 Dec 2023 22:09:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47720) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKM-0003bX-QI for 66756@debbugs.gnu.org; Sun, 03 Dec 2023 22:08:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9zK6-0005xc-IO; Sun, 03 Dec 2023 22:08:42 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=RI/rdOvAayQp3zCi2FtVmsq1Dg5ijNaKZ+FrAa5pFD8=; b=JBAR+JtM9z2X duTGwMvcddcjw3CH8L8RkaKohIFrK/snNOhk9HRoFIqoBXpeCW1y3yNnJK2bhQHXTKryjY7UX14c3 aAlH0Lxb3ldEHwIpjUkoL3apDSXMhn67hOqi94dPQCnhJZfS+8J7t1JlSkcc9NWeaYMvNZR8yz5Jy L/nrjMvCnyCWToDeLWylOxg8ugAWzXEr2Lkx/4e0APp5ItuFvb4WoolQzIKMngxNr4sca7Q7jSGqR 0EwPzOdUikV/UnQhjSN958WQF54NZIVUdXMS2kycyR9+/GHHkKquU+GWq3ewxifF9U91mN+orernd 4Eng8JDWHtt1jr2pY3LM1g==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1r9zK3-0003MQ-Gm; Sun, 03 Dec 2023 22:08:39 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Jim Porter In-Reply-To: <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> (message from Jim Porter on Thu, 30 Nov 2023 13:03:52 -0800) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> Message-Id: Date: Sun, 03 Dec 2023 22:08:39 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] The new node How let Binds Variables is 110 lines long. Such a long node is cumbersome, especially for cross-references to it. Can you find a way to subdivide it into smaller nodes? It could have some text at the beginning, then a few subnodes. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 22:09:03 2023 Received: (at 66756) by debbugs.gnu.org; 4 Dec 2023 03:09:03 +0000 Received: from localhost ([127.0.0.1]:33227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKQ-0003cS-Q2 for submit@debbugs.gnu.org; Sun, 03 Dec 2023 22:09:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:47724) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9zKO-0003ba-JK for 66756@debbugs.gnu.org; Sun, 03 Dec 2023 22:09:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9zK8-0005xq-Vc; Sun, 03 Dec 2023 22:08:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=Date:References:Subject:In-Reply-To:To:From: mime-version; bh=Eq3nJb5V4GXAVuXAdKD2xE2sxmWUYgsMXi3HUcB/w24=; b=fuNszS8VI0oC ux2Bpun7QUC0uNzDVrVEa+XyVTl4DMmAsQZnjK63tVLtcycDwVIav0boSwm+Ry2BDLUTLy7/wDTsk lN0DGwbzYobcAZRoJGmfofcKrE7V0EalJU7G7Ad4SjbctpTot5qnMZ4qfDX0N70lWVXE0OQEH8fxL OhlGxmz5olXl11wR2l7DtZtTjrDhWVSCCpxn+E8txYMlCDV2MiG1u/TvtL5GEtBi+ESQaTGlAv7hx lK1w5FYVJ39yGww6vATmUY+qryBGi9lZpeRirliYtM/hFEdF/E6c+OTTbE1YDfh6oFwB3hsp8vg6B qB7n06upNSWFpuoFqbhD6Q==; Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1r9zK7-0003OK-IB; Sun, 03 Dec 2023 22:08:43 -0500 Content-Type: text/plain; charset=Utf-8 From: Richard Stallman To: Eli Zaretskii In-Reply-To: <83v89i9vgk.fsf@gnu.org> (message from Eli Zaretskii on Fri, 01 Dec 2023 10:29:47 +0200) Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> <83v89i9vgk.fsf@gnu.org> Message-Id: Date: Sun, 03 Dec 2023 22:08:43 -0500 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66756 Cc: jporterbugs@gmail.com, 66756@debbugs.gnu.org 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: , Reply-To: rms@gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > Richard, would you please read the latest patch posted by Jim and > comment on it? Thanks for suggesting I do that. I've sent my comments now. -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 23:35:09 2023 Received: (at 66756) by debbugs.gnu.org; 4 Dec 2023 04:35:09 +0000 Received: from localhost ([127.0.0.1]:33274 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rA0fk-0005pU-K6 for submit@debbugs.gnu.org; Sun, 03 Dec 2023 23:35:09 -0500 Received: from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535]:51207) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rA0fi-0005ox-Lf for 66756@debbugs.gnu.org; Sun, 03 Dec 2023 23:35:08 -0500 Received: by mail-pg1-x535.google.com with SMTP id 41be03b00d2f7-5c1a75a4b6cso913239a12.2 for <66756@debbugs.gnu.org>; Sun, 03 Dec 2023 20:34:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701664490; x=1702269290; darn=debbugs.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=bSBV2/8h3rrfZ/eTGCxJirKjHjA9z606ACu1NU8RfCo=; b=QWK+ULKe7DAUEYTZNBpK6AMim8/b0ZGFLsCV8bnKIzmIrlskqCXRZeNmuqdF2dTLQ6 gNh5CyMFARCoOA0IY8RprAnPustsZ2c3AWl3qIvdWRARSdkUgwkeKYJI5rorOz2kJktH hWSVjOY5mKTbjv8pSRNYKXlkpqVnddcLKmZEfhozBoPMVdFUC7V334LSvaQCkdiMWYXE xHZvXZAagi45I60sxuWgUhHlC8bVpOwvu0HnPRbrdwOh4wvsk/1GjcBfPGJ5plEDQLFH frwkBm7Eve4lwQQz1F2vbYA0LFs0eN75sF83fSLp4LQAwjDag59QBkicpDNeJ8Az+lYc sRzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701664490; x=1702269290; h=in-reply-to:from:content-language:references:cc:to:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=bSBV2/8h3rrfZ/eTGCxJirKjHjA9z606ACu1NU8RfCo=; b=aDUNodHMzY1hTd5on7nmGeSG+BH6g1ozUMsrqbiq9KlxOTmIvVRgA9bUEE35vwt9Bv wAhzgyjsaX3aliHpwZxKa3F4QTAXUvvXXRKxtvpnlJxDnzDuVP8YZW7HLk+6/aGaegXl grZqagtyLwfGyJQ4DjZ9YBBPXdsNFtpHRWQ/HnAOw/a2tQZPh7vnQ+RccP7fu7hYFF3X 3FHYmc9lgHHoHutNw/rDgx9r7YdD4cjeGEKl87z0YggsDyxyS70XVFZ8RTfA82BfSvwu euLVaOOmpedZMhBcpHH5zUk+SdIiNUICGGcFfFDn/TWxk++9c+7u+keHSpKM415arRPP xjOA== X-Gm-Message-State: AOJu0YwhQ0ksPCOXChxAN/Yg3F1Sy5pp3sINwfCq1DOP35p4Whvdb3XJ PBZzFl5vvz/624mUteGkjtY= X-Google-Smtp-Source: AGHT+IH0cTGSZWlTuEgJySRgVpbk2U3ClvC99os5fJpAD09id9RCBHEBkZZNsyg8N6yaAAlaoOFhNw== X-Received: by 2002:a17:90b:1983:b0:286:6cc1:291 with SMTP id mv3-20020a17090b198300b002866cc10291mr842270pjb.92.1701664490068; Sun, 03 Dec 2023 20:34:50 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id b6-20020a17090a7ac600b002868635df0asm2236103pjl.37.2023.12.03.20.34.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 03 Dec 2023 20:34:49 -0800 (PST) Content-Type: multipart/mixed; boundary="------------PqrLK7WcJY5KW0Q0vbC1M0wq" Message-ID: <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> Date: Sun, 3 Dec 2023 20:34:49 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual To: rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> Content-Language: en-US From: Jim Porter In-Reply-To: X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) This is a multi-part message in MIME format. --------------PqrLK7WcJY5KW0Q0vbC1M0wq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 12/3/2023 7:08 PM, Richard Stallman wrote: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > +means his house, not yours. (Symbols used in argument lists work the > > +same way. > > Maybe that sentence should be more explicit about which symbols it > refers to and which aspect of "working". Perhaps like this: > > (The symbols used to name function arguments are bound as local variables > in exactly the same way.) Makes sense to me. Done. > This statement > > However, outside > +of the @code{let} body (such as when calling a function that was > +defined elsewhere), calling @code{setq} for a variable named by the > +@code{let} expression will @emph{not} affect that local variable. > > is true only in lexical binding. With dynamic binding, such a setq > _will_ set the let's local variable (in the simplest cases). Correct. Based on Eli's suggestions, I've worded this initial section to assume that lexical binding is in effect. I put a footnote here to mention this, but otherwise I'm trying my hardest to avoid front-loading the 'let' documentation with an explanation of lexical binding. > +Emacs Lisp supports two different ways of binding variable names to > +their values. These ways affect the parts of your program where a > +particular binding is validscop. > > Typo there. Thanks. I think that was a mistake from when I was searching for "scope" to ensure I didn't inadvertently use the term in this section. (I wanted to avoid mentioning another CS term here, and I think "binding" is enough for what we want to say.) > +As we discussed before, when you create local variables with > +@code{let} under lexical binding, those variables are valid only > +within the body of the @code{let} expression. > > Where is this previous discussion? I don't see it. The distinction > of dynamic vs lexical was first introduced two paragraphs above, > and its effects on binding have not been discussed yet. > > Is this a reference to the following? > > However, outside > +of the @code{let} body (such as when calling a function that was > +defined elsewhere), calling @code{setq} for a variable named by the > +@code{let} expression will @emph{not} affect that local variable. > > That may be meant as a discussion of local binding with lexical scoping, > but it isn't one, since it doesn't say "lexical scoping." Correct. I added a cross-reference back to that section. With that and the footnote in the "let Prevents Confusion" section, hopefully this is clearer now. > (On the other hand, if > +you call a function defined within a @code{let} body, > > I recommend "that was defined within"; it is more clear. Done. > +Under dynamic binding, the rules are different: instead, when you use > +@code{let}, the local variables you've created are valid during > +execution of the let expression. > > @code needed here. Fixed. > When you bind a variable > +with @code{let}, it puts the new binding you've specified on the top > +of the stack, > > For clarity, I suggest "bind a variable dynamically" or something to reiterate > that this sentence is only about dynamic binding. Without that, the reader > could take it to be independent of which mode is currently selected. Done. On 12/3/2023 7:08 PM, Richard Stallman wrote: > The new node How let Binds Variables is 110 lines long. Such a long > node is cumbersome, especially for cross-references to it. > > Can you find a way to subdivide it into smaller nodes? > > It could have some text at the beginning, then a few subnodes. I've split this into a main section and two subnodes: one describing how lexical and dynamic binding work, and one showing an example of how they behave differently in practice. Maybe the titles could be improved, but they're the best I could come up with at the time... --------------PqrLK7WcJY5KW0Q0vbC1M0wq Content-Type: text/plain; charset=UTF-8; name="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.patch" Content-Disposition: attachment; filename*0="0001-Introduce-let-using-lexical-binding-in-the-Lisp-Intr.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwMzdhMzU3ODgxNWRiYWVkNzFlYTkwZWJjOTU5ODY4MmZiMTU5ZTIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjUgT2N0IDIwMjMgMjA6NDM6NTcgLTA3MDAKU3ViamVjdDogW1BB VENIXSBJbnRyb2R1Y2UgJ2xldCcgdXNpbmcgbGV4aWNhbCBiaW5kaW5nIGluIHRoZSBMaXNw CiBJbnRyb2R1Y3Rpb24KCiogZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkg KFByZXZlbnQgY29uZnVzaW9uKTogUmV3b3JrIHRoZQpleHBsYW5hdGlvbiB0byBkaXNjdXNz IGhvdyB0aGluZ3Mgd29yayB1bmRlciBsZXhpY2FsIGJpbmRpbmcuCihIb3cgbGV0IEJpbmRz IFZhcmlhYmxlcyk6IERlc2NyaWJlIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIGxleGljYWwK YW5kIGR5bmFtaWMgYmluZGluZyAoaW5jbHVkaW5nIGhvdyB0byBjb25maWd1cmUgaXQpLgoo ZGVmdmFyKTogTWVudGlvbiB0aGF0ICdkZWZ2YXInIGRlY2xhcmVzIHZhcmlhYmxlcyBhcyBh bHdheXMKZHluYW1pY2FsbHktYm91bmQgKGJ1ZyM2Njc1NikuCi0tLQogZG9jL2xpc3BpbnRy by9lbWFjcy1saXNwLWludHJvLnRleGkgfCAxNzEgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2MvbGlzcGludHJvL2VtYWNzLWxpc3AtaW50cm8udGV4aSBi L2RvYy9saXNwaW50cm8vZW1hY3MtbGlzcC1pbnRyby50ZXhpCmluZGV4IGM1YjMzYWM1ZWFh Li40NTY1YjZjMGZmMCAxMDA2NDQKLS0tIGEvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWlu dHJvLnRleGkKKysrIGIvZG9jL2xpc3BpbnRyby9lbWFjcy1saXNwLWludHJvLnRleGkKQEAg LTM1OTEsNiArMzU5MSw3IEBAIGxldAogKiBQYXJ0cyBvZiBsZXQgRXhwcmVzc2lvbjo6CiAq IFNhbXBsZSBsZXQgRXhwcmVzc2lvbjo6CiAqIFVuaW5pdGlhbGl6ZWQgbGV0IFZhcmlhYmxl czo6CisqIEhvdyBsZXQgQmluZHMgVmFyaWFibGVzOjoKIEBlbmQgbWVudQogCiBAaWZub3R0 ZXgKQEAgLTM2MDIsMjQgKzM2MDMsMjYgQEAgUHJldmVudCBjb25mdXNpb24KIEBjaW5kZXgg QHNhbXB7dmFyaWFibGUsIGxvY2FsfSwgZGVmaW5lZAogVGhlIEBjb2Rle2xldH0gc3BlY2lh bCBmb3JtIHByZXZlbnRzIGNvbmZ1c2lvbi4gIEBjb2Rle2xldH0gY3JlYXRlcyBhCiBuYW1l IGZvciBhIEBkZm57bG9jYWwgdmFyaWFibGV9IHRoYXQgb3ZlcnNoYWRvd3MgYW55IHVzZSBv ZiB0aGUgc2FtZQotbmFtZSBvdXRzaWRlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uICBU aGlzIGlzIGxpa2UgdW5kZXJzdGFuZGluZwotdGhhdCB3aGVuZXZlciB5b3VyIGhvc3QgcmVm ZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlIG1lYW5zIGhpcyBob3VzZSwgbm90Ci15b3Vycy4g IChTeW1ib2xzIHVzZWQgaW4gYXJndW1lbnQgbGlzdHMgd29yayB0aGUgc2FtZSB3YXkuCitu YW1lIG91dHNpZGUgdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbiAoaW4gY29tcHV0ZXIgc2Np ZW5jZSBqYXJnb24sIHdlCitjYWxsIHRoaXMgQGRmbntiaW5kaW5nfSB0aGUgdmFyaWFibGUp LiAgVGhpcyBpcyBsaWtlIHVuZGVyc3RhbmRpbmcKK3RoYXQgaW4geW91ciBob3N0J3MgaG9t ZSwgd2hlbmV2ZXIgaGUgcmVmZXJzIHRvIGBgdGhlIGhvdXNlJycsIGhlCittZWFucyBoaXMg aG91c2UsIG5vdCB5b3Vycy4gIChUaGUgc3ltYm9scyB1c2VkIHRvIG5hbWUgZnVuY3Rpb24K K2FyZ3VtZW50cyBhcmUgYm91bmQgYXMgbG9jYWwgdmFyaWFibGVzIGluIGV4YWN0bHkgdGhl IHNhbWUgd2F5LgogQHhyZWZ7ZGVmdW4sICwgVGhlIEBjb2Rle2RlZnVufSBNYWNyb30uKQog Ci1Mb2NhbCB2YXJpYWJsZXMgY3JlYXRlZCBieSBhIEBjb2Rle2xldH0gZXhwcmVzc2lvbiBy ZXRhaW4gdGhlaXIgdmFsdWUKLUBlbXBoe29ubHl9IHdpdGhpbiB0aGUgQGNvZGV7bGV0fSBl eHByZXNzaW9uIGl0c2VsZiAoYW5kIHdpdGhpbgotZXhwcmVzc2lvbnMgY2FsbGVkIHdpdGhp biB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uKTsgdGhlIGxvY2FsCi12YXJpYWJsZXMgaGF2 ZSBubyBlZmZlY3Qgb3V0c2lkZSB0aGUgQGNvZGV7bGV0fSBleHByZXNzaW9uLgotCi1Bbm90 aGVyIHdheSB0byB0aGluayBhYm91dCBAY29kZXtsZXR9IGlzIHRoYXQgaXQgaXMgbGlrZSBh IEBjb2Rle3NldHF9Ci10aGF0IGlzIHRlbXBvcmFyeSBhbmQgbG9jYWwuICBUaGUgdmFsdWVz IHNldCBieSBAY29kZXtsZXR9IGFyZQotYXV0b21hdGljYWxseSB1bmRvbmUgd2hlbiB0aGUg QGNvZGV7bGV0fSBpcyBmaW5pc2hlZC4gIFRoZSBzZXR0aW5nCi1vbmx5IGFmZmVjdHMgZXhw cmVzc2lvbnMgdGhhdCBhcmUgaW5zaWRlIHRoZSBib3VuZHMgb2YgdGhlIEBjb2Rle2xldH0K LWV4cHJlc3Npb24uICBJbiBjb21wdXRlciBzY2llbmNlIGphcmdvbiwgd2Ugd291bGQgc2F5 IHRoZSBiaW5kaW5nIG9mCi1hIHN5bWJvbCBpcyB2aXNpYmxlIG9ubHkgaW4gZnVuY3Rpb25z IGNhbGxlZCBpbiB0aGUgQGNvZGV7bGV0fSBmb3JtOwotaW4gRW1hY3MgTGlzcCwgdGhlIGRl ZmF1bHQgc2NvcGluZyBpcyBkeW5hbWljLCBub3QgbGV4aWNhbC4gIChUaGUKLW5vbi1kZWZh dWx0IGxleGljYWwgYmluZGluZyBpcyBub3QgZGlzY3Vzc2VkIGluIHRoaXMgbWFudWFsLikK K0Fub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBjb2Rle2xldH0gaXMgdGhhdCBpdCBkZWZp bmVzIGEgc3BlY2lhbAorcmVnaW9uIGluIHlvdXIgY29kZTogd2l0aGluIHRoZSBib2R5IG9m IHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24sIHRoZQordmFyaWFibGVzIHlvdSd2ZSBuYW1l ZCBoYXZlIHRoZWlyIG93biBsb2NhbCBtZWFuaW5nLiAgT3V0c2lkZSBvZiB0aGUKK0Bjb2Rl e2xldH0gYm9keSwgdGhleSBoYXZlIG90aGVyIG1lYW5pbmdzIChvciB0aGV5IG1heSBub3Qg YmUgZGVmaW5lZAorYXQgYWxsKS4gIFRoaXMgbWVhbnMgdGhhdCBpbnNpZGUgdGhlIEBjb2Rl e2xldH0gYm9keSwgY2FsbGluZworQGNvZGV7c2V0cX0gZm9yIGEgdmFyaWFibGUgbmFtZWQg YnkgdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbiB3aWxsIHNldAordGhlIHZhbHVlIG9mIHRo ZSBAZW1waHtsb2NhbH0gdmFyaWFibGUgb2YgdGhhdCBuYW1lLiAgSG93ZXZlciwgb3V0c2lk ZQorb2YgdGhlIEBjb2Rle2xldH0gYm9keSAoc3VjaCBhcyB3aGVuIGNhbGxpbmcgYSBmdW5j dGlvbiB0aGF0IHdhcworZGVmaW5lZCBlbHNld2hlcmUpLCBjYWxsaW5nIEBjb2Rle3NldHF9 IGZvciBhIHZhcmlhYmxlIG5hbWVkIGJ5IHRoZQorQGNvZGV7bGV0fSBleHByZXNzaW9uIHdp bGwgQGVtcGh7bm90fSBhZmZlY3QgdGhhdCBsb2NhbAordmFyaWFibGUuQGZvb3Rub3Rle1Ro aXMgZGVzY3JpYmVzIHRoZSBiZWhhdmlvciBvZiBAY29kZXtsZXR9IHdoZW4KK3VzaW5nIGEg c3R5bGUgY2FsbGVkIGBgbGV4aWNhbCBiaW5kaW5nJycgKEBweHJlZntIb3cgbGV0IEJpbmRz CitWYXJpYWJsZXN9KS59CiAKIEBjb2Rle2xldH0gY2FuIGNyZWF0ZSBtb3JlIHRoYW4gb25l IHZhcmlhYmxlIGF0IG9uY2UuICBBbHNvLAogQGNvZGV7bGV0fSBnaXZlcyBlYWNoIHZhcmlh YmxlIGl0IGNyZWF0ZXMgYW4gaW5pdGlhbCB2YWx1ZSwgZWl0aGVyIGEKQEAgLTM3NzksNiAr Mzc4MiwxMjggQEAgVW5pbml0aWFsaXplZCBsZXQgVmFyaWFibGVzCiBAc2FtcHslc30uKSAg VGhlIGZvdXIgdmFyaWFibGVzIGFzIGEgZ3JvdXAgYXJlIHB1dCBpbnRvIGEgbGlzdCB0bwog ZGVsaW1pdCB0aGVtIGZyb20gdGhlIGJvZHkgb2YgdGhlIEBjb2Rle2xldH0uCiAKK0Bub2Rl IEhvdyBsZXQgQmluZHMgVmFyaWFibGVzCitAc3Vic2VjdGlvbiBIb3cgQGNvZGV7bGV0fSBC aW5kcyBWYXJpYWJsZXMKKworRW1hY3MgTGlzcCBzdXBwb3J0cyB0d28gZGlmZmVyZW50IHdh eXMgb2YgYmluZGluZyB2YXJpYWJsZSBuYW1lcyB0bwordGhlaXIgdmFsdWVzLiAgVGhlc2Ug d2F5cyBhZmZlY3QgdGhlIHBhcnRzIG9mIHlvdXIgcHJvZ3JhbSB3aGVyZSBhCitwYXJ0aWN1 bGFyIGJpbmRpbmcgaXMgdmFsaWQuICBGb3IgaGlzdG9yaWNhbCByZWFzb25zLCBFbWFjcyBM aXNwIHVzZXMKK2EgZm9ybSBvZiB2YXJpYWJsZSBiaW5kaW5nIGNhbGxlZCBAZGZue2R5bmFt aWMgYmluZGluZ30gYnkgZGVmYXVsdC4KK0hvd2V2ZXIsIGluIHRoaXMgbWFudWFsIHdlIGRp c2N1c3MgdGhlIHByZWZlcnJlZCBmb3JtIG9mIGJpbmRpbmcsCitjYWxsZWQgQGRmbntsZXhp Y2FsIGJpbmRpbmd9LCB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkIChpbiB0aGUgZnV0dXJlLAor dGhlIEVtYWNzIG1haW50YWluZXJzIHBsYW4gdG8gY2hhbmdlIHRoZSBkZWZhdWx0IHRvIGxl eGljYWwgYmluZGluZykuCitJZiB5b3UgaGF2ZSBwcm9ncmFtbWVkIGluIG90aGVyIGxhbmd1 YWdlcyBiZWZvcmUsIHlvdSdyZSBsaWtlbHkKK2FscmVhZHkgZmFtaWxpYXIgd2l0aCBob3cg bGV4aWNhbCBiaW5kaW5nIGJlaGF2ZXMuCisKK0luIG9yZGVyIHRvIHVzZSBsZXhpY2FsIGJp bmRpbmcgaW4gYSBwcm9ncmFtLCB5b3Ugc2hvdWxkIGFkZCB0aGlzIHRvCit0aGUgZmlyc3Qg bGluZSBvZiB5b3VyIEVtYWNzIExpc3AgZmlsZToKKworQGV4YW1wbGUKKzs7OyAtKi0gbGV4 aWNhbC1iaW5kaW5nOiB0IC0qLQorQGVuZCBleGFtcGxlCisKK0ZvciBtb3JlIGluZm9ybWF0 aW9uIGFib3V0IHRoaXMsIEBweHJlZntTZWxlY3RpbmcgTGlzcCBEaWFsZWN0LCAsICwKK2Vs aXNwLCBUaGUgRW1hY3MgTGlzcCBSZWZlcmVuY2UgTWFudWFsfS4KKworQG1lbnUKKyogTGV4 aWNhbCAmIER5bmFtaWMgQmluZGluZyBEaWZmZXJlbmNlczo6CisqIExleGljYWwgdnMuIER5 bmFtaWMgQmluZGluZyBFeGFtcGxlOjoKK0BlbmQgbWVudQorCitAbm9kZSBMZXhpY2FsICYg RHluYW1pYyBCaW5kaW5nIERpZmZlcmVuY2VzCitAdW5udW1iZXJlZHN1YnN1YnNlYyBEaWZm ZXJlbmNlcyBCZXR3ZWVuIExleGljYWwgYW5kIER5bmFtaWMgQmluZGluZworCitAY2luZGV4 IExleGljYWwgYmluZGluZworQGNpbmRleCBCaW5kaW5nLCBsZXhpY2FsCitBcyB3ZSBkaXNj dXNzZWQgYmVmb3JlIChAcHhyZWZ7UHJldmVudCBjb25mdXNpb259KSwgd2hlbiB5b3UgY3Jl YXRlCitsb2NhbCB2YXJpYWJsZXMgd2l0aCBAY29kZXtsZXR9IHVuZGVyIGxleGljYWwgYmlu ZGluZywgdGhvc2UgdmFyaWFibGVzCithcmUgdmFsaWQgb25seSB3aXRoaW4gdGhlIGJvZHkg b2YgdGhlIEBjb2Rle2xldH0gZXhwcmVzc2lvbi4gIEluIG90aGVyCitwYXJ0cyBvZiB5b3Vy IGNvZGUsIHRoZXkgaGF2ZSBvdGhlciBtZWFuaW5ncywgc28gaWYgeW91IGNhbGwgYQorZnVu Y3Rpb24gZGVmaW5lZCBlbHNld2hlcmUgd2l0aGluIHRoZSBAY29kZXtsZXR9IGJvZHksIHRo YXQgZnVuY3Rpb24KK3dvdWxkIGJlIHVuYWJsZSB0byBgYHNlZScnIHRoZSBsb2NhbCB2YXJp YWJsZXMgeW91J3ZlIGNyZWF0ZWQuICAoT24KK3RoZSBvdGhlciBoYW5kLCBpZiB5b3UgY2Fs bCBhIGZ1bmN0aW9uIHRoYXQgd2FzIGRlZmluZWQgd2l0aGluIGEKK0Bjb2Rle2xldH0gYm9k eSwgdGhhdCBmdW5jdGlvbiBAZW1waHt3b3VsZH0gYmUgYWJsZSB0byBzZWUtLS1hbmQKK21v ZGlmeS0tLXRoZSBsb2NhbCB2YXJpYWJsZXMgZnJvbSB0aGF0IEBjb2Rle2xldH0gZXhwcmVz c2lvbi4pCisKK0BjaW5kZXggRHluYW1pYyBiaW5kaW5nCitAY2luZGV4IEJpbmRpbmcsIGR5 bmFtaWMKK1VuZGVyIGR5bmFtaWMgYmluZGluZywgdGhlIHJ1bGVzIGFyZSBkaWZmZXJlbnQ6 IGluc3RlYWQsIHdoZW4geW91IHVzZQorQGNvZGV7bGV0fSwgdGhlIGxvY2FsIHZhcmlhYmxl cyB5b3UndmUgY3JlYXRlZCBhcmUgdmFsaWQgZHVyaW5nCitleGVjdXRpb24gb2YgdGhlIEBj b2Rle2xldH0gZXhwcmVzc2lvbi4gIFRoaXMgbWVhbnMgdGhhdCwgaWYgeW91cgorQGNvZGV7 bGV0fSBleHByZXNzaW9uIGNhbGxzIGEgZnVuY3Rpb24sIHRoYXQgZnVuY3Rpb24gY2FuIHNl ZSB0aGVzZQorbG9jYWwgdmFyaWFibGVzLCByZWdhcmRsZXNzIG9mIHdoZXJlIHRoZSBmdW5j dGlvbiBpcyBkZWZpbmVkCisoaW5jbHVkaW5nIGluIGFub3RoZXIgZmlsZSBlbnRpcmVseSku CisKK0Fub3RoZXIgd2F5IHRvIHRoaW5rIGFib3V0IEBjb2Rle2xldH0gd2hlbiB1c2luZyBk eW5hbWljIGJpbmRpbmcgaXMKK3RoYXQgZXZlcnkgdmFyaWFibGUgbmFtZSBoYXMgYSBnbG9i YWwgYGBzdGFjaycnIG9mIGJpbmRpbmdzLCBhbmQKK3doZW5ldmVyIHlvdSB1c2UgdGhhdCB2 YXJpYWJsZSdzIG5hbWUsIGl0IHJlZmVycyB0byB0aGUgYmluZGluZyBvbiB0aGUKK3RvcCBv ZiB0aGUgc3RhY2suICAoWW91IGNhbiBpbWFnaW5lIHRoaXMgbGlrZSBhIHN0YWNrIG9mIHBh cGVycyBvbgoreW91ciBkZXNrIHdpdGggdGhlIHZhbHVlcyB3cml0dGVuIG9uIHRoZW0uKSAg V2hlbiB5b3UgYmluZCBhIHZhcmlhYmxlCitkeW5hbWljYWxseSB3aXRoIEBjb2Rle2xldH0s IGl0IHB1dHMgdGhlIG5ldyBiaW5kaW5nIHlvdSd2ZSBzcGVjaWZpZWQKK29uIHRoZSB0b3Ag b2YgdGhlIHN0YWNrLCBhbmQgdGhlbiBleGVjdXRlcyB0aGUgQGNvZGV7bGV0fSBib2R5LiAg T25jZQordGhlIEBjb2Rle2xldH0gYm9keSBmaW5pc2hlcywgaXQgdGFrZXMgdGhhdCBiaW5k aW5nIG9mZiBvZiB0aGUgc3RhY2ssCityZXZlYWxpbmcgdGhlIG9uZSBpdCBoYWQgKGlmIGFu eSkgYmVmb3JlIHRoZSBAY29kZXtsZXR9IGV4cHJlc3Npb24uCisKK0Bub2RlIExleGljYWwg dnMuIER5bmFtaWMgQmluZGluZyBFeGFtcGxlCitAdW5udW1iZXJlZHN1YnN1YnNlYyBFeGFt cGxlIG9mIExleGljYWwgdnMuIER5bmFtaWMgQmluZGluZworSW4gc29tZSBjYXNlcywgYm90 aCBsZXhpY2FsIGFuZCBkeW5hbWljIGJpbmRpbmcgYmVoYXZlIGlkZW50aWNhbGx5LgorSG93 ZXZlciwgaW4gb3RoZXIgY2FzZXMsIHRoZXkgY2FuIGNoYW5nZSB0aGUgbWVhbmluZyBvZiB5 b3VyIHByb2dyYW0uCitGb3IgZXhhbXBsZSwgc2VlIHdoYXQgaGFwcGVucyBpbiB0aGlzIGNv ZGUgdW5kZXIgbGV4aWNhbCBiaW5kaW5nOgorCitAZXhhbXBsZQorOzs7IC0qLSBsZXhpY2Fs LWJpbmRpbmc6IHQgLSotCisKKyhzZXRxIHggMCkKKworKGRlZnVuIGdldHggKCkKKyAgeCkK KworKHNldHEgeCAxKQorCisobGV0ICgoeCAyKSkKKyAgKGdldHgpKQorICAgICBAcmVzdWx0 e30gMQorQGVuZCBleGFtcGxlCisKK0Bub2luZGVudAorSGVyZSwgdGhlIHJlc3VsdCBvZiBA Y29kZXsoZ2V0eCl9IGlzIEBjb2RlezF9LiAgVW5kZXIgbGV4aWNhbCBiaW5kaW5nLAorQGNv ZGV7Z2V0eH0gZG9lc24ndCBzZWUgdGhlIHZhbHVlIGZyb20gb3VyIEBjb2Rle2xldH0gZXhw cmVzc2lvbi4KK1RoYXQncyBiZWNhdXNlIHRoZSBib2R5IG9mIEBjb2Rle2dldHh9IGlzIG91 dHNpZGUgb2YgdGhlIGJvZHkgb2Ygb3VyCitAY29kZXtsZXR9IGV4cHJlc3Npb24uICBTaW5j ZSBAY29kZXtnZXR4fSBpcyBkZWZpbmVkIGF0IHRoZSB0b3AsCitnbG9iYWwgbGV2ZWwgb2Yg b3VyIGNvZGUgKGkuZS5AOiBub3QgaW5zaWRlIHRoZSBib2R5IG9mIGFueSBAY29kZXtsZXR9 CitleHByZXNzaW9uKSwgaXQgbG9va3MgZm9yIGFuZCBmaW5kcyBAY29kZXt4fSBhdCB0aGUg Z2xvYmFsIGxldmVsIGFzCit3ZWxsLiAgV2hlbiBleGVjdXRpbmcgQGNvZGV7Z2V0eH0sIHRo ZSBjdXJyZW50IGdsb2JhbCB2YWx1ZSBvZgorQGNvZGV7eH0gaXMgQGNvZGV7MX0sIHNvIHRo YXQncyB3aGF0IEBjb2Rle2dldHh9IHJldHVybnMuCisKK0lmIHdlIHVzZSBkeW5hbWljIGJp bmRpbmcgaW5zdGVhZCwgdGhlIGJlaGF2aW9yIGlzIGRpZmZlcmVudDoKKworQGV4YW1wbGUK Kzs7OyAtKi0gbGV4aWNhbC1iaW5kaW5nOiBuaWwgLSotCisKKyhzZXRxIHggMCkKKworKGRl ZnVuIGdldHggKCkKKyAgeCkKKworKHNldHEgeCAxKQorCisobGV0ICgoeCAyKSkKKyAgKGdl dHgpKQorICAgICBAcmVzdWx0e30gMgorQGVuZCBleGFtcGxlCisKK0Bub2luZGVudAorTm93 LCB0aGUgcmVzdWx0IG9mIEBjb2RleyhnZXR4KX0gaXMgQGNvZGV7Mn0hICBUaGF0J3MgYmVj YXVzZSB1bmRlcgorZHluYW1pYyBiaW5kaW5nLCB3aGVuIGV4ZWN1dGluZyBAY29kZXtnZXR4 fSwgdGhlIGN1cnJlbnQgYmluZGluZyBmb3IKK0Bjb2Rle3h9IGF0IHRoZSB0b3Agb2Ygb3Vy IHN0YWNrIGlzIHRoZSBvbmUgZnJvbSBvdXIgQGNvZGV7bGV0fQorYmluZGluZy4gIFRoaXMg dGltZSwgQGNvZGV7Z2V0eH0gZG9lc24ndCBzZWUgdGhlIGdsb2JhbCB2YWx1ZSBmb3IKK0Bj b2Rle3h9LCBzaW5jZSBpdHMgYmluZGluZyBpcyBiZWxvdyB0aGUgb25lIGZyb20gb3VyIEBj b2Rle2xldH0KK2V4cHJlc3Npb24gaW4gdGhlIHN0YWNrIG9mIGJpbmRpbmdzLgorCisoU29t ZSB2YXJpYWJsZXMgYXJlIGFsc28gYGBzcGVjaWFsJycsIGFuZCB0aGV5IGFyZSBhbHdheXMg ZHluYW1pY2FsbHkKK2JvdW5kIGV2ZW4gd2hlbiBAY29kZXtsZXhpY2FsLWJpbmRpbmd9IGlz IEBjb2Rle3R9LiAgQHhyZWZ7ZGVmdmFyLCAsCitJbml0aWFsaXppbmcgYSBWYXJpYWJsZSB3 aXRoIEBjb2Rle2RlZnZhcn19LikKKwogQG5vZGUgaWYKIEBzZWN0aW9uIFRoZSBAY29kZXtp Zn0gU3BlY2lhbCBGb3JtCiBAZmluZGV4IGlmCkBAIC05MTMwLDEyICs5MjU1LDE0IEBAIGRl ZnZhcgogZ2l2ZW4gYW4gaW5pdGlhbCB2YWx1ZSBieSB1c2luZyB0aGUgQGNvZGV7ZGVmdmFy fSBzcGVjaWFsIGZvcm0uICBUaGUKIG5hbWUgY29tZXMgZnJvbSBgYGRlZmluZSB2YXJpYWJs ZScnLgogCi1UaGUgQGNvZGV7ZGVmdmFyfSBzcGVjaWFsIGZvcm0gaXMgc2ltaWxhciB0byBA Y29kZXtzZXRxfSBpbiB0aGF0IGl0IHNldHMKLXRoZSB2YWx1ZSBvZiBhIHZhcmlhYmxlLiAg SXQgaXMgdW5saWtlIEBjb2Rle3NldHF9IGluIHR3byB3YXlzOiBmaXJzdCwKLWl0IG9ubHkg c2V0cyB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGlmIHRoZSB2YXJpYWJsZSBkb2VzIG5v dCBhbHJlYWR5Ci1oYXZlIGEgdmFsdWUuICBJZiB0aGUgdmFyaWFibGUgYWxyZWFkeSBoYXMg YSB2YWx1ZSwgQGNvZGV7ZGVmdmFyfSBkb2VzCi1ub3Qgb3ZlcnJpZGUgdGhlIGV4aXN0aW5n IHZhbHVlLiAgU2Vjb25kLCBAY29kZXtkZWZ2YXJ9IGhhcyBhCi1kb2N1bWVudGF0aW9uIHN0 cmluZy4KK1RoZSBAY29kZXtkZWZ2YXJ9IHNwZWNpYWwgZm9ybSBpcyBzaW1pbGFyIHRvIEBj b2Rle3NldHF9IGluIHRoYXQgaXQKK3NldHMgdGhlIHZhbHVlIG9mIGEgdmFyaWFibGUuICBJ dCBpcyB1bmxpa2UgQGNvZGV7c2V0cX0gaW4gdGhyZWUgd2F5czoKK2ZpcnN0LCBpdCBtYXJr cyB0aGUgdmFyaWFibGUgYXMgYGBzcGVjaWFsJycgc28gdGhhdCBpdCBpcyBhbHdheXMKK2R5 bmFtaWNhbGx5IGJvdW5kLCBldmVuIHdoZW4gQGNvZGV7bGV4aWNhbC1iaW5kaW5nfSBpcyBA Y29kZXt0fQorKEBweHJlZntIb3cgbGV0IEJpbmRzIFZhcmlhYmxlc30pLiAgU2Vjb25kLCBp dCBvbmx5IHNldHMgdGhlIHZhbHVlIG9mCit0aGUgdmFyaWFibGUgaWYgdGhlIHZhcmlhYmxl IGRvZXMgbm90IGFscmVhZHkgaGF2ZSBhIHZhbHVlLiAgSWYgdGhlCit2YXJpYWJsZSBhbHJl YWR5IGhhcyBhIHZhbHVlLCBAY29kZXtkZWZ2YXJ9IGRvZXMgbm90IG92ZXJyaWRlIHRoZQor ZXhpc3RpbmcgdmFsdWUuICBUaGlyZCwgQGNvZGV7ZGVmdmFyfSBoYXMgYSBkb2N1bWVudGF0 aW9uIHN0cmluZy4KIAogKFRoZXJlIGlzIGEgcmVsYXRlZCBtYWNybywgQGNvZGV7ZGVmY3Vz dG9tfSwgZGVzaWduZWQgZm9yIHZhcmlhYmxlcwogdGhhdCBwZW9wbGUgY3VzdG9taXplLiAg SXQgaGFzIG1vcmUgZmVhdHVyZXMgdGhhbiBAY29kZXtkZWZ2YXJ9LgotLSAKMi4yNS4xCgo= --------------PqrLK7WcJY5KW0Q0vbC1M0wq-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 10 14:36:33 2023 Received: (at 66756) by debbugs.gnu.org; 10 Dec 2023 19:36:33 +0000 Received: from localhost ([127.0.0.1]:51785 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCPbN-0002tc-4e for submit@debbugs.gnu.org; Sun, 10 Dec 2023 14:36:33 -0500 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:42415) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCPbI-0002tI-0c for 66756@debbugs.gnu.org; Sun, 10 Dec 2023 14:36:31 -0500 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-1d075392ff6so28206995ad.1 for <66756@debbugs.gnu.org>; Sun, 10 Dec 2023 11:36:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702236968; x=1702841768; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=4oAKRSsl/PmhcmSAAT2nLSvJqnIamY1h/E79SrzgLgg=; b=Sj2iMgVIE9kr1P0RGU/SnF0ruOJy8YLjhILA2s8AniLM1EZuNJiE9xvKNtNapyOIii k32tKA24vx5oLqSfX0ZFyga0ZeniSYKv3TzSz9Z4Z0Y/e+bO2ruyIRzKDvDkPmj9xMCM xcWxDJDKEMovK5q4wldAsjH1BjOsqUDh3xab7Vlcu7fER5zOadXcdoXV/Ot3nzS44gJ5 YFzekQJmHlvJ+/hLPtwCbrZm/XLwxaDQOTBBDqOWNigEsDfgys9Se1WkEvRnY1vbsBNm w4uGYVJzj5dqLsdrg8au43tElztP9CmN6G/WXYSDGd6avhMVWobxfjUToLyicuqdHjuC kmCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702236968; x=1702841768; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4oAKRSsl/PmhcmSAAT2nLSvJqnIamY1h/E79SrzgLgg=; b=fGxuG0WFoiJ19lPgjxz5LHhJypZVC0LNWU9U0g+zJt7H1fBQpFpstiDiHDct4B9tMH Yf9Ucen/7N57PVSg1MFs9oeqBZCjw0Yn7Wr7BNjgVT1Me0OrbbXxrnKBERXbtCZad38N ok967ssLO+oyA/TCZzqRo5HQa7rfgh/rsw3jlU/SuN6YAWfkX8t9CT09RiVKkiXqtygK SQ56akVvhEci04zrWy3OkFMcDkLA90wwGAAyb6ffA7gLGANs4be6qGJ9LD0l5v+Uso+L oxRz8ga+hR/O+TX3A//CXaHcvtySp+Z5IMgEATsrjkCsYnPKveoWhN4+FvQZSfEhJKwi BbXQ== X-Gm-Message-State: AOJu0YzcYvNTq1o++wD2h7q5m2Sj0neKVCTEYZawXXDn9sraYZKzyXuG 0lodwULIsN3176vooSrzcIc= X-Google-Smtp-Source: AGHT+IGvv/S5+zFeP4oEfhHtgtONpZ+Z9UlNzNQoJ22D+XwHA2tEUnea73PmLlKm2cRXuPPg6Mj0UQ== X-Received: by 2002:a17:903:244e:b0:1d0:b6d1:d442 with SMTP id l14-20020a170903244e00b001d0b6d1d442mr5141873pls.62.1702236967853; Sun, 10 Dec 2023 11:36:07 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id y12-20020a170902700c00b001bbb8d5166bsm5060468plk.123.2023.12.10.11.36.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Dec 2023 11:36:07 -0800 (PST) Message-ID: <96a00148-c5a8-7bd5-f9f0-eca3ddd9783b@gmail.com> Date: Sun, 10 Dec 2023 11:36:06 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US From: Jim Porter To: rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> In-Reply-To: <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) On 12/3/2023 8:34 PM, Jim Porter wrote: > I've split this into a main section and two subnodes: one describing how > lexical and dynamic binding work, and one showing an example of how they > behave differently in practice. Maybe the titles could be improved, but > they're the best I could come up with at the time... Does anyone have any further comments on this patch? If not, I'll merge it into the master branch in the next few days. (Of course, we can always improve it more after merging if someone has a suggestion.) From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 16 18:10:18 2023 Received: (at 66756) by debbugs.gnu.org; 16 Dec 2023 23:10:18 +0000 Received: from localhost ([127.0.0.1]:56329 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEdnV-0005FV-PX for submit@debbugs.gnu.org; Sat, 16 Dec 2023 18:10:18 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:44133) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEdnT-0005FF-RA for 66756@debbugs.gnu.org; Sat, 16 Dec 2023 18:10:16 -0500 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-33664cc674bso8732f8f.0 for <66756@debbugs.gnu.org>; Sat, 16 Dec 2023 15:10:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702768209; x=1703373009; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:from:to:cc:subject:date:message-id:reply-to; bh=hD1ElKuc23iptgCmDKu5oQCRxuax8efNs5c97lnJ3b4=; b=X3cY7uj68VRZA9yJXIS2E+JK+c5NSH2cEW6tNmNduOhikBm/ucqdDmndHVJzyV2Xu8 kYafoMbaSRblOO3+Smx+y7lMf9me/uwyN8QHS5WjgDvyoTvMKBTBQZwJAWT3T1ZgUPhv eRDIF2qrdSzeHHcNDkHXG5kmKtWEtJmtboCzwJK75aLvxAHncWoGLKX33PTDtU2t3KSB uMuq8a1HO+wQt34F0VcXwV/qx0KP60BxH1udZm1zPN4O8XJe8vboKlHODnGkyH1j908Y Op5Jn7I7srND4iYwNnsjQPOqoXRgmLAlVxO9H920nRqIYE+XVxbN2MZcF8Bj/SVSHG6W NjrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702768209; x=1703373009; h=cc:to:subject:message-id:date:mime-version:references:in-reply-to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hD1ElKuc23iptgCmDKu5oQCRxuax8efNs5c97lnJ3b4=; b=jo/Q7zBcJ5TnsKXYXEL62WPH1Q87Z2DrZvekBfugSV69fxBvWEFKhriYjU26c/+dDN bCWMn8y6H45AcS+gmuedgCyE7Lttb+v0ALih0kAc20UFC+nP6pmGZyL18ddAju3ENe4W UKJ/EvrUjUCwg0Quo3bdcw34L/Uw4BrGCisgKUjM62p1y2KygsyPBWDcKeXA+zk2JeXT onqFc8EqE8W5jHPPrR7tV/SVVHHr10Sthnt1OxMtXf17+B8iQ3aYoSPhnhREs7Tp8ImF EgmzmBBFrk17UrjQo23AhuWN1KCD6HVUZ6tw8HzRUqbsdzj0EP/QCiEDxbb9qyK38mVb JOWw== X-Gm-Message-State: AOJu0YyzUUBCcOV93Stzc8IsgJrein4aEMp8M5ObYRFIZqSlHcf7Xt5b g7790ULrG810FDhq4TT0Nm7nvMuvF2sBQPMjbJk= X-Google-Smtp-Source: AGHT+IGTOPi7OgyfiOLyto/EivbGt31y1qY6z2C1YfZlsJV76OTU6qZHzgDUfg8k3dz4lGWXoDoKXqRpIRDYaBUi+QM= X-Received: by 2002:a05:6000:551:b0:334:32d:63df with SMTP id b17-20020a056000055100b00334032d63dfmr6515813wrf.25.1702768208894; Sat, 16 Dec 2023 15:10:08 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sat, 16 Dec 2023 15:10:08 -0800 From: Stefan Kangas In-Reply-To: <96a00148-c5a8-7bd5-f9f0-eca3ddd9783b@gmail.com> References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> <96a00148-c5a8-7bd5-f9f0-eca3ddd9783b@gmail.com> MIME-Version: 1.0 Date: Sat, 16 Dec 2023 15:10:08 -0800 Message-ID: Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual To: Jim Porter , rms@gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) Jim Porter writes: > On 12/3/2023 8:34 PM, Jim Porter wrote: >> I've split this into a main section and two subnodes: one describing how >> lexical and dynamic binding work, and one showing an example of how they >> behave differently in practice. Maybe the titles could be improved, but >> they're the best I could come up with at the time... > > Does anyone have any further comments on this patch? If not, I'll merge > it into the master branch in the next few days. (Of course, we can > always improve it more after merging if someone has a suggestion.) I suggest merging it to emacs-29. If we indeed think it's better, let's get the improved documentation into users' hands. From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 17 15:47:52 2023 Received: (at 66756) by debbugs.gnu.org; 17 Dec 2023 20:47:52 +0000 Received: from localhost ([127.0.0.1]:59069 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEy3E-00071J-DO for submit@debbugs.gnu.org; Sun, 17 Dec 2023 15:47:52 -0500 Received: from mail-io1-xd29.google.com ([2607:f8b0:4864:20::d29]:61843) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rEy3C-00070L-L4 for 66756@debbugs.gnu.org; Sun, 17 Dec 2023 15:47:51 -0500 Received: by mail-io1-xd29.google.com with SMTP id ca18e2360f4ac-7b6fe5d67d4so111248139f.3 for <66756@debbugs.gnu.org>; Sun, 17 Dec 2023 12:47:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702846063; x=1703450863; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=wA7RdHmkMIFLcDFLwDSdDeJPL2oYYwnYzAeXO3194SI=; b=PCsiI9ulYOu5AnhKkar/5xtR2ULTc3J/0oNQfSGjwTvy528tBdNiaePf/f3JXioKa+ MRY4vlFrGT7C22pj6xSQSB1rJaXk5e47MLsJdnB/Vu3FyCWjgZSfWHu1kl5m/GapyoeH nvm7FHHR7lVTTHpBLrkcmzl2TQtPvuyxNFU19KrSop2EHJieYTpgY1z/AmANowt96xlT 9yO3KKp92l6v51KB1qSMcadwddHT3TEWkn0UfvQT0anwlag46mEOOomtlSE/fMeM2qYW ewBJbiSLxIZwnBWrCb/rDSrf8cYM0rfY+6ewwtk/wq6qaIPkynVTt/bimDmZrogfX1Fl qpOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702846063; x=1703450863; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=wA7RdHmkMIFLcDFLwDSdDeJPL2oYYwnYzAeXO3194SI=; b=t2byEi5JVYrInBovjPL6JwH+tELzrZmexXPg0J9rAv6wpbZHPuDS8ZnVK4nhvDzG9y O/7KSY5OfPy+2rXUFrxG7wJP+A0BnYFjodA8NwzPrXLmokwhRHxbSPApzU1u0Ui/OfNQ CsI+SraAtyuEUArkjWgNoW87kTFN4MxG2wC4EnwNYIgyOegd8/rKZ1KWW9g974WaVMg4 tU22reQmURujKJjyi1MVn4YEw6Lut2AcMyhZeA9Y/ZOp6hdeb8JofHP0LHjuPRGdlgK5 De9fknDvibpZC8VEHbcli74jGD+dFvD24OiC0Gwon1XDDwhJjUVJik4B1cQj7f+nJrpi TDKQ== X-Gm-Message-State: AOJu0YzVy20t00mRBdSA1Ch3TnQJgZnLn3aVkAkEyx3KWT1ZyeD/T71r Xd+/+cni1NeuV3/6fPsiL50= X-Google-Smtp-Source: AGHT+IEDPqqDVNQrdzHjyrn4DsLj2UKY29GSvl6CzHEeda+3KhzBOJFpAkmBJKhju3B+OTblsI9SyA== X-Received: by 2002:a6b:e510:0:b0:7a6:889e:c4b7 with SMTP id y16-20020a6be510000000b007a6889ec4b7mr15635701ioc.11.1702846063553; Sun, 17 Dec 2023 12:47:43 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id gu6-20020a056a004e4600b006cefa247464sm2050370pfb.188.2023.12.17.12.47.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 Dec 2023 12:47:43 -0800 (PST) Message-ID: <1197bfbd-3ae1-0e19-ddb3-fab43935db35@gmail.com> Date: Sun, 17 Dec 2023 12:47:41 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual To: Stefan Kangas , rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> <96a00148-c5a8-7bd5-f9f0-eca3ddd9783b@gmail.com> Content-Language: en-US From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756 Cc: eliz@gnu.org, 66756@debbugs.gnu.org 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: -1.0 (-) On 12/16/2023 3:10 PM, Stefan Kangas wrote: > Jim Porter writes: > >> Does anyone have any further comments on this patch? If not, I'll merge >> it into the master branch in the next few days. (Of course, we can >> always improve it more after merging if someone has a suggestion.) > > I suggest merging it to emacs-29. If we indeed think it's better, let's > get the improved documentation into users' hands. Sounds good to me. I'll give people another day or two to raise any last concerns, and if there aren't any, I'll merge to the 29 branch. From debbugs-submit-bounces@debbugs.gnu.org Tue Jan 09 13:41:08 2024 Received: (at 66756-done) by debbugs.gnu.org; 9 Jan 2024 18:41:08 +0000 Received: from localhost ([127.0.0.1]:40941 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rNH2B-0002iP-R3 for submit@debbugs.gnu.org; Tue, 09 Jan 2024 13:41:08 -0500 Received: from mail-oo1-xc30.google.com ([2607:f8b0:4864:20::c30]:44477) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rNH26-0002ha-0x; Tue, 09 Jan 2024 13:41:06 -0500 Received: by mail-oo1-xc30.google.com with SMTP id 006d021491bc7-59502aa878aso1793666eaf.1; Tue, 09 Jan 2024 10:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704825649; x=1705430449; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=ybkQtvxScoi8l/oyVZqMg4kBtkRHITBAfSnqv/+YfGs=; b=TQZgToauzHZTY+sdyyXHSIX58kUwzPTAYeFNuNyeBkcTpB+lRO9is8Uyt7UM5986KH uCO+47oQ458WsYVoz19+fcRZnZ5CMUKFoM4ik/9+KzXKk1ZcsF8RcGhJ/SeseT7Rs7OH Zj6Y0l8l3kdemfDTkZMrt1LA/2luQPzkrZaIuI4BIbdv1LwU1gd4Hftpf6HOzngXB1Xu 6LpGxB5qYdabTvYfGAgG3bd1rwj9FicuxeOYQRqto3HVXbM8N0De3JwDo1AYDWCOD9oR NhucOGm6yVv4Bd0ZZ+PBYPi9Yolo2Bw6BwlqGFCODVYRH7kMWSK4Ks6w/kSbQ0dO/6Bk myCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704825649; x=1705430449; h=content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ybkQtvxScoi8l/oyVZqMg4kBtkRHITBAfSnqv/+YfGs=; b=sAl7/WgDx7F0ZQKv1ALFlaUaE+DLk/9ITThirWQK6FdTJxoOcliv4Z9lQwch/DixQk CPhPTlz2R2Tf9DtcpxZ6xeMBVA2tpJTZMfbO1EPEhQDYW7RhPF3tS0GI0axj49FztGIs V8Vd1bN6BCaHs1rK2JdWDReUQccajKd2SmU9NCcCR5RIiW26I8PAzJ/CnKeZ6HcdJmWz 3KuidrhKx21LKJfIcCES6tLx7Tk5XPGS+jIHKn/aHZjxfdy5IxXPq4y2espb5p2aDDeR kFLeqG6e188nbLp3mo0A4KHnhMOJ+tumVwu5qum9p+rbazJH50BQ9y9RMEIeBpvtgif0 pdtA== X-Gm-Message-State: AOJu0Yyxn61cwnIAnvSRqBV3c4yk/9xSxlX7IyA0dzxkZ0GTVNVpog8B zRy/0EWuYeBuBBSSwMPWbxU= X-Google-Smtp-Source: AGHT+IFymqvrZiFjF0AM4/xiatlb6QAih9SxkGkm+CW+/aD1io40qSEStbRmmkoi/3hlEzAo9jonZw== X-Received: by 2002:a05:6358:2815:b0:175:73dc:9405 with SMTP id k21-20020a056358281500b0017573dc9405mr5365550rwb.57.1704825649127; Tue, 09 Jan 2024 10:40:49 -0800 (PST) Received: from [192.168.1.2] (076-168-148-233.res.spectrum.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id l8-20020a056a00140800b006d9ce7d3258sm1974044pfu.204.2024.01.09.10.40.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Jan 2024 10:40:48 -0800 (PST) Message-ID: <35439fd8-09bc-106d-63f0-6e4b56001b1d@gmail.com> Date: Tue, 9 Jan 2024 10:40:47 -0800 MIME-Version: 1.0 Subject: Re: bug#66756: 30.0.50; [PATCH] Improve discussion of 'let' in Elisp Introduction manual Content-Language: en-US From: Jim Porter To: Stefan Kangas , rms@gnu.org References: <3ade119d-0f0d-e60e-1bdc-9c7e02c1559c@gmail.com> <381836df-c16f-b3e7-d0c4-473290e165de@gmail.com> <9239b6bd-b476-b6c1-aef9-245e439aee42@gmail.com> <83jzq7fx5o.fsf@gnu.org> <64d90b0b-e003-7bc3-5312-6c7ab4c4591f@gmail.com> <838r6nfkfj.fsf@gnu.org> <83jzq6e0dn.fsf@gnu.org> <0fe9fc29-11d5-2983-8970-3f4b7969df2d@gmail.com> <8cea0f24-e868-2236-2697-bd4af1c863d3@gmail.com> <96a00148-c5a8-7bd5-f9f0-eca3ddd9783b@gmail.com> <1197bfbd-3ae1-0e19-ddb3-fab43935db35@gmail.com> In-Reply-To: <1197bfbd-3ae1-0e19-ddb3-fab43935db35@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 66756-done Cc: eliz@gnu.org, 66756-done@debbugs.gnu.org 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: -1.0 (-) Version: 29.2 On 12/17/2023 12:47 PM, Jim Porter wrote: > On 12/16/2023 3:10 PM, Stefan Kangas wrote: >> Jim Porter writes: >> >> I suggest merging it to emacs-29.  If we indeed think it's better, let's >> get the improved documentation into users' hands. > > Sounds good to me. I'll give people another day or two to raise any last > concerns, and if there aren't any, I'll merge to the 29 branch. I've now merged the latest revision of my patch to the release branch as d58d0fa52ff. Closing this bug. Of course, if anyone sees any further issues, just let me know and I'll try to address them. From unknown Tue Sep 23 14:57:18 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, 07 Feb 2024 12:24:13 +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