From unknown Sat Jun 21 10:35:03 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#32803 <32803@debbugs.gnu.org> To: bug#32803 <32803@debbugs.gnu.org> Subject: Status: 26.1.50; cl-do: Add more literature in docstring Reply-To: bug#32803 <32803@debbugs.gnu.org> Date: Sat, 21 Jun 2025 17:35:03 +0000 retitle 32803 26.1.50; cl-do: Add more literature in docstring reassign 32803 emacs submitter 32803 Tino Calancha severity 32803 wishlist thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 22 11:03:28 2018 Received: (at submit) by debbugs.gnu.org; 22 Sep 2018 15:03:28 +0000 Received: from localhost ([127.0.0.1]:49738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g3jRQ-0004JY-1B for submit@debbugs.gnu.org; Sat, 22 Sep 2018 11:03:28 -0400 Received: from eggs.gnu.org ([208.118.235.92]:33836) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g3jRO-0004JI-EZ for submit@debbugs.gnu.org; Sat, 22 Sep 2018 11:03:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g3jRH-0006xT-4f for submit@debbugs.gnu.org; Sat, 22 Sep 2018 11:03:20 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:51161) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g3jRF-0006vw-M8 for submit@debbugs.gnu.org; Sat, 22 Sep 2018 11:03:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54814) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g3jRE-00060q-RY for bug-gnu-emacs@gnu.org; Sat, 22 Sep 2018 11:03:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g3jR9-0006qU-UL for bug-gnu-emacs@gnu.org; Sat, 22 Sep 2018 11:03:15 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:44108) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g3jR8-0006mU-Iq for bug-gnu-emacs@gnu.org; Sat, 22 Sep 2018 11:03:11 -0400 Received: by mail-wr1-x436.google.com with SMTP id v16-v6so15524504wro.11 for ; Sat, 22 Sep 2018 08:03:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version; bh=Ext1476mDGTBBqKAPq/8TXduEI44Lyx3Nj72A9WojgM=; b=o8s0/vSBpTwyhNRX6MODSjiPfzbl2kWaE/xHgc9RB5XHoow4c7zhC6MTE7gO35CAdH TKerqrG/9eWfedRefHr6KX6VHf0TiggW1hie2yCFo+i54al/W3Cs5i+L1Xq6N6Ft/f0L SmNdpravgEuX4Gp/PRCrhBWwD4KEhuS1qCXNVBRz4QCTUD0VTtaT0oTcDNu+exDCxdGj JxnLlLMSBZdk96QTg2sh2VmrrH0XaAHYLRmOvlXxW/7nW1NOkrugMEgNl+PR+BvytcCI 4vuYKYyVTfzD/X/35av9697+4sNCxF/EsyzPYWsMouK1Sef+E8U9F1h/5FiI30NjfPAA qVkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=Ext1476mDGTBBqKAPq/8TXduEI44Lyx3Nj72A9WojgM=; b=jFvI8FQVKMgFLrip/nf21c2jIhriHk+kybcQ5LgWm+PxYrdWi/TsjRuspy+skITaTf eQicY7nLNVPDZ6Y3nGwiaknodjYww0k+222aXJwvsYvB+lO5Lol4GqpnOo8+fGrFBUeo buQYXLf3iKvrETzULwoRH91mE4PNpilrMRY6m9ajQTY7cn06TsDt529+H+8SPkkTmOFx j4Y9eiOTFn7EexQgk+V110NMvL2jK3Ye08jCkZloTeGNX22bTGbp/yxG5fv9DBEgv6BC /G9gGu64oa0Wz2UTKWPo2Hfw3nd7Sl1J7IDt1wsN34rWJkYhM30qd6S7tT6MnhTfalfs xDeA== X-Gm-Message-State: ABuFfohd8dLcTy9HkaEUiAerEQWMb0BL3lDQCOyZuAW/qkxICH2spnG4 jsNE+R4C8P7fqEWzvljfNRhr6+33 X-Google-Smtp-Source: ACcGV60FayB+aLTBHLLa5j6wzsfxsrIl6C9zawiL9u+0xHfyy6He4bWY3ZKle22LlpLUvnzd/gIHHQ== X-Received: by 2002:adf:93c2:: with SMTP id 60-v6mr2034482wrp.81.1537628588185; Sat, 22 Sep 2018 08:03:08 -0700 (PDT) Received: from calancha-pc.dy.bbexcite.jp (15.red-83-50-151.dynamicip.rima-tde.net. [83.50.151.15]) by smtp.gmail.com with ESMTPSA id x10-v6sm748027wmi.31.2018.09.22.08.03.06 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 22 Sep 2018 08:03:07 -0700 (PDT) From: Tino Calancha To: bug-gnu-emacs@gnu.org Subject: 26.1.50; cl-do: Add more literature in docstring Date: Sun, 23 Sep 2018 00:02:50 +0900 Message-ID: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> MIME-Version: 1.0 Content-Type: text/plain X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.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: -5.0 (-----) Severity: wishlist X-Debbugs-Cc: Eli Zaretskii Well, the subject say everything... the docstring of cl-do/cl-do* resembles one of my phone calls :-( Considering their names (do), it might be useful talk a bit about what the macros do :-) There is also room to say something on their arguments. We could add a link to the proper info manual node as well, as in the `cl-loop' docstring. --8<-----------------------------cut here---------------start------------->8--- commit 026e683f999a5ad3958dc133fe2a46863a00afe8 Author: Tino Calancha Date: Sat Sep 22 23:45:31 2018 +0900 * lisp/emacs-lisp/cl-macs.el(cl-do, cl-do*): Update docstring diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 0854e665b9..20c9fa454d 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1745,7 +1745,14 @@ cl--loop-build-ands ;;;###autoload (defmacro cl-do (steps endtest &rest body) - "The Common Lisp `do' loop. + "Bind variables and run BODY forms until END-TEST returns non-nil. +Bind VAR initially to INIT; on successive iterations update VAR + with STEP form. +On each iteration, check END-TEST before run BODY. +Return RESULT, default nil. + +This is the Common Lisp `do' loop. +For more details, see `cl-do' description in Info node `(cl) Iteration'. \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" (declare (indent 2) @@ -1757,7 +1764,14 @@ cl-do ;;;###autoload (defmacro cl-do* (steps endtest &rest body) - "The Common Lisp `do*' loop. + "Bind variables and run BODY forms until END-TEST returns non-nil. +Bind VAR initially to INIT; on successive iterations update VAR + with STEP form. +On each iteration, check END-TEST before run BODY. +Return RESULT, default nil. + +This is to `cl-do' what `let*' is to `let'. +For more details, see `cl-do*' description in Info node `(cl) Iteration'. \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" (declare (indent 2) (debug cl-do)) --8<-----------------------------cut here---------------end--------------->8--- In GNU Emacs 26.1.50 (build 16, x86_64-pc-linux-gnu, GTK+ Version 3.22.11) Repository revision: 41cdda22c78eb0b00612ce25cdb356dd64322fcc From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 05:14:05 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 09:14:05 +0000 Received: from localhost ([127.0.0.1]:51325 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4MwO-0002rT-QL for submit@debbugs.gnu.org; Mon, 24 Sep 2018 05:14:05 -0400 Received: from eggs.gnu.org ([208.118.235.92]:32872) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4MwO-0002qt-0V for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 05:14:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g4MwE-0004FV-VV for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 05:13:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:59411) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g4MwE-0004FL-Rv; Mon, 24 Sep 2018 05:13:54 -0400 Received: from [176.228.60.248] (port=3993 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1g4MwE-0006rr-B8; Mon, 24 Sep 2018 05:13:54 -0400 Date: Mon, 24 Sep 2018 12:13:46 +0300 Message-Id: <83ftxzb6lx.fsf@gnu.org> From: Eli Zaretskii To: Tino Calancha In-reply-to: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> (message from Tino Calancha on Sun, 23 Sep 2018 00:02:50 +0900) Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 32803 Cc: 32803@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: -6.0 (------) > Cc: eli zaretskii > From: Tino Calancha > Date: Sun, 23 Sep 2018 00:02:50 +0900 > > Well, the subject say everything... the docstring of cl-do/cl-do* > resembles one of my phone calls :-( > > Considering their names (do), it might be useful talk a bit about > what the macros do :-) > There is also room to say something on their arguments. Thanks. My suggestion is to copy the description from the first paragraph of what the CL manual says. For example, for cl-do, it says this: First, each VAR is bound to the associated INIT value as if by a ‘let’ form. Then, in each iteration of the loop, the END-TEST is evaluated; if true, the loop is finished. Otherwise, the body FORMS are evaluated, then each VAR is set to the associated STEP expression (as if by a ‘cl-psetq’ form) and the next iteration begins. Once the END-TEST becomes true, the RESULT forms are evaluated (with the VARs still bound to their values) to produce the result returned by ‘cl-do’. This could possibly be made less wordy like this: Bind VAR initially to INIT. On each iteration, evaluate END-TEST; if nil, evaluate FORMS, set each VAR to the associated STEP expression, and perform the next iteration. When END-TEST becomes non-nil, finish the loop and return the result of evaluation of the forms in RESULT. > (defmacro cl-do (steps endtest &rest body) > - "The Common Lisp `do' loop. > + "Bind variables and run BODY forms until END-TEST returns non-nil. The first summary line is very good, please keep it. I leave it to you to decide whether a link to the Info manual is needed, after these changes. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 06:17:52 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 10:17:52 +0000 Received: from localhost ([127.0.0.1]:51364 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Nw8-0006Vp-05 for submit@debbugs.gnu.org; Mon, 24 Sep 2018 06:17:52 -0400 Received: from mail-wm1-f44.google.com ([209.85.128.44]:38798) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Nw6-0006Va-P2 for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 06:17:51 -0400 Received: by mail-wm1-f44.google.com with SMTP id z16-v6so2993587wmi.3 for <32803@debbugs.gnu.org>; Mon, 24 Sep 2018 03:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=yVlwkOp55/Ih+AZwaQj6cPMWGvQjbs5xJRdgAYSBt4Y=; b=RqPeOtlYvyXYn31CZA5/PIjXYvviEI/i1scQOFqYllPiG/mB69BhD04poXLtB46VbU a/tNX23jMAU9zs0AEJEfX2b+1YkwYRyVurVC5CeH0YKRKi3sLNgtTW3PLUGkTR4hsWm2 SPV9y7JNpDwCMgsYm+MICw1JJllowhC7HClhq6iPpUy1krkSrbBT6VEGQ6X408pvOADI BNlCr2pyUDFSexLsxOQHVIXkNCW1mMcfinmNYWmJKbAepXFc/Awh0/DkCM29YBNcTu/W 9AAha0u/MChJAn9GfikLugwExGTzVZcd/vXDwI3cMOVQciSj9yo1j7oHk34yYl3w6euu Ol5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=yVlwkOp55/Ih+AZwaQj6cPMWGvQjbs5xJRdgAYSBt4Y=; b=kZ9ntQKgnbDuZDjd8jFpHQOVigNrkaaQh12GzhEWeru8rC6VUhUt2OSElKULoTE4Ou MYQ1uP06aF+OOASSazOZxeuF37uuGn1iUrpsdUoKWJsEuDJREfz+aPFnd5dTeDHKb/65 doiKOzxa+0EM9DLT6rylK6YPAgSXFweuVVHDxAJXjbBTIyM3/KCeQcDxD7m/kxJaiOrC ISyxa9x8U6mzSiFNizVfIsXvnNLq36SEDCexjk+MymvSYMI43n3L1TIPT5JaIF/vWK5f 5uY/ltoneqozG123TOrx6ZK4ZVcnhOLfIlW1XpoR+9siq16rFQZrihs4Dufehf2uFlCT JbkQ== X-Gm-Message-State: APzg51CvoX5D+MnT0fMZsjYs9DYaGc7eu7khChglixWrWeaXUpa+nE0M A4PqcnWMq03vdjSnipWz6Jwdveyj X-Google-Smtp-Source: ANB0VdZgGOc756i3PWNnjBO/oPIIDBzSFYgvYUWoZKalmWowweWpolzE3+uqdStPjJ/rlcxIa2cbMg== X-Received: by 2002:a1c:8153:: with SMTP id c80-v6mr6072474wmd.123.1537784263792; Mon, 24 Sep 2018 03:17:43 -0700 (PDT) Received: from calancha-pc.dy.bbexcite.jp (15.red-83-50-151.dynamicip.rima-tde.net. [83.50.151.15]) by smtp.gmail.com with ESMTPSA id o23-v6sm1848367wmh.13.2018.09.24.03.17.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Sep 2018 03:17:43 -0700 (PDT) From: Tino Calancha To: Eli Zaretskii Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> Date: Mon, 24 Sep 2018 19:17:41 +0900 In-Reply-To: <83ftxzb6lx.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 24 Sep 2018 12:13:46 +0300") Message-ID: <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32803 Cc: 32803@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 (-) Eli Zaretskii writes: >> Cc: eli zaretskii >> From: Tino Calancha >> Date: Sun, 23 Sep 2018 00:02:50 +0900 >> >> Well, the subject say everything... the docstring of cl-do/cl-do* >> resembles one of my phone calls :-( >> >> Considering their names (do), it might be useful talk a bit about >> what the macros do :-) >> There is also room to say something on their arguments. > > Thanks. My suggestion is to copy the description from the first > paragraph of what the CL manual says. It's very precise. Thank you. I just added that the whole loop is wrapped inside a `nil' block. > I leave it to you to decide whether a link to the Info manual is > needed, after these changes. It's worth to keep it so that users can take a look on the provided examples. I will push the following in a couple of days in case no more activity in this thread: --8<-----------------------------cut here---------------start------------->8--- commit 805adebd1ff999358e016dff8d60751aba657262 Author: Tino Calancha Date: Mon Sep 24 19:09:29 2018 +0900 * lisp/emacs-lisp/cl-macs.el(cl-do, cl-do*): Update docstring diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 0854e665b9..10bc611325 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1745,7 +1745,21 @@ cl--loop-build-ands ;;;###autoload (defmacro cl-do (steps endtest &rest body) - "The Common Lisp `do' loop. + "Bind variables and run BODY forms until END-TEST returns non-nil. +First, each VAR is bound to the associated INIT value as if by a `let' form. +Then, in each iteration of the loop, the END-TEST is evaluated; if true, +the loop is finished. Otherwise, the BODY forms are evaluated, then each +VAR is set to the associated STEP expression (as if by a `cl-psetq' +form) and the next iteration begins. + +Once the END-TEST becomes true, the RESULT forms are evaluated (with +the VARs still bound to their values) to produce the result +returned by `cl-do'. + +Note that the entire loop is enclosed in an implicit `nil' block, so +that you can use `cl-return' to exit at any time. + +For more details, see `cl-do' description in Info node `(cl) Iteration'. \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" (declare (indent 2) @@ -1757,7 +1771,22 @@ cl-do ;;;###autoload (defmacro cl-do* (steps endtest &rest body) - "The Common Lisp `do*' loop. + "Bind variables and run BODY forms until END-TEST returns non-nil. +First, each VAR is bound to the associated INIT value as if by a `let*' form. +Then, in each iteration of the loop, the END-TEST is evaluated; if true, +the loop is finished. Otherwise, the BODY forms are evaluated, then each +VAR is set to the associated STEP expression (as if by a `setq' +form) and the next iteration begins. + +Once the END-TEST becomes true, the RESULT forms are evaluated (with +the VARs still bound to their values) to produce the result +returned by `cl-do*'. + +Note that the entire loop is enclosed in an implicit `nil' block, so +that you can use `cl-return' to exit at any time. + +This is to `cl-do' what `let*' is to `let'. +For more details, see `cl-do*' description in Info node `(cl) Iteration'. \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" (declare (indent 2) (debug cl-do)) --8<-----------------------------cut here---------------end--------------->8--- In GNU Emacs 26.1.50 (build 20, x86_64-pc-linux-gnu, GTK+ Version 3.22.11) Repository revision: 41cdda22c78eb0b00612ce25cdb356dd64322fcc From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 12:43:54 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 16:43:54 +0000 Received: from localhost ([127.0.0.1]:52276 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Txh-0001qr-Rc for submit@debbugs.gnu.org; Mon, 24 Sep 2018 12:43:54 -0400 Received: from mail.ericabrahamsen.net ([50.56.99.223]:56951) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Txg-0001qj-J5 for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 12:43:53 -0400 Received: from localhost (c-73-11-212-251.hsd1.wa.comcast.net [73.11.212.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 986F5C16EE; Mon, 24 Sep 2018 16:43:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.ericabrahamsen.net; s=mail; t=1537807431; bh=5SHbYHMZUD8cRxUwZfniZUfSrwASZ+ZKaKVGeu+s8Ys=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=eWq88ajXeJnmowvmQXZ7J+hDXeE1pyE6NySGY8iaGyWlR+sdz9o7X8pSXE2DSLhf1 XdfJak1vO4zxyYXRDOnoo/skHJHASqVR7mZj03eEi0YjepXGKap4Yc3A+aGIFiU7j1 UD9z7ssfys7wNSQ/G4FbpxQWhzKGPXAuqhpoxMN8= From: Eric Abrahamsen To: Tino Calancha Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> Date: Mon, 24 Sep 2018 09:43:49 -0700 In-Reply-To: <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> (Tino Calancha's message of "Mon, 24 Sep 2018 19:17:41 +0900") Message-ID: <87va6un8vu.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 32803 Cc: Eli Zaretskii , 32803@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 (---) Tino Calancha writes: > Eli Zaretskii writes: > >>> Cc: eli zaretskii >>> From: Tino Calancha >>> Date: Sun, 23 Sep 2018 00:02:50 +0900 >>> >>> Well, the subject say everything... the docstring of cl-do/cl-do* >>> resembles one of my phone calls :-( >>> >>> Considering their names (do), it might be useful talk a bit about >>> what the macros do :-) >>> There is also room to say something on their arguments. >> >> Thanks. My suggestion is to copy the description from the first >> paragraph of what the CL manual says. > It's very precise. Thank you. > I just added that the whole loop is wrapped inside a `nil' block. >> I leave it to you to decide whether a link to the Info manual is >> needed, after these changes. > It's worth to keep it so that users can take a look on the > provided examples. > > I will push the following in a couple of days in case no more > activity in this thread: > > commit 805adebd1ff999358e016dff8d60751aba657262 > Author: Tino Calancha > Date: Mon Sep 24 19:09:29 2018 +0900 > > * lisp/emacs-lisp/cl-macs.el(cl-do, cl-do*): Update docstring > > diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el > index 0854e665b9..10bc611325 100644 > --- a/lisp/emacs-lisp/cl-macs.el > +++ b/lisp/emacs-lisp/cl-macs.el > @@ -1745,7 +1745,21 @@ cl--loop-build-ands > > ;;;###autoload > (defmacro cl-do (steps endtest &rest body) > - "The Common Lisp `do' loop. > + "Bind variables and run BODY forms until END-TEST returns non-nil. > +First, each VAR is bound to the associated INIT value as if by a `let' form. > +Then, in each iteration of the loop, the END-TEST is evaluated; if true, ^^^^^^^ >From the peanut gallery: Without looking at the code, I'm not sure if this means the test is evaluated *before* BODY (ie, BODY may never run), or *after* BODY (ie, BODY always runs at least once). Could that "in" be changed to either "before" or "after"? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 12:58:41 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 16:58:41 +0000 Received: from localhost ([127.0.0.1]:52280 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4UC1-0002CN-6x for submit@debbugs.gnu.org; Mon, 24 Sep 2018 12:58:41 -0400 Received: from eggs.gnu.org ([208.118.235.92]:36400) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4UC0-0002CA-Bz for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 12:58:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g4UBr-0001yu-SB for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 12:58:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:38469) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g4UBr-0001yp-Oq; Mon, 24 Sep 2018 12:58:31 -0400 Received: from [176.228.60.248] (port=4913 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1g4UBr-0004Kn-A5; Mon, 24 Sep 2018 12:58:31 -0400 Date: Mon, 24 Sep 2018 19:58:25 +0300 Message-Id: <83y3bqal3i.fsf@gnu.org> From: Eli Zaretskii To: Eric Abrahamsen In-reply-to: <87va6un8vu.fsf@ericabrahamsen.net> (message from Eric Abrahamsen on Mon, 24 Sep 2018 09:43:49 -0700) Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 32803 Cc: 32803@debbugs.gnu.org, tino.calancha@gmail.com 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: -6.0 (------) > From: Eric Abrahamsen > Cc: Eli Zaretskii , 32803@debbugs.gnu.org > Date: Mon, 24 Sep 2018 09:43:49 -0700 > > > +Then, in each iteration of the loop, the END-TEST is evaluated; if true, > ^^^^^^^ > > >From the peanut gallery: Without looking at the code, I'm not sure if > this means the test is evaluated *before* BODY (ie, BODY may never run), > or *after* BODY (ie, BODY always runs at least once). You've removed the answer to that question. The full text says: Then, in each iteration of the loop, the END-TEST is evaluated; if true, the loop is finished. Otherwise, the body FORMS are evaluated, then each VAR is set to the associated STEP expression [...] which clearly tells that the test is done _before_ the BODY is run. Right? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 13:53:09 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 17:53:10 +0000 Received: from localhost ([127.0.0.1]:52321 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4V2j-0003Ym-Kw for submit@debbugs.gnu.org; Mon, 24 Sep 2018 13:53:09 -0400 Received: from mail.ericabrahamsen.net ([50.56.99.223]:60368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4V2h-0003Yb-Kj for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 13:53:07 -0400 Received: from localhost (c-73-11-212-251.hsd1.wa.comcast.net [73.11.212.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 7D497C5C4B; Mon, 24 Sep 2018 17:53:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.ericabrahamsen.net; s=mail; t=1537811586; bh=IEPBGjRg+wDvLqS/uia+Ia5GlDbUSyTvEXrTHH96/8w=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=JOqiFDw5JU/7cH4R/U5m0qGfzOl815ITVkVVjHGHnm9uWhtK4jsqZokB+az/u7p2r AUDBFCYJEE+fpdlDcWEh3VqvNAKZJW8uQf5yYr5sxkPxXOstmhH0/dMdhFajW6Ct+5 PNYcTX8PRS1zPOnAHI0Pvag2UN2P0YGyhqqn5VF0= From: Eric Abrahamsen To: Eli Zaretskii Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> Date: Mon, 24 Sep 2018 10:53:04 -0700 In-Reply-To: <83y3bqal3i.fsf@gnu.org> (Eli Zaretskii's message of "Mon, 24 Sep 2018 19:58:25 +0300") Message-ID: <87d0t2n5of.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 32803 Cc: 32803@debbugs.gnu.org, tino.calancha@gmail.com 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 (---) Eli Zaretskii writes: >> From: Eric Abrahamsen >> Cc: Eli Zaretskii , 32803@debbugs.gnu.org >> Date: Mon, 24 Sep 2018 09:43:49 -0700 >> >> > +Then, in each iteration of the loop, the END-TEST is evaluated; if true, >> ^^^^^^^ >> >> >From the peanut gallery: Without looking at the code, I'm not sure if >> this means the test is evaluated *before* BODY (ie, BODY may never run), >> or *after* BODY (ie, BODY always runs at least once). > > You've removed the answer to that question. The full text says: > > Then, in each > iteration of the loop, the END-TEST is evaluated; if true, the loop > is finished. Otherwise, the body FORMS are evaluated, then each > VAR is set to the associated STEP expression [...] > > which clearly tells that the test is done _before_ the BODY is run. > Right? I guess you're right, yes. "In" still seems unnecessarily vague, though, when it could simply be replaced with "before". But not that big a deal, I guess. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 24 16:43:37 2018 Received: (at 32803) by debbugs.gnu.org; 24 Sep 2018 20:43:37 +0000 Received: from localhost ([127.0.0.1]:52552 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Xhg-0007pW-Kn for submit@debbugs.gnu.org; Mon, 24 Sep 2018 16:43:37 -0400 Received: from mail-wm1-f47.google.com ([209.85.128.47]:53582) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g4Xhd-0007pI-WE for 32803@debbugs.gnu.org; Mon, 24 Sep 2018 16:43:34 -0400 Received: by mail-wm1-f47.google.com with SMTP id b19-v6so11114985wme.3 for <32803@debbugs.gnu.org>; Mon, 24 Sep 2018 13:43:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:date:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version; bh=Wstts+vrm1o7dgydo7nH8Rl4817vrO9Bb6PgUUIISTk=; b=HBHdNMJVxn7SQSlSFwypQoo/wwDxzZ/fCP9/B3nx4hHOBwK/flbhXnZHvY6vn2aQy1 Xug+VVh55J3KVVvNCEbqwAcYyffMXjp69mXHi9BXSPz2KW5FPCkOW2G/EBV4BI4nzcnP hOFrCpDRwTFA7Af1v00nl0EKoxEu/FGzAMx2oIcpdsEVkGc1BV4lxIdAS9K5gXdFS2TZ 9VWFh3aBsPk2aF/NVQiDv9WQa6qjyWTL+j3KsU/7Elk33BQHSax7yrGinS+cYrFtqK6E 2PkeuVGKT68a9lpxA2Xn0YLPZK6WDr1aqY0wxyGMovYwQpSMfBAgymOaeYcRSrb4IKIH 8dYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:date:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version; bh=Wstts+vrm1o7dgydo7nH8Rl4817vrO9Bb6PgUUIISTk=; b=teWlgbMEdCT+w/gKjv3YiSJV+aiKpWyj19sQZeAulgcksthgGNBut/EVepLyAcUioK klH8RNCM5LvHF9rvRPHFQpV+tjDjYj3s6agO3aR/wsNVI00xgTERZBHxX4dZLtdVFNEA 9DnOUZFimj9nKjax2tnG3wwyA5ZQHTFySx9mEPtROU0/ctGx4UcvPLsfHsjvsodoUxcH d1B9YmBNy6pNlyhHwW3QFLUgtq6sFXAO1iM85LfNAxx9gCSuKnIGa9zJ7emlVN/EnM1p oiK6Q5xT/e4VRw+ZzXWVJ1qSEnfAI6I4+U3xgFYoIn3yVh+UF4G5L7PJUyhVTIkQvO1Z Escg== X-Gm-Message-State: ABuFfoh6Vq//GD9rL6stH6ADOB2uVB2BGfu/GnEofqPI2S+SECaThllk Frmxws4rS4nNg6wL/x0rgIo= X-Google-Smtp-Source: ACcGV62mbDQkdmZN79M/V/kP1iTDZfiMc0dTttetAWYb5He80VJmwjC6Y0fpfYVt+TcxC24GaQi5vg== X-Received: by 2002:a1c:8e04:: with SMTP id q4-v6mr85939wmd.150.1537821807983; Mon, 24 Sep 2018 13:43:27 -0700 (PDT) Received: from calancha-pc.dy.bbexcite.jp (15.red-83-50-151.dynamicip.rima-tde.net. [83.50.151.15]) by smtp.gmail.com with ESMTPSA id 144-v6sm108962wma.19.2018.09.24.13.43.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 24 Sep 2018 13:43:27 -0700 (PDT) From: Tino Calancha X-Google-Original-From: Tino Calancha Date: Tue, 25 Sep 2018 05:43:25 +0900 (JST) X-X-Sender: calancha@calancha-pc.dy.bbexcite.jp To: Eric Abrahamsen Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring In-Reply-To: <87d0t2n5of.fsf@ericabrahamsen.net> Message-ID: References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> <87d0t2n5of.fsf@ericabrahamsen.net> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=US-ASCII X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32803 Cc: Eli Zaretskii , 32803@debbugs.gnu.org, Tino Calancha 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 Mon, 24 Sep 2018, Eric Abrahamsen wrote: > Eli Zaretskii writes: > >>> From: Eric Abrahamsen >>> Cc: Eli Zaretskii , 32803@debbugs.gnu.org >>> Date: Mon, 24 Sep 2018 09:43:49 -0700 >>> >>>> +Then, in each iteration of the loop, the END-TEST is evaluated; if true, >>> ^^^^^^^ >>> >>>> From the peanut gallery: Without looking at the code, I'm not sure if >>> this means the test is evaluated *before* BODY (ie, BODY may never run), >>> or *after* BODY (ie, BODY always runs at least once). >> >> You've removed the answer to that question. The full text says: >> >> Then, in each >> iteration of the loop, the END-TEST is evaluated; if true, the loop >> is finished. Otherwise, the body FORMS are evaluated, then each >> VAR is set to the associated STEP expression [...] >> >> which clearly tells that the test is done _before_ the BODY is run. >> Right? > > I guess you're right, yes. "In" still seems unnecessarily vague, though, > when it could simply be replaced with "before". But not that big a deal, > I guess. Thank you for the feedback Eric. In some sense, the endtest is part of the loop, that's why the "in". It behaves similar like this: [initialize/update VARS] (if endtest (return RESULT) body) I am OK to rephrase it to make it more obvious if you have something in mind. Some people learning CL complaint about this iteration as been weird. I see it as a generalization of a `dolist'. Paul Graham build many tools on top of this. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 27 00:09:15 2018 Received: (at submit) by debbugs.gnu.org; 27 Sep 2018 04:09:15 +0000 Received: from localhost ([127.0.0.1]:55827 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5Nc3-0003Gj-Bi for submit@debbugs.gnu.org; Thu, 27 Sep 2018 00:09:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:34858) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5Nc1-0003GT-Fe for submit@debbugs.gnu.org; Thu, 27 Sep 2018 00:09:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g5Nbr-000531-S8 for submit@debbugs.gnu.org; Thu, 27 Sep 2018 00:09:06 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:45938) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g5Nbp-00050x-W1 for submit@debbugs.gnu.org; Thu, 27 Sep 2018 00:09:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44434) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g5Nbo-0006tD-Sf for bug-gnu-emacs@gnu.org; Thu, 27 Sep 2018 00:09:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g5Nbk-0004yU-6S for bug-gnu-emacs@gnu.org; Thu, 27 Sep 2018 00:09:00 -0400 Received: from [195.159.176.226] (port=56782 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g5Nbj-0004xU-U9 for bug-gnu-emacs@gnu.org; Thu, 27 Sep 2018 00:08:56 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1g5NZW-00066h-Do for bug-gnu-emacs@gnu.org; Thu, 27 Sep 2018 06:06:38 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: bug-gnu-emacs@gnu.org From: Eric Abrahamsen Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring Date: Wed, 26 Sep 2018 21:08:38 -0700 Lines: 53 Message-ID: <87y3bnoa49.fsf@ericabrahamsen.net> References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> <87d0t2n5of.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain X-Complaints-To: usenet@blaine.gmane.org User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cancel-Lock: sha1:QOOhmk/Jh4w4q9o6v16mahGLXx8= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.8 (----) 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: -5.8 (-----) Tino Calancha writes: > On Mon, 24 Sep 2018, Eric Abrahamsen wrote: > >> Eli Zaretskii writes: >> >>>> From: Eric Abrahamsen >>>> Cc: Eli Zaretskii , 32803@debbugs.gnu.org >>>> Date: Mon, 24 Sep 2018 09:43:49 -0700 >>>> >>>>> +Then, in each iteration of the loop, the END-TEST is evaluated; if true, >>>> ^^^^^^^ >>>> >>>>> From the peanut gallery: Without looking at the code, I'm not sure if >>>> this means the test is evaluated *before* BODY (ie, BODY may never run), >>>> or *after* BODY (ie, BODY always runs at least once). >>> >>> You've removed the answer to that question. The full text says: >>> >>> Then, in each >>> iteration of the loop, the END-TEST is evaluated; if true, the loop >>> is finished. Otherwise, the body FORMS are evaluated, then each >>> VAR is set to the associated STEP expression [...] >>> >>> which clearly tells that the test is done _before_ the BODY is run. >>> Right? >> >> I guess you're right, yes. "In" still seems unnecessarily vague, though, >> when it could simply be replaced with "before". But not that big a deal, >> I guess. > Thank you for the feedback Eric. > In some sense, the endtest is part of the loop, that's why the "in". > It behaves similar like this: > > [initialize/update VARS] > (if endtest > (return RESULT) > body) > > > I am OK to rephrase it to make it more obvious if you have something > in mind. I don't have a serious objection! It just seems to me that the key question about any test-and-loop construct is: does it test first, or loop first? As Eli points out, the rest of the docstring makes it clear that it tests first. It just seems to me that nothing is lost (and something gained) by replacing "in" with "before". It really doesn't matter all that much. Thanks, Eric From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 28 16:14:11 2018 Received: (at 32803) by debbugs.gnu.org; 28 Sep 2018 20:14:11 +0000 Received: from localhost ([127.0.0.1]:58021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5z9O-0004gN-Or for submit@debbugs.gnu.org; Fri, 28 Sep 2018 16:14:11 -0400 Received: from mail-wr1-f44.google.com ([209.85.221.44]:40017) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5z9N-0004g6-4f for 32803@debbugs.gnu.org; Fri, 28 Sep 2018 16:14:09 -0400 Received: by mail-wr1-f44.google.com with SMTP id y8-v6so7606552wrh.7 for <32803@debbugs.gnu.org>; Fri, 28 Sep 2018 13:14:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=YXDbuQ/QTQUyusrMSNKMvNddFiz2akN0BF/9Y2Qbg+U=; b=o0W8qInkcNnPMPfdolXOCW64iwcfL9pmJtowf8PqW1+3maNHq6GQ2DVTATB4ROfWs1 T2P6an9rNPSoDzretMc3l3AU/rW8tK5D+/UjBLKPyEcvrEpQQeSGw50SVJPfEGEOpP97 1Lp7sm1nBXECb7fBw4S8wUpifSzUoKP1F7TywrAz+zSNFwJoE+1IInK5cof9ZcQpgTW2 TS7CuhBGIds3gsbZTN2KsDaME1hBsddJcXEyXRQTtL5uLfSVXB6NTpi72pncPee6Hfc7 R4h4nPRIHIhoww5E7mTfsq3jamc9lNr4YciZlcwJIQjIlaVSHohEyr2jF7HyPGJxllue rMow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=YXDbuQ/QTQUyusrMSNKMvNddFiz2akN0BF/9Y2Qbg+U=; b=k0dD59CL6ZCEbkaLufl7WcplhRuGAuF25y923ZhznwOuEeO8GZGo4a+6ecc/O05jy8 FG/8DZ7ztXR6TRyse6A00xOmft3l22iHxfvsmuihZOcQAtMIxPnjy/zmXGBhwa6lZ3VK HEJcWCxOnBU6nbKV4JKPgweEjqO8/Xz/dmeqwlWMfj0VPp2ALyO/4iCNjKJHVEqVmbVh whxYxoWcmIde2tLbB5/gSJ2VkIL97S3ErLacqYZZ30ORekkvxxCO9W+nqw+EKMi5H/4a SlGClrgZ2UgLXGuEVEe6WS9njvCK9U/kI0bOA2ea2GnlB0myYqz8ODNBVYy04j4TG6Cn /FDw== X-Gm-Message-State: ABuFfoi03lHg0Mq26elmWPV8dIqCyr5mlfNb8vtxvgntzwOX74hWlDkH 2kTGGr49A9SBCPtjlgy6HEUXRMw2GNA= X-Google-Smtp-Source: ACcGV62vu2CxhOq1riBTAyZzHjOlfEsOTUAyJ3Hp571+sG4VN2tNIGRw8uJH+w1bw5+kNh7YUrErRA== X-Received: by 2002:adf:f785:: with SMTP id q5-v6mr143164wrp.86.1538165643029; Fri, 28 Sep 2018 13:14:03 -0700 (PDT) Received: from calancha-pc.dy.bbexcite.jp (15.red-83-50-151.dynamicip.rima-tde.net. [83.50.151.15]) by smtp.gmail.com with ESMTPSA id r13-v6sm2703426wmf.35.2018.09.28.13.14.01 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 28 Sep 2018 13:14:02 -0700 (PDT) From: Tino Calancha To: Eric Abrahamsen Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> <87d0t2n5of.fsf@ericabrahamsen.net> <87y3bnoa49.fsf@ericabrahamsen.net> Date: Sat, 29 Sep 2018 05:13:57 +0900 In-Reply-To: <87y3bnoa49.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 26 Sep 2018 21:08:38 -0700") Message-ID: <87lg7l752y.fsf@calancha-pc.dy.bbexcite.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 32803 Cc: 32803@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 (-) Eric Abrahamsen writes: >> I am OK to rephrase it to make it more obvious if you have something >> in mind. > > I don't have a serious objection! It just seems to me that the key > question about any test-and-loop construct is: does it test first, or > loop first? As Eli points out, the rest of the docstring makes it clear > that it tests first. It just seems to me that nothing is lost (and > something gained) by replacing "in" with "before". Thank you Eric. I agree with you that such info is crucial. Indeed, in my first version of the patch I included the line: "On each iteration, check END-TEST before run BODY." I think is worth to remark that. Following patch applies on top of the previous one: --8<-----------------------------cut here---------------start------------->8--- commit c057715eff519114e38d82d39b16d8f2a01c3c4d Author: Tino Calancha Date: Sat Sep 29 05:05:59 2018 +0900 Clarify that ENDTEST belongs to the iteration diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 10bc611325..b02a917ac0 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el @@ -1747,10 +1747,9 @@ cl--loop-build-ands (defmacro cl-do (steps endtest &rest body) "Bind variables and run BODY forms until END-TEST returns non-nil. First, each VAR is bound to the associated INIT value as if by a `let' form. -Then, in each iteration of the loop, the END-TEST is evaluated; if true, -the loop is finished. Otherwise, the BODY forms are evaluated, then each -VAR is set to the associated STEP expression (as if by a `cl-psetq' -form) and the next iteration begins. +Then, the END-TEST is evaluated; if true, the loop is finished. Otherwise, +the BODY forms are evaluated, then each VAR is set to the associated +STEP expression (as if by a `cl-psetq' form) and the next iteration begins. Once the END-TEST becomes true, the RESULT forms are evaluated (with the VARs still bound to their values) to produce the result @@ -1759,6 +1758,10 @@ cl-do Note that the entire loop is enclosed in an implicit `nil' block, so that you can use `cl-return' to exit at any time. +Also note that the ENDTEST belongs to the iteration; it's always checked +before evaluate BODY. In particular, if ENDTEST evaluates initially non-nil, +the `cl-do' will end without running BODY. + For more details, see `cl-do' description in Info node `(cl) Iteration'. \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" @@ -1785,6 +1788,10 @@ cl-do* Note that the entire loop is enclosed in an implicit `nil' block, so that you can use `cl-return' to exit at any time. +Also note that the ENDTEST belongs to the iteration; it's always checked +before evaluate BODY. In particular, if ENDTEST evaluates initially non-nil, +the `cl-do*' will end without running BODY. + This is to `cl-do' what `let*' is to `let'. For more details, see `cl-do*' description in Info node `(cl) Iteration'. --8<-----------------------------cut here---------------end--------------->8--- From debbugs-submit-bounces@debbugs.gnu.org Fri Sep 28 17:00:55 2018 Received: (at 32803) by debbugs.gnu.org; 28 Sep 2018 21:00:55 +0000 Received: from localhost ([127.0.0.1]:58050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5zsc-0005sE-Un for submit@debbugs.gnu.org; Fri, 28 Sep 2018 17:00:55 -0400 Received: from mail.ericabrahamsen.net ([50.56.99.223]:52684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g5zsb-0005s6-3O for 32803@debbugs.gnu.org; Fri, 28 Sep 2018 17:00:53 -0400 Received: from localhost (50-251-205-17-static.hfc.comcastbusiness.net [50.251.205.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 397C6C5011; Fri, 28 Sep 2018 21:00:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mail.ericabrahamsen.net; s=mail; t=1538168452; bh=lzmV5P4Saxkwi8Z8gKvcsIpyBFshuyKywxwLz10sLq8=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=AjQTe6Y3WzoyPSZ/cjDsVPElfSXZo6TD5Pwiuak1zInQ1Kb6uzg289mBpWm7isUM9 fA0//uoejq/jBVpeSoasuHeXCME4vcaGgj5ahR2OT1Il+keGcMAdfYJb39OsZYdb7E NTP0eUWm/zVztAi3mOLxyYNxpPcBDTmwRcDZXmN0= From: Eric Abrahamsen To: Tino Calancha Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> <87d0t2n5of.fsf@ericabrahamsen.net> <87y3bnoa49.fsf@ericabrahamsen.net> <87lg7l752y.fsf@calancha-pc.dy.bbexcite.jp> Date: Fri, 28 Sep 2018 14:00:50 -0700 In-Reply-To: <87lg7l752y.fsf@calancha-pc.dy.bbexcite.jp> (Tino Calancha's message of "Sat, 29 Sep 2018 05:13:57 +0900") Message-ID: <87ftxtl4l9.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 32803 Cc: 32803@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 (---) Tino Calancha writes: > Eric Abrahamsen writes: > >>> I am OK to rephrase it to make it more obvious if you have something >>> in mind. >> >> I don't have a serious objection! It just seems to me that the key >> question about any test-and-loop construct is: does it test first, or >> loop first? As Eli points out, the rest of the docstring makes it clear >> that it tests first. It just seems to me that nothing is lost (and >> something gained) by replacing "in" with "before". > Thank you Eric. > I agree with you that such info is crucial. Indeed, in my first > version of the patch I included the line: > "On each iteration, check END-TEST before run BODY." > > I think is worth to remark that. > Following patch applies on top of the previous one: Thanks for doing this! I have nitpicks :) > commit c057715eff519114e38d82d39b16d8f2a01c3c4d > Author: Tino Calancha > Date: Sat Sep 29 05:05:59 2018 +0900 > > Clarify that ENDTEST belongs to the iteration > > diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el > index 10bc611325..b02a917ac0 100644 > --- a/lisp/emacs-lisp/cl-macs.el > +++ b/lisp/emacs-lisp/cl-macs.el > @@ -1747,10 +1747,9 @@ cl--loop-build-ands > (defmacro cl-do (steps endtest &rest body) > "Bind variables and run BODY forms until END-TEST returns non-nil. > First, each VAR is bound to the associated INIT value as if by a `let' form. > -Then, in each iteration of the loop, the END-TEST is evaluated; if true, > -the loop is finished. Otherwise, the BODY forms are evaluated, then each > -VAR is set to the associated STEP expression (as if by a `cl-psetq' > -form) and the next iteration begins. > +Then, the END-TEST is evaluated; if true, the loop is finished. Otherwise, > +the BODY forms are evaluated, then each VAR is set to the associated > +STEP expression (as if by a `cl-psetq' form) and the next iteration begins. The variable name is endtest, so I guess should be ENDTEST here (no hyphen), the same way you've got it later on. > Once the END-TEST becomes true, the RESULT forms are evaluated (with > the VARs still bound to their values) to produce the result > @@ -1759,6 +1758,10 @@ cl-do > Note that the entire loop is enclosed in an implicit `nil' block, so > that you can use `cl-return' to exit at any time. > > +Also note that the ENDTEST belongs to the iteration; it's always checked > +before evaluate BODY. In particular, if ENDTEST evaluates initially non-nil, > +the `cl-do' will end without running BODY. Some tiny edits here and in the cl-do* docstring: Also note that ENDTEST is checked before evaluating BODY. If ENDTEST is initially non-nil, `cl-do' will exit without running BODY. That's pretty pedantic, but I'm an editor and can't help it :) Thanks for your clarification of these docs! Eric From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 29 05:11:15 2018 Received: (at 32803-done) by debbugs.gnu.org; 29 Sep 2018 09:11:15 +0000 Received: from localhost ([127.0.0.1]:58267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g6BHP-00073E-6A for submit@debbugs.gnu.org; Sat, 29 Sep 2018 05:11:15 -0400 Received: from mail-wm1-f48.google.com ([209.85.128.48]:54854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1g6BHN-000732-Du for 32803-done@debbugs.gnu.org; Sat, 29 Sep 2018 05:11:13 -0400 Received: by mail-wm1-f48.google.com with SMTP id r63-v6so260621wma.4 for <32803-done@debbugs.gnu.org>; Sat, 29 Sep 2018 02:11:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=4Mx3/N5qIKMs7oHWmNgft8BrTT/17VPNS7kUfjpu3ZA=; b=HARNOGCXicJO8nsXlMtbgrnl6APfGn0Xl5GXYsevasuB7ELWZtGRkRfv7vfgcnBgNy BjYTPFvz896gtARukcVPHOLFtS7g0oldi1IMCrqS2utculLltiC9c7szjlMV/dNu/PL1 xjt73CRUjRBIzviDD/OTlpJ+qGHkvZnQ6u0zrbXLuLEt/RnFIdvptcNCNkXSOaIa270f fJblQMd8mPmhSAihFwhC+VdMinH+dV6ySrXUs61PVOp+emim5QP1TOYvKatCmda8BD66 06JU+GnRvfcbQO/15hnnq/5LujmWmYta6lmGsrfLrcfyr2MGPyYdwS8pmdjq2HtD7Ede /wdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=4Mx3/N5qIKMs7oHWmNgft8BrTT/17VPNS7kUfjpu3ZA=; b=qtzea13M8+v6tapY1bbw6i6GdpIs20JyXLhsvfttbZYVXz4H6q5Qt9utPszAK1DIA2 VD1mJMNFlq4FnI6frOeOsfz4dnopgFAXNOTuBHVmgO51oWr2M8PR9HsCEpwteO/QWkzG X6VcufxfHFDzYHjmdxS/0BcJxth0ioqCuwpLhvheukgg27mm0abwXWv4nj1nPr3q6/mA lQE+gxNrUeY5I4uVHuo/XnIK+UsitjBITVgQbwdAWY40k/EwoQVXNe/9c/DjSFVe0iLM Qf/S4/DFlKQm+3ZULp6+4EtCy+ndKHa7TxtTIXWYu/kGOXcGArWGVUBuK2eJJBVycTDS oLZQ== X-Gm-Message-State: ABuFfoitKGJRZydXs6fb6t3SfTIOPTlFZu3gpssf+SIuLUGWKikyjZh0 +NGYz6wSCYCSE8T5ScBOpdA= X-Google-Smtp-Source: ACcGV60ffC0tc5G/EgXwOm7kahWx84x67/widLrmQfq4ERvWJ0ctXOGLZtY0YTYsb0m9BTjaEgIs+Q== X-Received: by 2002:a1c:88c6:: with SMTP id k189-v6mr3902965wmd.32.1538212267559; Sat, 29 Sep 2018 02:11:07 -0700 (PDT) Received: from calancha-pc.dy.bbexcite.jp (15.red-83-50-151.dynamicip.rima-tde.net. [83.50.151.15]) by smtp.gmail.com with ESMTPSA id f69-v6sm3308865wmf.34.2018.09.29.02.11.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 29 Sep 2018 02:11:06 -0700 (PDT) From: Tino Calancha To: 32803-done@debbugs.gnu.org Subject: Re: bug#32803: 26.1.50; cl-do: Add more literature in docstring References: <87y3bt7exx.fsf@calancha-pc.dy.bbexcite.jp> <83ftxzb6lx.fsf@gnu.org> <87pnx36vy2.fsf@calancha-pc.dy.bbexcite.jp> <87va6un8vu.fsf@ericabrahamsen.net> <83y3bqal3i.fsf@gnu.org> <87d0t2n5of.fsf@ericabrahamsen.net> <87y3bnoa49.fsf@ericabrahamsen.net> <87lg7l752y.fsf@calancha-pc.dy.bbexcite.jp> <87ftxtl4l9.fsf@ericabrahamsen.net> Date: Sat, 29 Sep 2018 18:10:59 +0900 In-Reply-To: <87ftxtl4l9.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Fri, 28 Sep 2018 14:00:50 -0700") Message-ID: <87efdc7joc.fsf@calancha-pc.dy.bbexcite.jp> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 32803-done Cc: Eric Abrahamsen 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 (-) Eric Abrahamsen writes: >> diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el >> index 10bc611325..b02a917ac0 100644 >> --- a/lisp/emacs-lisp/cl-macs.el >> +++ b/lisp/emacs-lisp/cl-macs.el >> @@ -1747,10 +1747,9 @@ cl--loop-build-ands >> (defmacro cl-do (steps endtest &rest body) >> "Bind variables and run BODY forms until END-TEST returns non-nil. >> First, each VAR is bound to the associated INIT value as if by a `let' form. >> -Then, in each iteration of the loop, the END-TEST is evaluated; if true, >> -the loop is finished. Otherwise, the BODY forms are evaluated, then each >> -VAR is set to the associated STEP expression (as if by a `cl-psetq' >> -form) and the next iteration begins. >> +Then, the END-TEST is evaluated; if true, the loop is finished. Otherwise, >> +the BODY forms are evaluated, then each VAR is set to the associated >> +STEP expression (as if by a `cl-psetq' form) and the next iteration begins. > > The variable name is endtest, so I guess should be ENDTEST here (no > hyphen), the same way you've got it later on. No, we must use the variables exposed to the user: VAR, INIT, STEP, END-TEST, RESULT, BODY. Note the last line of the docstring, or try: M-x describe-function cl-do RET >> Once the END-TEST becomes true, the RESULT forms are evaluated (with >> the VARs still bound to their values) to produce the result >> @@ -1759,6 +1758,10 @@ cl-do >> Note that the entire loop is enclosed in an implicit `nil' block, so >> that you can use `cl-return' to exit at any time. >> >> +Also note that the ENDTEST belongs to the iteration; it's always checked >> +before evaluate BODY. In particular, if ENDTEST evaluates initially non-nil, >> +the `cl-do' will end without running BODY. > > Some tiny edits here and in the cl-do* docstring: > > Also note that ENDTEST is checked before evaluating BODY. If ENDTEST > is initially non-nil, `cl-do' will exit without running BODY. Sounds good. I will write in this way. Thank you. Pushed into emacs-26 branch as commit 'Improve cl-do, cl-do* docstrings' (7296b6fbf27aeae76ea63ab2d9d9f2e46491b971) From unknown Sat Jun 21 10:35:03 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 27 Oct 2018 11:24:03 +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