From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /usr/bin/tail) sets the variable exported in the {} block of "for var in list {}" to nil Resent-From: Milan Zimmermann Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 22 Nov 2022 02:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 59469@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.166908273630724 (code B ref -1); Tue, 22 Nov 2022 02:06:02 +0000 Received: (at submit) by debbugs.gnu.org; 22 Nov 2022 02:05:36 +0000 Received: from localhost ([127.0.0.1]:49258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxIfI-0007zT-1m for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:05:36 -0500 Received: from lists.gnu.org ([209.51.188.17]:47262) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxIfC-0007zF-Hm for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:05:34 -0500 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 1oxIfC-0000MA-DD for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:05:30 -0500 Received: from mail-vs1-xe31.google.com ([2607:f8b0:4864:20::e31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oxIfA-0001yf-MJ for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:05:30 -0500 Received: by mail-vs1-xe31.google.com with SMTP id i2so13131346vsc.1 for ; Mon, 21 Nov 2022 18:05:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=yw7Osjz63P3UKs34dbmLhDSvPDFdeui/kaVU2JTe1L8=; b=NWrzVCwgKalxYzBY8U/lwNjusVI3nM6TvMRq74puJNOppdvxS6gfn1ZwCSOK9Ktp3x UnWytfZO10E+D6F88fAYSal2v82heJgPVLrkYjVnX7xtJ5n79HWEkrtNMZEnSEvTm+76 YBLq4X4nuHR1CZYyL3pihjmLqC+Z5ITmvdZ1a5SAJay7kk67oCi1t24XrH42w4z3IkKb r9hMrSlkgFB4z6bgDuerCgIuFhDy6LfviE5O6mIQ+EJMT6RfED2O41qdRwfeNZ7CcZWg GmQtV+Hub4P1Q0CSZLgJv3atx0Bo/YUBdVHgaZm9/bHNAJ53n+ZZqQ/12CqUZoZMG9Bs MsNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=yw7Osjz63P3UKs34dbmLhDSvPDFdeui/kaVU2JTe1L8=; b=XQmIQg7M1wGhTqTtQm9d5SkpczTfoK7AT2jlntRg2wxASH1EQBdXV9uooaJGSiZuMP 1ri9JWbkTj+1qIP76cRRoLOXGosD2SllYlSyEXmcKcYOCiFkm+eqSCv2IQ3UnMo9yODD gbREtm0GXQH6ODoyVzVoSmNNwEKbxDm3h+E6dKomDWGySS97Tb0rbeOKypARdJXSxm2P iKaUVx5JYgD1vK2fd9JZQFN5rJ3YGsQ/7lE1mnDvm75abAiu+lHjSZ3S3ZM34EiN1xgq RXkmxYgRL57SK5A9Fep3xsQ/2JciAFRUy9tO2zGpRFVsaUiAFBH7r+8cxabILTMbSALZ HbFQ== X-Gm-Message-State: ANoB5pkV1yq+sBCOS+O5o9edIhAPpDWNQENoysjwPORd3kLgnc/kM1cU MUbxr6tY7Ru5e3n7Py9b5GoKqsiFiJbo2faG/nlmYP8B+Es= X-Google-Smtp-Source: AA0mqf6JR6klzftwta9ke6j2yQ0cxw/idKKoafxXsD51bjZo/NQeOBlzPenzrAfBlk1icOeR6htzVbKPssPfMfVlsZ8= X-Received: by 2002:a05:6102:11e5:b0:3aa:2fea:86f4 with SMTP id e5-20020a05610211e500b003aa2fea86f4mr1101360vsg.54.1669082727065; Mon, 21 Nov 2022 18:05:27 -0800 (PST) MIME-Version: 1.0 From: Milan Zimmermann Date: Mon, 21 Nov 2022 21:04:51 -0500 Message-ID: Content-Type: multipart/alternative; boundary="0000000000000c2e6805ee059bc7" Received-SPF: pass client-ip=2607:f8b0:4864:20::e31; envelope-from=milan.zimmermann@gmail.com; helo=mail-vs1-xe31.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.6 (/) 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.6 (-) --0000000000000c2e6805ee059bc7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I might be doing something wrong, but it appears that calling any non-lisp command (example: /usr/bin/tail) causes the variable set in the {} block of "for var in list {}" to change to nil. To duplicate, please create a file "bug.txt" in ~tmp, echo "line one" > ~/tmp/bug.txt then run the following code - In the code below, *please replace my full path "/home/mzimmermann/tmp/bug.txt" with your full path. There seems to be an unrelated issue trying to list ~/tmp/bug.txt* for file in (list "/home/mzimmermann/tmp/bug.txt") { type-of $file echo "file=3D$file"; # Create a variable. The back and forth between .log and .txt is # only there to simulate some useful work to set value of samefile export samefile=3D"${echo $file(:s/.txt/.log/)}"(:s/.log/.txt/); echo "samefile=3D$samefile" # Note that on my system, 'which tail' =3D=3D> /usr/bin/t= ail tail $file # Note that on my system, 'which cat' =3D=3D> eshell/cat = is a byte-compiled Lisp function in =E2=80=98em-unix.el=E2=80=99. # cat $file echo "samefile=3D$samefile" echo "file=3D$file"; } Actual result: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D string file=3D/home/mzimmermann/tmp/bug.txt samefile=3D/home/mzimmermann/tmp/bug.txt line one samefile=3Dnil file=3D/home/mzimmermann/tmp/bug.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Please *note how the contents of samefile is nullified. This is the bug I am reporting here* Expected result: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D string file=3D/home/mzimmermann/tmp/bug.txt samefile=3D/home/mzimmermann/tmp/bug.txt line one samefile=3D/home/mzimmermann/tmp/bug.txt file=3D/home/mzimmermann/tmp/bug.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Notes: 1. I tried this with other non-lisp functions (/usr/bin/gzip) and it caused the same issue. 2. If we use "cat" which is an elisp function, the loop works as expected. Thanks, Milan Zimmermann --0000000000000c2e6805ee059bc7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
I might be doing something wrong, but it appears that calling any no= n-lisp command =C2=A0(example: /usr/bin/tail) causes the variable set in th= e {} block of "for var in list {}" to change to nil.
To duplicate, please create a file "bug.txt" in ~tmp,

=C2= =A0 =C2=A0echo "line one" > ~/tmp/bug.txt

then run the = following code -

In the code below, *please replace my full path &qu= ot;/home/mzimmermann/tmp/bug.txt" with your full path. There seems to = be an unrelated issue trying to list ~/tmp/bug.txt*

=C2=A0 for file = in (list "/home/mzimmermann/tmp/bug.txt") {
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type-of $file
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "file=3D$fil= e";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = # Create a variable. The back and forth between .log and .txt is
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # only there to sim= ulate some useful work to set value of samefile
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 export samefile=3D"${echo $f= ile(:s/.txt/.log/)}"(:s/.log/.txt/);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "samefile=3D$samefile"=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # Note that= on my system, 'which tail' =3D=3D> /usr/bin/tail
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 tail $file
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # Note that on my s= ystem, 'which cat' =3D=3D> eshell/cat is a byte-compiled Lisp fu= nction in =E2=80=98em-unix.el=E2=80=99.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # cat $file
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "samefile=3D$samefile"=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "= file=3D$file";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
Actual result:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D
string
file=3D/home/mzimmermann/tmp/bug.txt
samefile=3D/home/m= zimmermann/tmp/bug.txt
line one
samefile=3Dnil
file=3D/home/mzimme= rmann/tmp/bug.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Please *note how the contents of samefile is nullified. This is the bug I= am reporting here*

Expected result:
=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D
string
file=3D/home/mzimmermann/tmp/bug.txt
= samefile=3D/home/mzimmermann/tmp/bug.txt
line one
samefile=3D/home/mz= immermann/tmp/bug.txt
file=3D/home/mzimmermann/tmp/bug.txt
=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Notes:

1. I tried thi= s with other non-lisp functions (/usr/bin/gzip) and it caused the same issu= e.

2. If we use "cat" which is an elisp function, the loop= works as expected.

Thanks,=C2=A0
Milan Zimmerm= ann
--0000000000000c2e6805ee059bc7-- From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: Adding a simpler duplication of the issue References: In-Reply-To: Resent-From: Milan Zimmermann Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 22 Nov 2022 02:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 59469@debbugs.gnu.org Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.16690854482491 (code B ref 59469); Tue, 22 Nov 2022 02:51:02 +0000 Received: (at 59469) by debbugs.gnu.org; 22 Nov 2022 02:50:48 +0000 Received: from localhost ([127.0.0.1]:49288 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxJN1-0000e6-Rg for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:50:48 -0500 Received: from mail-ua1-f47.google.com ([209.85.222.47]:43567) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxJMy-0000dr-PQ for 59469@debbugs.gnu.org; Mon, 21 Nov 2022 21:50:46 -0500 Received: by mail-ua1-f47.google.com with SMTP id e24so4728785uam.10 for <59469@debbugs.gnu.org>; Mon, 21 Nov 2022 18:50:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=ZNeDlhS1DGgm+qox8MZQgGM2YBd96MPFtz2S5G7z6ZQ=; b=CMUBiNzXcjGP2hYCCNBs+xuj1mZnuZYHiELBV+s6nRsEZ2ExznsUUgajFcOQ+g+l5N qDtR3kNTqUilhbgsNp1CEht1XS2Mpl50LGjU8f9Xwce+dzNh5vxnbRwz9y4uXFLIMIWI c5epQ0esbJHmY85Zdv/bVttaauvwMguKxHko/UJhyiSrRMMNLJKqPlfvq+GKS/MH5hVP TSKeS7TSTAFRTQsQQoiB7/vZeZ9KasTggp+xT1CUErcyyw1eSmQLCAliQO+fal4de0ye Obi/qdPrxpWrS3yQE2pYcpkzrKpR5kGP+nGu+TBF1xZdC/b9mWKyq+SIjzwkpAwNd5bU R5uQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ZNeDlhS1DGgm+qox8MZQgGM2YBd96MPFtz2S5G7z6ZQ=; b=N6KX8WnUtGAEbDtEQbndfTSISqyivkltKOhf9OPtsbLgWPfejHKS2jEI4NmkXhWV8M Xz7WYF3vUSzBIIjDHitGJEUWS2AWQkDou+yvLP7mcn16ziZ7NVUNG1JPHggJAhHZoVB4 lVe021jbQotpOxOVIbp2Hx95R1T1yXU7l3X3YjNdkBIVCQ+I5JQ/vvXaBdgoRSacpFEG /TBWAiBrEYEtDmsT0r9dGc6I6zbFJcieegcAWYZ7EBMG5fOSdx4ynoWN1WjJF5hzFPkQ NfSpmXSoYGbskGSDJFi5cULkVIWPr/gVe2J+q8Qd5TSt0byK4reQOxpe9M6YPHCFIzxO i9gQ== X-Gm-Message-State: ANoB5pkT/DIQKetK8qzM3yLJa2JqYrwKitUbYUp4PtZqxTgto7bnWysk iFuXBgFe862Th2PER7mqScGBe/w1TSMWFn1KaZIfWo4cwZ4= X-Google-Smtp-Source: AA0mqf4GQ9sPAPzfvA5jtrBy8QVS7YSGfjO77ZQQtZAMCuPqGv21Ha3B5qYfb2EB/CCg1k4Z1rvgF0GoJfoysgcm/GM= X-Received: by 2002:ab0:1e4d:0:b0:418:b7ef:ea60 with SMTP id n13-20020ab01e4d000000b00418b7efea60mr11556468uak.28.1669085438896; Mon, 21 Nov 2022 18:50:38 -0800 (PST) MIME-Version: 1.0 From: Milan Zimmermann Date: Mon, 21 Nov 2022 21:50:03 -0500 Message-ID: Content-Type: multipart/alternative; boundary="000000000000af71c605ee063c3c" X-Spam-Score: 1.1 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: A simpler duplication shows the issue is below. It appears the issue is is not related to the "for loop" - it can be duplicated just writing code inside the eshell { .. } block. To duplicate, please create a file ccc.el.gz - something the gzip does not fail on. Content analysis details: (1.1 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (milan.zimmermann[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [209.85.222.47 listed in wl.mailspike.net] 0.0 HTML_MESSAGE BODY: HTML included in message 1.0 HTML_IMAGE_ONLY_16 BODY: HTML: images with 1200-1600 bytes of words -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [209.85.222.47 listed in list.dnswl.org] 0.0 T_REMOTE_IMAGE Message contains an external image 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 (/) --000000000000af71c605ee063c3c Content-Type: text/plain; charset="UTF-8" A simpler duplication shows the issue is below. It appears the issue is is not related to the "for loop" - it can be duplicated just writing code inside the eshell { .. } block. To duplicate, please create a file ccc.el.gz - something the gzip does not fail on. Then, On the eshell prompt, enter the following code: $ export aaa="This is contents of aaa" { # create a variable in this block export bbb=$aaa; echo "Before gzip: aaa=$aaa" echo "Before gzip: bbb=$bbb"; gzip --decompress ccc.el.gz; echo "After gzip: aaa=$aaa" echo "After gzip: bbb=$bbb"; } Before gzip: aaa=This is contents of aaa Before gzip: bbb=This is contents of aaa After gzip: aaa=This is contents of aaa After gzip: bbb=nil $ Same bug: After the call to non-elisp program, /usr/bin/gzip, a previously exported variable bbb (exported inside the block) is nullified. Thanks --000000000000af71c605ee063c3c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
3D""A simpler dupl= ication=C2=A0shows the issue is below.

It appears = the=C2=A0issue is=C2=A0 is not related to the "for loop" - it can= be duplicated just writing code inside the eshell { .. } block.
<= div>
To duplicate, please create a file ccc.el.gz - something= =C2=A0the gzip does not fail on.

Then, On the eshe= ll prompt, enter the following code:

=C2=A0$=C2=A0= =C2=A0export aaa=3D"This is contents of aaa"
=C2=A0{
# create a variable in this block
export bbb=3D$aaa;
echo "Befo= re gzip: aaa=3D$aaa"
echo "Before gzip: bbb=3D$bbb";
g= zip --decompress ccc.el.gz;
echo "After gzip: aaa=3D$aaa"
e= cho "After gzip: bbb=3D$bbb";
}
Before gzip: aaa=3DThis is = contents of aaa
Before gzip: bbb=3DThis is contents of aaa
After gzip= : aaa=3DThis is contents of aaa
After gzip: bbb=3Dnil
=C2=A0$=C2=A0

Same bug: After the call to non-elisp program, = /usr/bin/gzip, a previously exported variable bbb (exported inside the bloc= k) is nullified.

Thanks
--000000000000af71c605ee063c3c-- From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: Adding a simpler duplication of the issue Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 22 Nov 2022 04:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Milan Zimmermann , 59469@debbugs.gnu.org Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.166909298814155 (code B ref 59469); Tue, 22 Nov 2022 04:57:01 +0000 Received: (at 59469) by debbugs.gnu.org; 22 Nov 2022 04:56:28 +0000 Received: from localhost ([127.0.0.1]:49394 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxLKd-0003gF-Mv for submit@debbugs.gnu.org; Mon, 21 Nov 2022 23:56:27 -0500 Received: from mail-pf1-f182.google.com ([209.85.210.182]:45581) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxLKZ-0003fy-9q for 59469@debbugs.gnu.org; Mon, 21 Nov 2022 23:56:26 -0500 Received: by mail-pf1-f182.google.com with SMTP id v28so13291572pfi.12 for <59469@debbugs.gnu.org>; Mon, 21 Nov 2022 20:56:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=Jqn+tsqaall8uo1O/jauIh50AujUhZ/O3hJ/o7IjQaA=; b=efcEnVDmqEhcOWhHlzVrpnVk5AJuP143nWdCSB5nCS0dlcxLzu5r3lVfO1WRYo2gRK I8owJYnPw4ttPrjrmqymKXCQiSfb3n0pj0o7qknwBPKx8VWL5vWZZU30W6oyGJtQNMeX Up/azvPvRuCvthy2N2FI+9dCod6glWMqNNzN3AM0A7aKlkp25zUsp40vAEE+X7S5acG9 BJjjH2B2G+j9KwEg247+QAbLGlaN6O/zeQj5tIrU7dBBjXRpwMqSuiofowQp5ADtLLhS 9ITT31fSH4UMBWdhDgs3CzMfFKwUvCI5OrsPccLZr2RCoHvmhA9ZLmnP6dIelFIj5Mtl bPFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Jqn+tsqaall8uo1O/jauIh50AujUhZ/O3hJ/o7IjQaA=; b=zQlDUR9JsZetpT12FWkWUi+wHY+46IjXrD3K+cXwA/zz3H8v/CUPRzajqgVwtc8Y5j vv92rDW+jIzfKiP4BKrsXGhuABMboe9PjSm1YtYCUNu+yMGU/B5pJiKCOAaOE5sQ4tHo p4V9wpOns++VpwHIN0CPMjCF69bS6ANLKFGwDubB3tqp/sBzDX81m5kjfnWwPCnCuHBR HCmMmCz9WwivBODibdej6Cg5LCXEFaHZfQq8aBrnnmFKZt4wSYwrqSOkqVbgYDCCPmhN peA6B5q1zmOB09HH5DSaA0SJI/VO54z6+ToltXjCT5wGGbqpsL2RiSjF/oRhmdnQ+4l4 GKjA== X-Gm-Message-State: ANoB5pkkwdsnmPN3BtkqOAvjyJsg12OqIRWauZcylxOBDFzmyv/Uc6/H maTkP5zmaeaRMuOeo0egW9w= X-Google-Smtp-Source: AA0mqf4hvLdG0cJUcDYJvi1m9QEnzZCZIiK1pJCzI109fLg+cqEMCDDcMe8i/rzajaRCXg4J1j/Fbw== X-Received: by 2002:a62:1444:0:b0:572:d54:9647 with SMTP id 65-20020a621444000000b005720d549647mr24059452pfu.82.1669092977443; Mon, 21 Nov 2022 20:56:17 -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 ob6-20020a17090b390600b0020b21019086sm692652pjb.3.2022.11.21.20.56.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Nov 2022 20:56:16 -0800 (PST) Message-ID: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> Date: Mon, 21 Nov 2022 20:56:16 -0800 MIME-Version: 1.0 Content-Language: en-US References: From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/21/2022 6:50 PM, Milan Zimmermann wrote: > A simpler duplication shows the issue is below. [snip] > Same bug: After the call to non-elisp program, /usr/bin/gzip, a > previously exported variable bbb (exported inside the block) is nullified. I'm not entirely sure, but I have a suspicion that this is due to Eshell's deferred commands. Deferred commands tell Eshell to stop processing synchronously and yield to the rest of Emacs. It's a way of keeping long-running commands (e.g. external processes) from hanging the rest of Emacs. Unfortunately, the logic to do this (see 'eshell-do-eval') was written before lexical binding was added to Emacs Lisp, and I think this is the cause of quite a few subtle bugs with Eshell command evaluation. Fixing that is bug#57635, which would leverage the generator.el internals to do this. Of course, I could be wrong. This is reaching well past my comfort zone for Emacs Lisp, but this sure seems like an issue with 'eshell-do-eval'. I'd certainly like to fix this one day, since it's blocking a few other things I want to do in Eshell, but I think it'll be a pretty big project. From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: Adding a simpler duplication of the issue Resent-From: Milan Zimmermann Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 22 Nov 2022 07:19:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jim Porter Cc: 59469@debbugs.gnu.org Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.166910152428505 (code B ref 59469); Tue, 22 Nov 2022 07:19:01 +0000 Received: (at 59469) by debbugs.gnu.org; 22 Nov 2022 07:18:44 +0000 Received: from localhost ([127.0.0.1]:49531 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxNYK-0007Ph-F2 for submit@debbugs.gnu.org; Tue, 22 Nov 2022 02:18:44 -0500 Received: from mail-vs1-f53.google.com ([209.85.217.53]:45714) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxNYI-0007PT-DY for 59469@debbugs.gnu.org; Tue, 22 Nov 2022 02:18:42 -0500 Received: by mail-vs1-f53.google.com with SMTP id 128so13599352vsz.12 for <59469@debbugs.gnu.org>; Mon, 21 Nov 2022 23:18:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=f3HQcvFCCiCd1gFME5UJ/t05Vm3ycJbkvWFhrGwX8VA=; b=h0XxBOoldYFxRZuucRtJ2SOzEPS5AgJNi+f4NUFuq5UolOONOyPPfErm/i+p16jjdg RcXN9f431i1k9RqlTc28Is+X77Y1EgeBLC04TCqZ0zxeBjQgyCiM63qB1kqJWNzaAUg6 e5biHisUAaFlNW93+7zJJfxvo6qHeuZ5szzhjcpIHhz4D2KvvjS5nUBvJkM9kZRexiaW 7nFskuL3fanfOuocTSEcSR+Zqcn3dwbVv56+GbfaWMsP6omktA5XWu+5hL/VYPRAkcaV CI9FA26LhzyEZx7zl61bbEXDOM+dUFABUhHjfT53vXDclgJ04wfZ4w+daNFF1TLeWXrR giTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=f3HQcvFCCiCd1gFME5UJ/t05Vm3ycJbkvWFhrGwX8VA=; b=14LAQvCOCKwGqlTTbCopdKkjZ4GgXbTzWJ52MADGm2InSUdLcGv/SH3UHyKqApSGva CP2I08fYWdNUcn/guVw3HyG4/Z2Tyn7XZ7T2CTzXtU07ujoE9VIRE9fJcxIjl0/4Leh5 innBfKgaTpyGI0MF4Qhm16z/Pvpr4m3v/ogq5F8k6OT9sS78Ud/ynnhljoSnkevoaieY MR2+2+2teJJU/fEiGzEcbVm4oMAV4MM1nFYFpD3X+RWk3nwwyB24w7dWMoqpjlwV/r9t 5lPG0UYAPXRwLHNbx5zzN4zQv5uFCJnwyOOC+kAVmHdxnMf6EFzVThQN3iMTllSPCRcW npRw== X-Gm-Message-State: ANoB5pmAfxNh9qFN09Y90EN1pEaU+N99Gp4sYZ3Iq5M1HEG3hkTlmZkQ 5GsolSol9jX0yM/U8UIi/rCsA89Tx5c4gaAOTfY= X-Google-Smtp-Source: AA0mqf5glpm/HleVo32SLsZ5zhuiK7axqjITftAtC6mwzzL8RZgXG8xMnpp6yALhpznKMg95mkiueF1CCcX1yeq6P5c= X-Received: by 2002:a05:6102:11e5:b0:3aa:2fea:86f4 with SMTP id e5-20020a05610211e500b003aa2fea86f4mr1539054vsg.54.1669101516830; Mon, 21 Nov 2022 23:18:36 -0800 (PST) MIME-Version: 1.0 References: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> In-Reply-To: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> From: Milan Zimmermann Date: Tue, 22 Nov 2022 02:18:00 -0500 Message-ID: Content-Type: multipart/alternative; boundary="000000000000013cd405ee09fbb2" X-Spam-Score: 0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) --000000000000013cd405ee09fbb2 Content-Type: text/plain; charset="UTF-8" Thanks for the detailed update as always. This is over my elisp level, I got here mostly as a relapsed eshell user, trying to use eshell as my primary shell for the third time :) But it sounds to me like your intuition about this could be fixed by rewriting the core 'eshell-do-eval' loop in bug#57635 can be correct. I would enjoy helping with it, but at the moment it is above my time and elisp abilities. Not sure what to do next regarding this bug, perhaps we should go ahead and add your comment to bug#57635 so these two are linked from both ends? Or let me know if I can help with something else, Thanks, Milan On Mon, Nov 21, 2022 at 11:56 PM Jim Porter wrote: > On 11/21/2022 6:50 PM, Milan Zimmermann wrote: > > A simpler duplication shows the issue is below. > [snip] > > Same bug: After the call to non-elisp program, /usr/bin/gzip, a > > previously exported variable bbb (exported inside the block) is > nullified. > > I'm not entirely sure, but I have a suspicion that this is due to > Eshell's deferred commands. Deferred commands tell Eshell to stop > processing synchronously and yield to the rest of Emacs. It's a way of > keeping long-running commands (e.g. external processes) from hanging the > rest of Emacs. > > Unfortunately, the logic to do this (see 'eshell-do-eval') was written > before lexical binding was added to Emacs Lisp, and I think this is the > cause of quite a few subtle bugs with Eshell command evaluation. Fixing > that is bug#57635, which would leverage the generator.el internals to do > this. > > Of course, I could be wrong. This is reaching well past my comfort zone > for Emacs Lisp, but this sure seems like an issue with 'eshell-do-eval'. > > I'd certainly like to fix this one day, since it's blocking a few other > things I want to do in Eshell, but I think it'll be a pretty big project. > --000000000000013cd405ee09fbb2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the detailed update as always.

This is over my elisp level, I got here mostly as a re= lapsed eshell user, trying to use eshell as my primary shell for the third = time :)

But it sounds to me like your intuition ab= out this could be fixed by rewriting the core 'eshell-do-eval' loop= in bug#57635 can be correct.=C2=A0 I would enjoy helping with=C2=A0=C2=A0it, but at the moment it is above my time and elisp abilities.=

Not sure what to do next regarding this bug, perh= aps we should go ahead and add your comment to=C2=A0=C2=A0=C2=A0bug#57635 s= o these two are linked from both ends? Or let me know=C2=A0if I can help wi= th something else,

Thanks,
Milan


On Mon, Nov 21, 2022 at 11:56 PM Jim Porter <jporterbugs@gmail.com> wrote:
<= /div>
On 11/21/2022 6:50 P= M, Milan Zimmermann wrote:
> A simpler duplication=C2=A0shows the issue is below.
[snip]
> Same bug: After the call to non-elisp program, /usr/bin/gzip, a
> previously exported variable bbb (exported inside the block) is nullif= ied.

I'm not entirely sure, but I have a suspicion that this is due to
Eshell's deferred commands. Deferred commands tell Eshell to stop
processing synchronously and yield to the rest of Emacs. It's a way of =
keeping long-running commands (e.g. external processes) from hanging the rest of Emacs.

Unfortunately, the logic to do this (see 'eshell-do-eval') was writ= ten
before lexical binding was added to Emacs Lisp, and I think this is the cause of quite a few subtle bugs with Eshell command evaluation. Fixing that is bug#57635, which would leverage the generator.el internals to do this.

Of course, I could be wrong. This is reaching well past my comfort zone for Emacs Lisp, but this sure seems like an issue with 'eshell-do-eval&= #39;.

I'd certainly like to fix this one day, since it's blocking a few o= ther
things I want to do in Eshell, but I think it'll be a pretty big projec= t.
--000000000000013cd405ee09fbb2-- From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: Adding a simpler duplication of the issue Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 25 Jan 2023 01:40:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Milan Zimmermann Cc: 59469@debbugs.gnu.org Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.167461077630013 (code B ref 59469); Wed, 25 Jan 2023 01:40:01 +0000 Received: (at 59469) by debbugs.gnu.org; 25 Jan 2023 01:39:36 +0000 Received: from localhost ([127.0.0.1]:57913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKUlD-0007nz-Mn for submit@debbugs.gnu.org; Tue, 24 Jan 2023 20:39:36 -0500 Received: from mail-pf1-f170.google.com ([209.85.210.170]:42666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pKUlC-0007nn-HJ for 59469@debbugs.gnu.org; Tue, 24 Jan 2023 20:39:35 -0500 Received: by mail-pf1-f170.google.com with SMTP id a184so12451054pfa.9 for <59469@debbugs.gnu.org>; Tue, 24 Jan 2023 17:39:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=8ebHM0fzsHKXmaRm7OiErot6irqTqOBd8WtvzvjlMks=; b=dPJJ5DUjX/LEncNuKFRa11BHkEJts0s83RygINASdIq0BTcK40eCleBA5ZwqzI+im0 qoYslI2D65StPYZC9XRt9+C4wGCGdQ6iJJO5uQCnsnV1qKZsFFdHjbMkfX8VFF1Uxrcz X6b7NTuSBmbI7J+WWXqgLk7FFWWu4YBLen4vUTPlrzqhyeSIpLyDa5H7L1KvZRznL+b5 7hqkFFY54cBRZc4/NlYO42SHsAYd80IFnS0ZCIeKAUuya1CQfhbTmDZCE2b3F+HxG80P FOiUnzElrDa1TGGT6Ax90TabXZxONKb9HiwSYX1TBfg+VzMRvKMxnLzFH+T4M4DfPTjM d2Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=8ebHM0fzsHKXmaRm7OiErot6irqTqOBd8WtvzvjlMks=; b=wiE/dr5d2mJf0mPIgDS1D9GNkOFsOulUpL6heFNjUYTdwKwYTTy0miSSeX66yqyiAd Ges2tA9xu98PQw1l2OSJObOE0ddvVe5WNSrcQuTIMXIB63fFclYPo5nfZuv8+7BQ6AOH ZdKhAAQZ/WaocwwWTdPMyqHbE4a9mbt7rotO/EztapgzI/39wCvSkJM1+A9hQM/GSNgK GCldiSmv78laMVhRIq3tyB0fG34qLpSlI9G0ihkQ6rJfgSxjvqHGk2u85HBvRHpJeCm5 8zNMrRHo8rrA5VTe24nBLwRYI9dXD48o8kXmGvs3kLjMMjv7MTxvqIv7tgJ1VqjpO+CK oTxQ== X-Gm-Message-State: AFqh2kqmeRZrtJayvRVHDKlgWZC/4Vpfl2DNizKCsJL0zbzKIYOovAny OzGKQn3PN53Lh46nK3FUICs= X-Google-Smtp-Source: AMrXdXuzuJY7Zn5dBi9BwbYvzFm9ZOXXacb0DMNksbDqQiCQal4vHhnOcYtXfQAFJTu/S/nmIau5rg== X-Received: by 2002:a05:6a00:1887:b0:58c:b0a:e504 with SMTP id x7-20020a056a00188700b0058c0b0ae504mr40487078pfh.18.1674610768663; Tue, 24 Jan 2023 17:39:28 -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 n37-20020a056a000d6500b0058215708d57sm2336558pfv.141.2023.01.24.17.39.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 24 Jan 2023 17:39:27 -0800 (PST) Content-Type: multipart/mixed; boundary="------------rYLgYRu4h0Rlyi0dteYFIoi8" Message-ID: <68ce6804-885d-01ce-2d37-461cd3aa33af@gmail.com> Date: Tue, 24 Jan 2023 17:39:26 -0800 MIME-Version: 1.0 Content-Language: en-US References: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> From: Jim Porter In-Reply-To: X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------rYLgYRu4h0Rlyi0dteYFIoi8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/21/2022 11:18 PM, Milan Zimmermann wrote: > But it sounds to me like your intuition about this could be fixed by > rewriting the core 'eshell-do-eval' loop in bug#57635 can be correct.  I > would enjoy helping with  it, but at the moment it is above my time and > elisp abilities. After digging through 'eshell-do-eval' for another issue, I think I mostly understand it now. I still think bug#57635 is the way to go long-term (either that or use real threads), but since that's a big change, it might be best to give users some time where they could opt out of some new Eshell evaluation backend, just in case we break something with it. As such, I want to make sure the existing backend is as bug-free as possible so that (ideally) switching between the two has no behavioral difference. With that said, here's a patch that fixes this, plus a regression test. One question for anyone reviewing the patch: is there a better way to do the "catch and rethrow" dance I do in 'eshell-do-eval'? It seems kind of clumsy... ---------------------------------------- The patch has a description of the problem, but I'll describe it in more detail here for anyone curious. Eshell turns the command in the original message into a form like this (note: this is very approximate): (let ((process-environment process-environment)) (setenv "var" "value") (eshell-external-command "grep") ; This throws 'eshell-defer' (eshell/echo (getenv "var"))) 'eshell-do-eval' gradually steps through this form, evaluating subforms and replacing them with their (quoted) results. This way, when a command throws 'eshell-defer', you can resume this form simply by calling 'eshell-do-eval' again. So at the point 'eshell-defer' gets thrown, the form has been updated to: (let ((process-environment process-environment)) '"value" ; The quoted result of 'setenv' above. (eshell-external-command "grep") (eshell/echo (getenv "var"))) But since 'process-environment' is let-bound, when we resume evaluation, it's as though 'setenv' had never been called at all! The fix here is that when we're inside a 'let' and see 'eshell-defer' get thrown, update the let-bindings in place. So now the updated form would look like: (let ((process-environment (cons "var=value" process-environment))) '"value" ; Not really necessary, but it doesn't hurt anything. (eshell-external-command "grep") (eshell/echo (getenv "var"))) And so with this, it all works. --------------rYLgYRu4h0Rlyi0dteYFIoi8 Content-Type: text/plain; charset=UTF-8; name="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.patch" Content-Disposition: attachment; filename*0="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMmVhNWEyNGEwMWQwMDhjN2YyZThkMGRiNTlmMTliOWIwNDJhZjVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMjQgSmFuIDIwMjMgMTc6MTQ6NTQgLTA4MDAKU3ViamVjdDogW1BB VENIXSBFbnN1cmUgdGhhdCBkZWZlcnJlZCBjb21tYW5kcyBkb24ndCBtYWtlIEVzaGVsbCBm b3JnZXQKIGxldC1ib3VuZCB2YWx1ZXMKCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNo ZWxsLWRvLWV2YWwpOiBQcm92aWRlIG1vcmUgZGV0YWlsIGluCmRvY3N0cmluZy4gIEhhbmRs ZSAnZXNoZWxsLWRlZmVyJyBpbnNpZGUgJ2xldCcgZm9ybXMuCiogdGVzdC9saXNwL2VzaGVs bC9lc2gtY21kLXRlc3RzLmVsCihlc2gtY21kLXRlc3QvbGV0LXJlYmluZHMtYWZ0ZXItZGVm ZXIpOiBOZXcgdGVzdCAoYnVnIzU5NDY5KS4KLS0tCiBsaXNwL2VzaGVsbC9lc2gtY21kLmVs ICAgICAgICAgICAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB0ZXN0 L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwgfCAxNyArKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5k ZXggOTljM2Q3ZjYyN2QuLjQxNDkzNDA4MWIwIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9l c2gtY21kLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKQEAgLTEwOTUsOSArMTA5 NSwxNyBAQCBlc2hlbGwtbWFuaXB1bGF0ZQogICAgICAgIChlc2hlbGwtZGVidWctY29tbWFu ZCAsKGNvbmNhdCAiZG9uZSAiIChldmFsIHRhZykpIGZvcm0pKSkpCiAKIChkZWZ1biBlc2hl bGwtZG8tZXZhbCAoZm9ybSAmb3B0aW9uYWwgc3luY2hyb25vdXMtcCkKLSAgIkV2YWx1YXRl IGZvcm0sIHNpbXBsaWZ5aW5nIGl0IGFzIHdlIGdvLgorICAiRXZhbHVhdGUgRk9STSwgc2lt cGxpZnlpbmcgaXQgYXMgd2UgZ28uCiBVbmxlc3MgU1lOQ0hST05PVVMtUCBpcyBub24tbmls LCB0aHJvd3MgYGVzaGVsbC1kZWZlcicgaWYgaXQgbmVlZHMgdG8KLWJlIGZpbmlzaGVkIGxh dGVyIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIGFuIGFzeW5jaHJvbm91cyBzdWJwcm9jZXNz LiIKK2JlIGZpbmlzaGVkIGxhdGVyIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIGFuIGFzeW5j aHJvbm91cyBzdWJwcm9jZXNzLgorCitBcyB0aGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyBGT1JN LCBpdCB3aWxsIGdyYWR1YWxseSByZXBsYWNlCitzdWJmb3JtcyB3aXRoIHRoZSAocXVvdGVk KSByZXN1bHQgb2YgZXZhbHVhdGluZyB0aGVtLiAgRm9yCitleGFtcGxlLCBhIGZ1bmN0aW9u IGNhbGwgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSBjYWxsLgorVGhpcyBh bGxvd3MgdXMgdG8gcmVzdW1lIGV2YWx1YXRpb24gb2YgRk9STSBhZnRlciBzb21ldGhpbmcK K2luc2lkZSB0aHJvd3MgYGVzaGVsbC1kZWZlcicgc2ltcGx5IGJ5IGNhbGxpbmcgdGhpcyBm dW5jdGlvbgorYWdhaW4uICBBbnkgZm9ybXMgcHJlY2VkaW5nIG9uZSB0aGF0IHRocm93IGBl c2hlbGwtZGVmZXInIHdpbGwKK2hhdmUgYmVlbiByZXBsYWNlZCBieSBjb25zdGFudHMuIgog ICAoY29uZAogICAgKChub3QgKGxpc3RwIGZvcm0pKQogICAgIChsaXN0ICdxdW90ZSAoZXZh bCBmb3JtKSkpCkBAIC0xMTYxLDIxICsxMTY5LDQ4IEBAIGVzaGVsbC1kby1ldmFsCiAJKHNl dGNhciAoY2RyIGFyZ3MpIChlc2hlbGwtZG8tZXZhbCAoY2FkciBhcmdzKSBzeW5jaHJvbm91 cy1wKSkKIAkoZXZhbCBmb3JtKSkKICAgICAgICAoKGVxIChjYXIgZm9ybSkgJ2xldCkKLQko aWYgKG5vdCAoZXEgKGNhciAoY2FkciBhcmdzKSkgJ2VzaGVsbC1kby1ldmFsKSkKLQkgICAg KGVzaGVsbC1tYW5pcHVsYXRlICJldmFsdWF0aW5nIGxldCBhcmdzIgotCSAgICAgIChkb2xp c3QgKGxldGFyZyAoY2FyIGFyZ3MpKQotCQkoaWYgKGFuZCAobGlzdHAgbGV0YXJnKQotCQkJ IChub3QgKGVxIChjYWRyIGxldGFyZykgJ3F1b3RlKSkpCi0JCSAgICAoc2V0Y2RyIGxldGFy ZwotCQkJICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAotCQkJCSAgIChjYWRyIGxldGFyZykg c3luY2hyb25vdXMtcCkpKSkpKSkKKyAgICAgICAgKHdoZW4gKG5vdCAoZXEgKGNhciAoY2Fk ciBhcmdzKSkgJ2VzaGVsbC1kby1ldmFsKSkKKyAgICAgICAgICAoZXNoZWxsLW1hbmlwdWxh dGUgImV2YWx1YXRpbmcgbGV0IGFyZ3MiCisgICAgICAgICAgICAoZG9saXN0IChsZXRhcmcg KGNhciBhcmdzKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFuZCAobGlzdHAgbGV0YXJnKQor ICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIChjYWRyIGxldGFyZykgJ3F1b3Rl KSkpCisgICAgICAgICAgICAgICAgKHNldGNkciBsZXRhcmcKKyAgICAgICAgICAgICAgICAg ICAgICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjYWRyIGxldGFyZykgc3luY2hyb25vdXMtcCkpKSkpKSkKICAgICAgICAgKGNs LXByb2d2Ci0gICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGJpbmRpbmcpIChpZiAoY29u c3AgYmluZGluZykgKGNhciBiaW5kaW5nKSBiaW5kaW5nKSkKKyAgICAgICAgICAgIChtYXBj YXIgKGxhbWJkYSAoYmluZGluZykKKyAgICAgICAgICAgICAgICAgICAgICAoaWYgKGNvbnNw IGJpbmRpbmcpIChjYXIgYmluZGluZykgYmluZGluZykpCiAgICAgICAgICAgICAgICAgICAg IChjYXIgYXJncykpCiAgICAgICAgICAgICA7OyBUaGVzZSBleHByZXNzaW9ucyBzaG91bGQg YWxsIGJlIGNvbnN0YW50cyBub3cuCi0gICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGJp bmRpbmcpIChpZiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNhZHIgYmluZGluZykpKSkKKyAg ICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYmluZGluZykKKyAgICAgICAgICAgICAgICAg ICAgICAod2hlbiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNhZHIgYmluZGluZykpKSkKICAg ICAgICAgICAgICAgICAgICAgKGNhciBhcmdzKSkKLQkgIChlc2hlbGwtZG8tZXZhbCAobWFj cm9leHAtcHJvZ24gKGNkciBhcmdzKSkgc3luY2hyb25vdXMtcCkpKQorICAgICAgICAgIChs ZXQgKGRlZmVycmVkIHJlc3VsdCkKKyAgICAgICAgICAgIDs7IEV2YWx1YXRlIHRoZSBgbGV0 JyBib2R5LCBjYXRjaGluZyBgZXNoZWxsLWRlZmVyJyBzbyB3ZQorICAgICAgICAgICAgOzsg Y2FuIGhhbmRsZSBpdCBiZWxvdy4KKyAgICAgICAgICAgIChzZXRxIGRlZmVycmVkCisgICAg ICAgICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1kZWZlcgorICAgICAgICAgICAgICAgICAg ICAoaWdub3JlIChzZXRxIHJlc3VsdCAoZXNoZWxsLWRvLWV2YWwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWNyb2V4cC1wcm9nbiAoY2RyIGFyZ3Mp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luY2hyb25v dXMtcCkpKSkpCisgICAgICAgICAgICA7OyBJZiBzb21ldGhpbmcgdGhyZXcgYGVzaGVsbC1k ZWZlcicsIHdlIG5lZWQgdG8gdXBkYXRlCisgICAgICAgICAgICA7OyB0aGUgbGV0LWJpbmRp bmdzJyB2YWx1ZXMgc28gdGhhdCB0aG9zZSB2YWx1ZXMgYXJlCisgICAgICAgICAgICA7OyBj b3JyZWN0IHdoZW4gd2UgcmVzdW1lIGV2YWx1YXRpb24gb2YgdGhpcyBmb3JtLgorICAgICAg ICAgICAgKHdoZW4gZGVmZXJyZWQKKyAgICAgICAgICAgICAgKGVzaGVsbC1tYW5pcHVsYXRl ICJyZWJpbmRpbmcgbGV0IGFyZ3MgYWZ0ZXIgYGVzaGVsbC1kZWZlciciCisgICAgICAgICAg ICAgICAgKGxldCAoKGJpbmRpbmdzIChjYXIgYXJncykpKQorICAgICAgICAgICAgICAgICAg KHdoaWxlIGJpbmRpbmdzCisgICAgICAgICAgICAgICAgICAgIChsZXQgKChiaW5kaW5nIChp ZiAoY29uc3AgKGNhciBiaW5kaW5ncykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2FhciBiaW5kaW5ncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY2FyIGJpbmRpbmdzKSkpKQorICAgICAgICAgICAgICAgICAgICAgIChz ZXRjYXIgYmluZGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGJp bmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0ICdxdW90 ZSAoc3ltYm9sLXZhbHVlIGJpbmRpbmcpKSkpKQorICAgICAgICAgICAgICAgICAgICAocG9w IGJpbmRpbmdzKSkpKQorICAgICAgICAgICAgICAodGhyb3cgJ2VzaGVsbC1kZWZlciBkZWZl cnJlZCkpCisgICAgICAgICAgICA7OyBJZiB3ZSBnZXQgaGVyZSwgdGhlcmUgd2FzIG5vIGBl c2hlbGwtZGVmZXInIHRocm93biwgc28KKyAgICAgICAgICAgIDs7IGp1c3QgcmV0dXJuIHRo ZSBgbGV0JyBib2R5J3MgcmVzdWx0LgorICAgICAgICAgICAgcmVzdWx0KSkpCiAgICAgICAg KChtZW1xIChjYXIgZm9ybSkgJyhjYXRjaCBjb25kaXRpb24tY2FzZSB1bndpbmQtcHJvdGVj dCkpCiAJOzsgYGNvbmRpdGlvbi1jYXNlJyBhbmQgYHVud2luZC1wcm90ZWN0JyBoYXZlIHRv IGJlCiAJOzsgaGFuZGxlZCBzcGVjaWFsbHksIGJlY2F1c2Ugd2Ugb25seSB3YW50IHRvIGNh bGwKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbCBiL3Rl c3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAppbmRleCBiY2VjYzlhNTMxZi4uOTQ3 NjM5NTQ2MjIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5l bAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwKQEAgLTczLDYgKzcz LDIzIEBAIGVzaC1jbWQtdGVzdC9zdWJjb21tYW5kLWxpc3AKIGUuZy4gXCJ7KCsgMSAyKX0g M1wiID0+IDMiCiAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtZXF1YWwgInsoKyAxIDIpfSAz IiAzKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9sZXQtcmViaW5kcy1hZnRlci1k ZWZlciAoKQorICAiVGVzdCB0aGF0IGxldC1ib3VuZCB2YWx1ZXMgYXJlIHByb3Blcmx5IHVw ZGF0ZWQgYWZ0ZXIgYGVzaGVsbC1kZWZlcicuCitXaGVuIGluc2lkZSBhIGBsZXQnIGJsb2Nr IGluIGFuIEVzaGVsbCBjb21tYW5kIGZvcm0sIHdlIG5lZWQgdG8KK2Vuc3VyZSB0aGF0IGRl ZmVycmVkIGNvbW1hbmRzIHVwZGF0ZSBhbnkgbGV0LWJvdW5kIHZhcmlhYmxlcyBzbwordGhl eSBoYXZlIHRoZSBjb3JyZWN0IHZhbHVlcyB3aGVuIHJlc3VtaW5nIGV2YWx1YXRpb24uICBT ZWUKK2J1ZyM1OTQ2OS4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJlY2hv IikpCisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAoZXNoZWxsLW1hdGNoLWNvbW1hbmQtb3V0 cHV0CisgICAgKGNvbmNhdCAieyIKKyAgICAgICAgICAgICIgIGV4cG9ydCBMT0NBTD12YWx1 ZTsgIgorICAgICAgICAgICAgIiAgZWNobyBcIiRMT0NBTFwiOyAiCisgICAgICAgICAgICAi ICAqZWNobyBleHRlcm5hbDsgIiAgICAgICAgOyBUaGlzIHdpbGwgdGhyb3cgYGVzaGVsbC1k ZWZlcicuCisgICAgICAgICAgICAiICBlY2hvIFwiJExPQ0FMXCI7ICIKKyAgICAgICAgICAg ICJ9IikKKyAgICAidmFsdWVcbmV4dGVybmFsXG52YWx1ZVxuIikpKQorCiAMCiA7OyBMaXNw IGZvcm1zCiAKLS0gCjIuMjUuMQoK --------------rYLgYRu4h0Rlyi0dteYFIoi8-- From unknown Tue Sep 23 05:03:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#59469: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /usr/bin/tail) sets the variable exported in the {} block of "for var in list {}" to nil (was: Adding a simpler duplication of the issue) Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Jan 2023 06:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59469 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Milan Zimmermann Cc: 59469@debbugs.gnu.org Received: via spool by 59469-submit@debbugs.gnu.org id=B59469.167497534929327 (code B ref 59469); Sun, 29 Jan 2023 06:56:02 +0000 Received: (at 59469) by debbugs.gnu.org; 29 Jan 2023 06:55:49 +0000 Received: from localhost ([127.0.0.1]:42092 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pM1bQ-0007cw-FM for submit@debbugs.gnu.org; Sun, 29 Jan 2023 01:55:49 -0500 Received: from mail-pf1-f172.google.com ([209.85.210.172]:43728) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pM1bN-0007ch-KT for 59469@debbugs.gnu.org; Sun, 29 Jan 2023 01:55:47 -0500 Received: by mail-pf1-f172.google.com with SMTP id u5so5441484pfm.10 for <59469@debbugs.gnu.org>; Sat, 28 Jan 2023 22:55:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=tqcCOYgiUgg/DYKxfdn1y9fOsBSrJ+fgw3nPMxuwxaY=; b=nbxBAMjPJRQ4Vd5szs7RyMR4T0Kc8KSQ7oODjtwZsmuPRk+Kn6Txfdyp4WQQ1VfYyF 3ye4SzP18kd34GYGgEiTte9O5ED+DBp9MEjB9qbr8zZr03bo8rDGP15mYU5SU8B5wroD O/nt8Wd5m67uTCDwR8pHAKHRTtdauCpNlErEKuJ7DSjO48Rx/+yGaIUxzi+sGgpS0mHK CoNC168O2pEFMR+c0vu6eW+HeMIPcuJTZbXIUfAM511VSJRF4EtdckKKiEokbm97OwCH BjlZbGoLplb9mFjmp2GXZk30q6Cd+Yvx/D0EDbos/xW4pVp4dRfL3jUrBWKa7IE51TEZ XZ+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=tqcCOYgiUgg/DYKxfdn1y9fOsBSrJ+fgw3nPMxuwxaY=; b=YdQ24j8eV0nBN29Yxaeu8xng9zkHOEfrXZwsqdVGSRJjFyKqye5qkUenKY6xv09hrW QP3WNimm4CSaterok1eo8KZKLf1/cmA07+LCEsGQFIFXxUr4NSGRRu4C3DYw/Ev9fENi 1i8Zcr/edsstEDfa9ya0ODHPC2Yq6KBBmpsFYkWab/aSNjIkjB5nI01+ZytEieX5qSMn WEmSlM1bSnvALKtXKv2ybUzvTEQaR/SB+f5fvfywr+ysr8q22pDZ0iV7f+N8JWm9cbyL CMPUgFL5xIp51RZHhxOTJhPqunEHljl5kaMMUcnhuAdz8owdWeuO+eYNHoDJeN0Tv4I0 VX5A== X-Gm-Message-State: AO0yUKXF/9cUnzKFpEU4nhkO7R0PWwQAkchElFH59hLpjg+Bez7neNwb 1ch+UKY2CXa4s0PmguwKc+4= X-Google-Smtp-Source: AK7set9MEvPD5hcxPriosGhJRDwzbo3ffoUOUD8KvQNRDwVKwU5mzqncTqlo+zzWNAzphblNOkxtng== X-Received: by 2002:a05:6a00:3685:b0:593:bc80:2d36 with SMTP id dw5-20020a056a00368500b00593bc802d36mr70362pfb.18.1674975339552; Sat, 28 Jan 2023 22:55:39 -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 t24-20020a62d158000000b005769b23260fsm3924708pfl.18.2023.01.28.22.55.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 28 Jan 2023 22:55:39 -0800 (PST) Content-Type: multipart/mixed; boundary="------------km0ZxLQR9oujGJl0Nq8po2qj" Message-ID: <5717092d-3dfc-ec95-fa22-2294ce611adc@gmail.com> Date: Sat, 28 Jan 2023 22:55:37 -0800 MIME-Version: 1.0 Content-Language: en-US From: Jim Porter References: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> <68ce6804-885d-01ce-2d37-461cd3aa33af@gmail.com> In-Reply-To: <68ce6804-885d-01ce-2d37-461cd3aa33af@gmail.com> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------km0ZxLQR9oujGJl0Nq8po2qj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit (Restoring the original subject so this issue is hopefully easier to track.) On 1/24/2023 5:39 PM, Jim Porter wrote: > The fix here is that when we're inside a 'let' and see 'eshell-defer' > get thrown, update the let-bindings in place. So now the updated form > would look like: > >   (let ((process-environment (cons "var=value" process-environment))) >     '"value"   ; Not really necessary, but it doesn't hurt anything. >     (eshell-external-command "grep") >     (eshell/echo (getenv "var"))) > > And so with this, it all works. Here's an updated patch with an improved comment introducing Eshell's iterative evaluation. Hopefully the added detail will help anyone else who looks into this code (assuming I haven't replaced it with threads or generator.el's CPS machinery by then, of course!). Note: I have a few other patches to apply after this that should let 'eshell-do-eval' handle "normal" Emacs Lisp for the most part. This will make it easier to maintain all the code that generates Eshell's internal forms, as well as simplifying the migration to threads and/or generator.el. I'll file those separately though, since this is tricky code, and I want to be sure each change gets a reasonable amount of attention. --------------km0ZxLQR9oujGJl0Nq8po2qj Content-Type: text/plain; charset=UTF-8; name="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.patch" Content-Disposition: attachment; filename*0="0001-Ensure-that-deferred-commands-don-t-make-Eshell-forg.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmMTI3YzczNWM1NDkxOWY5MzNkMzllZjJiNjI1MDgwYzBiNzU2YTA0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMjQgSmFuIDIwMjMgMTc6MTQ6NTQgLTA4MDAKU3ViamVjdDogW1BB VENIIDEvNF0gRW5zdXJlIHRoYXQgZGVmZXJyZWQgY29tbWFuZHMgZG9uJ3QgbWFrZSBFc2hl bGwgZm9yZ2V0CiBsZXQtYm91bmQgdmFsdWVzCgoqIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwg KENvbW1hbmQgZXZhbHVhdGlvbiBtYWNyb3MpOiBFeHBhbmQgdGhpcwpkb2N1bWVudGF0aW9u IHRvIGxpc3QgYWxsb3dlZCBzcGVjaWFsIGZvcm1zIGFuZCBjYXZlYXRzIGZvciB3b3JraW5n CndpdGggJ2lmJyBhbmQgJ3doaWxlJy4KKGVzaGVsbC1kby1ldmFsKTogUHJvdmlkZSBtb3Jl IGRldGFpbCBpbiBkb2NzdHJpbmcuICBIYW5kbGUKJ2VzaGVsbC1kZWZlcicgaW5zaWRlICds ZXQnIGZvcm1zLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwKKGVzaC1j bWQtdGVzdC9sZXQtcmViaW5kcy1hZnRlci1kZWZlcik6IE5ldyB0ZXN0IChidWcjNTk0Njkp LgotLS0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8IDc5ICsrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0KIHRlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0 cy5lbCB8IDE3ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwg MTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCBi L2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5kZXggOTljM2Q3ZjYyN2QuLjk2NTE5NzI0ZGQ1 IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtY21kLmVsCisrKyBiL2xpc3AvZXNoZWxs L2VzaC1jbWQuZWwKQEAgLTc0MSwxOCArNzQxLDI0IEBAIGVzaGVsbC1zZXBhcmF0ZS1jb21t YW5kcwogOzsgVGhlIHN0cnVjdHVyZSBvZiB0aGUgZm9sbG93aW5nIG1hY3JvcyBpcyB2ZXJ5 IGltcG9ydGFudCB0bwogOzsgYGVzaGVsbC1kby1ldmFsJyBbSXRlcmF0aXZlIGV2YWx1YXRp b25dOgogOzsKLTs7IEAgRG9uJ3QgdXNlIGZvcm1zIHRoYXQgY29uZGl0aW9uYWxseSBldmFs dWF0ZSB0aGVpciBhcmd1bWVudHMsIHN1Y2gKLTs7ICAgYXMgYHNldHEnLCBgaWYnLCBgd2hp bGUnLCBgbGV0KicsIGV0Yy4gIFRoZSBvbmx5IHNwZWNpYWwgZm9ybXMKLTs7ICAgdGhhdCBj YW4gYmUgdXNlZCBhcmUgYGxldCcsIGBjb25kaXRpb24tY2FzZScgYW5kCi07OyAgIGB1bndp bmQtcHJvdGVjdCcuCis7OyBAIERvbid0IHVzZSBzcGVjaWFsIGZvcm1zIHRoYXQgY29uZGl0 aW9uYWxseSBldmFsdWF0ZSB0aGVpcgorOzsgICBhcmd1bWVudHMsIHN1Y2ggYXMgYGxldCon LCB1bmxlc3MgRXNoZWxsIGV4cGxpY2l0bHkgc3VwcG9ydHMKKzs7ICAgdGhlbS4gIEVzaGVs bCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIHNwZWNpYWwgZm9ybXM6IGBjYXRjaCcsCis7OyAg IGBjb25kaXRpb24tY2FzZScsIGBpZicsIGBsZXQnLCBgcHJvZzEnLCBgcHJvZ24nLCBgcXVv dGUnLCBgc2V0cScsCis7OyAgIGB1bndpbmQtcHJvdGVjdCcsIGFuZCBgd2hpbGUnLgogOzsK LTs7IEAgVGhlIG1haW4gYm9keSBvZiBhIGBsZXQnIGNhbiBjb250YWluIG9ubHkgb25lIGZv cm0uICBVc2UgYHByb2duJwotOzsgICBpZiBuZWNlc3NhcnkuCis7OyBAIFdoZW4gdXNpbmcg YGlmJyBvciBgd2hpbGUnLCBmaXJzdCBsZXQtYmluZCBgZXNoZWxsLXRlc3QtYm9keScgYW5k Cis7OyAgIGBlc2hlbGwtY29tbWFuZC1ib2R5JyB0byAnKG5pbCkuICBFc2hlbGwgdXNlcyB0 aGVzZSB2YXJpYWJsZXMgdG8KKzs7ICAgaGFuZGxlIGNvbmRpdGlvbmFsIGV2YWx1YXRpb24u CiA7OwogOzsgQCBUaGUgdHdvIGBzcGVjaWFsJyB2YXJpYWJsZXMgYXJlIGBlc2hlbGwtY3Vy cmVudC1oYW5kbGVzJyBhbmQKIDs7ICAgYGVzaGVsbC1jdXJyZW50LXN1YmpvYi1wJy4gIEJp bmQgdGhlbSBsb2NhbGx5IHdpdGggYSBgbGV0JyBpZiB5b3UKIDs7ICAgbmVlZCB0byBjaGFu Z2UgdGhlbS4gIENoYW5nZSB0aGVtIGRpcmVjdGx5IG9ubHkgaWYgeW91ciBpbnRlbnRpb24K IDs7ICAgaXMgdG8gY2hhbmdlIHRoZSBjYWxsaW5nIGVudmlyb25tZW50LgorOzsKKzs7IFRo ZXNlIHJ1bGVzIGxpa2V3aXNlIGFwcGx5IHRvIGFueSBvdGhlciBjb2RlIHRoYXQgZ2VuZXJh dGVzIGZvcm1zCis7OyB0aGF0IGBlc2hlbGwtZG8tZXZhbCcgd2lsbCBldmFsdWF0ZWQsIHN1 Y2ggYXMgY29tbWFuZCByZXdyaXRpbmcKKzs7IGhvb2tzIChzZWUgYGVzaGVsbC1yZXdyaXRl LWNvbW1hbmQtaG9vaycgYW5kIGZyaWVuZHMpLgogCiAoZGVmbWFjcm8gZXNoZWxsLWRvLXN1 YmpvYiAob2JqZWN0KQogICAiRXZhbHVhdGUgYSBjb21tYW5kIE9CSkVDVCBhcyBhIHN1Ympv Yi4KQEAgLTEwOTUsOSArMTEwMSwxNyBAQCBlc2hlbGwtbWFuaXB1bGF0ZQogICAgICAgIChl c2hlbGwtZGVidWctY29tbWFuZCAsKGNvbmNhdCAiZG9uZSAiIChldmFsIHRhZykpIGZvcm0p KSkpCiAKIChkZWZ1biBlc2hlbGwtZG8tZXZhbCAoZm9ybSAmb3B0aW9uYWwgc3luY2hyb25v dXMtcCkKLSAgIkV2YWx1YXRlIGZvcm0sIHNpbXBsaWZ5aW5nIGl0IGFzIHdlIGdvLgorICAi RXZhbHVhdGUgRk9STSwgc2ltcGxpZnlpbmcgaXQgYXMgd2UgZ28uCiBVbmxlc3MgU1lOQ0hS T05PVVMtUCBpcyBub24tbmlsLCB0aHJvd3MgYGVzaGVsbC1kZWZlcicgaWYgaXQgbmVlZHMg dG8KLWJlIGZpbmlzaGVkIGxhdGVyIGFmdGVyIHRoZSBjb21wbGV0aW9uIG9mIGFuIGFzeW5j aHJvbm91cyBzdWJwcm9jZXNzLiIKK2JlIGZpbmlzaGVkIGxhdGVyIGFmdGVyIHRoZSBjb21w bGV0aW9uIG9mIGFuIGFzeW5jaHJvbm91cyBzdWJwcm9jZXNzLgorCitBcyB0aGlzIGZ1bmN0 aW9uIGV2YWx1YXRlcyBGT1JNLCBpdCB3aWxsIGdyYWR1YWxseSByZXBsYWNlCitzdWJmb3Jt cyB3aXRoIHRoZSAocXVvdGVkKSByZXN1bHQgb2YgZXZhbHVhdGluZyB0aGVtLiAgRm9yCitl eGFtcGxlLCBhIGZ1bmN0aW9uIGNhbGwgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcmVzdWx0IG9m IHRoZSBjYWxsLgorVGhpcyBhbGxvd3MgdXMgdG8gcmVzdW1lIGV2YWx1YXRpb24gb2YgRk9S TSBhZnRlciBzb21ldGhpbmcKK2luc2lkZSB0aHJvd3MgYGVzaGVsbC1kZWZlcicgc2ltcGx5 IGJ5IGNhbGxpbmcgdGhpcyBmdW5jdGlvbgorYWdhaW4uICBBbnkgZm9ybXMgcHJlY2VkaW5n IG9uZSB0aGF0IHRocm93IGBlc2hlbGwtZGVmZXInIHdpbGwKK2hhdmUgYmVlbiByZXBsYWNl ZCBieSBjb25zdGFudHMuIgogICAoY29uZAogICAgKChub3QgKGxpc3RwIGZvcm0pKQogICAg IChsaXN0ICdxdW90ZSAoZXZhbCBmb3JtKSkpCkBAIC0xMTYxLDIxICsxMTc1LDQ4IEBAIGVz aGVsbC1kby1ldmFsCiAJKHNldGNhciAoY2RyIGFyZ3MpIChlc2hlbGwtZG8tZXZhbCAoY2Fk ciBhcmdzKSBzeW5jaHJvbm91cy1wKSkKIAkoZXZhbCBmb3JtKSkKICAgICAgICAoKGVxIChj YXIgZm9ybSkgJ2xldCkKLQkoaWYgKG5vdCAoZXEgKGNhciAoY2FkciBhcmdzKSkgJ2VzaGVs bC1kby1ldmFsKSkKLQkgICAgKGVzaGVsbC1tYW5pcHVsYXRlICJldmFsdWF0aW5nIGxldCBh cmdzIgotCSAgICAgIChkb2xpc3QgKGxldGFyZyAoY2FyIGFyZ3MpKQotCQkoaWYgKGFuZCAo bGlzdHAgbGV0YXJnKQotCQkJIChub3QgKGVxIChjYWRyIGxldGFyZykgJ3F1b3RlKSkpCi0J CSAgICAoc2V0Y2RyIGxldGFyZwotCQkJICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAotCQkJ CSAgIChjYWRyIGxldGFyZykgc3luY2hyb25vdXMtcCkpKSkpKSkKKyAgICAgICAgKHdoZW4g KG5vdCAoZXEgKGNhciAoY2FkciBhcmdzKSkgJ2VzaGVsbC1kby1ldmFsKSkKKyAgICAgICAg ICAoZXNoZWxsLW1hbmlwdWxhdGUgImV2YWx1YXRpbmcgbGV0IGFyZ3MiCisgICAgICAgICAg ICAoZG9saXN0IChsZXRhcmcgKGNhciBhcmdzKSkKKyAgICAgICAgICAgICAgKHdoZW4gKGFu ZCAobGlzdHAgbGV0YXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKGVxIChj YWRyIGxldGFyZykgJ3F1b3RlKSkpCisgICAgICAgICAgICAgICAgKHNldGNkciBsZXRhcmcK KyAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChlc2hlbGwtZG8tZXZhbAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjYWRyIGxldGFyZykgc3luY2hyb25vdXMtcCkp KSkpKSkKICAgICAgICAgKGNsLXByb2d2Ci0gICAgICAgICAgICAobWFwY2FyIChsYW1iZGEg KGJpbmRpbmcpIChpZiAoY29uc3AgYmluZGluZykgKGNhciBiaW5kaW5nKSBiaW5kaW5nKSkK KyAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYmluZGluZykKKyAgICAgICAgICAgICAg ICAgICAgICAoaWYgKGNvbnNwIGJpbmRpbmcpIChjYXIgYmluZGluZykgYmluZGluZykpCiAg ICAgICAgICAgICAgICAgICAgIChjYXIgYXJncykpCiAgICAgICAgICAgICA7OyBUaGVzZSBl eHByZXNzaW9ucyBzaG91bGQgYWxsIGJlIGNvbnN0YW50cyBub3cuCi0gICAgICAgICAgICAo bWFwY2FyIChsYW1iZGEgKGJpbmRpbmcpIChpZiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNh ZHIgYmluZGluZykpKSkKKyAgICAgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoYmluZGluZykK KyAgICAgICAgICAgICAgICAgICAgICAod2hlbiAoY29uc3AgYmluZGluZykgKGV2YWwgKGNh ZHIgYmluZGluZykpKSkKICAgICAgICAgICAgICAgICAgICAgKGNhciBhcmdzKSkKLQkgIChl c2hlbGwtZG8tZXZhbCAobWFjcm9leHAtcHJvZ24gKGNkciBhcmdzKSkgc3luY2hyb25vdXMt cCkpKQorICAgICAgICAgIChsZXQgKGRlZmVycmVkIHJlc3VsdCkKKyAgICAgICAgICAgIDs7 IEV2YWx1YXRlIHRoZSBgbGV0JyBib2R5LCBjYXRjaGluZyBgZXNoZWxsLWRlZmVyJyBzbyB3 ZQorICAgICAgICAgICAgOzsgY2FuIGhhbmRsZSBpdCBiZWxvdy4KKyAgICAgICAgICAgIChz ZXRxIGRlZmVycmVkCisgICAgICAgICAgICAgICAgICAoY2F0Y2ggJ2VzaGVsbC1kZWZlcgor ICAgICAgICAgICAgICAgICAgICAoaWdub3JlIChzZXRxIHJlc3VsdCAoZXNoZWxsLWRvLWV2 YWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWNyb2V4 cC1wcm9nbiAoY2RyIGFyZ3MpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3luY2hyb25vdXMtcCkpKSkpCisgICAgICAgICAgICA7OyBJZiBzb21ldGhp bmcgdGhyZXcgYGVzaGVsbC1kZWZlcicsIHdlIG5lZWQgdG8gdXBkYXRlCisgICAgICAgICAg ICA7OyB0aGUgbGV0LWJpbmRpbmdzJyB2YWx1ZXMgc28gdGhhdCB0aG9zZSB2YWx1ZXMgYXJl CisgICAgICAgICAgICA7OyBjb3JyZWN0IHdoZW4gd2UgcmVzdW1lIGV2YWx1YXRpb24gb2Yg dGhpcyBmb3JtLgorICAgICAgICAgICAgKHdoZW4gZGVmZXJyZWQKKyAgICAgICAgICAgICAg KGVzaGVsbC1tYW5pcHVsYXRlICJyZWJpbmRpbmcgbGV0IGFyZ3MgYWZ0ZXIgYGVzaGVsbC1k ZWZlciciCisgICAgICAgICAgICAgICAgKGxldCAoKGJpbmRpbmdzIChjYXIgYXJncykpKQor ICAgICAgICAgICAgICAgICAgKHdoaWxlIGJpbmRpbmdzCisgICAgICAgICAgICAgICAgICAg IChsZXQgKChiaW5kaW5nIChpZiAoY29uc3AgKGNhciBiaW5kaW5ncykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FhciBiaW5kaW5ncykKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FyIGJpbmRpbmdzKSkpKQorICAgICAg ICAgICAgICAgICAgICAgIChzZXRjYXIgYmluZGluZ3MKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaXN0IGJpbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChsaXN0ICdxdW90ZSAoc3ltYm9sLXZhbHVlIGJpbmRpbmcpKSkpKQorICAgICAg ICAgICAgICAgICAgICAocG9wIGJpbmRpbmdzKSkpKQorICAgICAgICAgICAgICAodGhyb3cg J2VzaGVsbC1kZWZlciBkZWZlcnJlZCkpCisgICAgICAgICAgICA7OyBJZiB3ZSBnZXQgaGVy ZSwgdGhlcmUgd2FzIG5vIGBlc2hlbGwtZGVmZXInIHRocm93biwgc28KKyAgICAgICAgICAg IDs7IGp1c3QgcmV0dXJuIHRoZSBgbGV0JyBib2R5J3MgcmVzdWx0LgorICAgICAgICAgICAg cmVzdWx0KSkpCiAgICAgICAgKChtZW1xIChjYXIgZm9ybSkgJyhjYXRjaCBjb25kaXRpb24t Y2FzZSB1bndpbmQtcHJvdGVjdCkpCiAJOzsgYGNvbmRpdGlvbi1jYXNlJyBhbmQgYHVud2lu ZC1wcm90ZWN0JyBoYXZlIHRvIGJlCiAJOzsgaGFuZGxlZCBzcGVjaWFsbHksIGJlY2F1c2Ug d2Ugb25seSB3YW50IHRvIGNhbGwKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNo LWNtZC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAppbmRl eCBiY2VjYzlhNTMxZi4uOTQ3NjM5NTQ2MjIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lc2hl bGwvZXNoLWNtZC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVz dHMuZWwKQEAgLTczLDYgKzczLDIzIEBAIGVzaC1jbWQtdGVzdC9zdWJjb21tYW5kLWxpc3AK IGUuZy4gXCJ7KCsgMSAyKX0gM1wiID0+IDMiCiAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQt ZXF1YWwgInsoKyAxIDIpfSAzIiAzKSkKIAorKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9s ZXQtcmViaW5kcy1hZnRlci1kZWZlciAoKQorICAiVGVzdCB0aGF0IGxldC1ib3VuZCB2YWx1 ZXMgYXJlIHByb3Blcmx5IHVwZGF0ZWQgYWZ0ZXIgYGVzaGVsbC1kZWZlcicuCitXaGVuIGlu c2lkZSBhIGBsZXQnIGJsb2NrIGluIGFuIEVzaGVsbCBjb21tYW5kIGZvcm0sIHdlIG5lZWQg dG8KK2Vuc3VyZSB0aGF0IGRlZmVycmVkIGNvbW1hbmRzIHVwZGF0ZSBhbnkgbGV0LWJvdW5k IHZhcmlhYmxlcyBzbwordGhleSBoYXZlIHRoZSBjb3JyZWN0IHZhbHVlcyB3aGVuIHJlc3Vt aW5nIGV2YWx1YXRpb24uICBTZWUKK2J1ZyM1OTQ2OS4iCisgIChza2lwLXVubGVzcyAoZXhl Y3V0YWJsZS1maW5kICJlY2hvIikpCisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAoZXNoZWxs LW1hdGNoLWNvbW1hbmQtb3V0cHV0CisgICAgKGNvbmNhdCAieyIKKyAgICAgICAgICAgICIg IGV4cG9ydCBMT0NBTD12YWx1ZTsgIgorICAgICAgICAgICAgIiAgZWNobyBcIiRMT0NBTFwi OyAiCisgICAgICAgICAgICAiICAqZWNobyBleHRlcm5hbDsgIiAgICAgICAgOyBUaGlzIHdp bGwgdGhyb3cgYGVzaGVsbC1kZWZlcicuCisgICAgICAgICAgICAiICBlY2hvIFwiJExPQ0FM XCI7ICIKKyAgICAgICAgICAgICJ9IikKKyAgICAidmFsdWVcbmV4dGVybmFsXG52YWx1ZVxu IikpKQorCiAMCiA7OyBMaXNwIGZvcm1zCiAKLS0gCjIuMjUuMQoK --------------km0ZxLQR9oujGJl0Nq8po2qj-- From unknown Tue Sep 23 05:03:13 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Milan Zimmermann Subject: bug#59469: closed (Re: bug#59469: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /usr/bin/tail) sets the variable exported in the {} block of "for var in list {}" to nil (was: Adding a simpler duplication of the issue)) Message-ID: References: X-Gnu-PR-Message: they-closed 59469 X-Gnu-PR-Package: emacs Reply-To: 59469@debbugs.gnu.org Date: Fri, 10 Feb 2023 05:45:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1676007902-19758-1" This is a multi-part message in MIME format... ------------=_1676007902-19758-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #59469: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /u= sr/bin/tail) sets the variable exported in the {} block of "for var in list= {}" to nil which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 59469@debbugs.gnu.org. --=20 59469: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D59469 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1676007902-19758-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 59469-done) by debbugs.gnu.org; 10 Feb 2023 05:44:23 +0000 Received: from localhost ([127.0.0.1]:34117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pQMCt-00057a-6q for submit@debbugs.gnu.org; Fri, 10 Feb 2023 00:44:23 -0500 Received: from mail-pj1-f50.google.com ([209.85.216.50]:50715) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pQMCs-00057O-3l for 59469-done@debbugs.gnu.org; Fri, 10 Feb 2023 00:44:22 -0500 Received: by mail-pj1-f50.google.com with SMTP id y11so508702pjc.0 for <59469-done@debbugs.gnu.org>; Thu, 09 Feb 2023 21:44:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=J5XQy55U5KmrME7dBNYbFLrjWL0Zmgazx9QAEeR2z1w=; b=nsQ6bKjLUL9NC0YVKfyJ61Jrl6voFdicPkltmfyFmBEC1XImtq2T5w24B09SosunWa 3F8qezI3yxPwiddxLeNRSfN1YcurhgRUUDDRWTRxqcS5SrCWg/o2CbdTXqpvfMyoW/iN WUrjIA+X8krr9YwY4LS2RURSgEFWqTmea3UReS/DsgC5Cg+LIWGvqUt0Gtnh27D/4iGH QYm0NFlWm8MOlXm8vnLRCgTjqjcQVHCkG9jeWNLWqYsmNWFR6L4XOnMT2oHXWliBw0Yj M1EHboTog8U5/kX9z94VFEp6t/kFyTzWBLdfQ+Ogb/f9Ka2Zw4anEkceYS4N1gDOOiUY KOng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=J5XQy55U5KmrME7dBNYbFLrjWL0Zmgazx9QAEeR2z1w=; b=EtptlTkmUqtHRJs9US1PNoqiRWzXm92NCB87EAWhafQyneNsuGdvw3VoezNDWeOmIQ hA5uqduVaDfa/PxfjGuMNFJkwQBQE7MvN/J158jArZAL1AbRg/ka9oOGiYVVygirXyep fWkNI/bRtDg2J8DHJfcMg1litEG+Tpipk8df+44Fnjtg8JuA9eaDDsrNgW1nnmpIVZgS apAmf5NfK3VLkV4+jbqcu34cG/VtJ70sNYwoI0JDepuTGtTyeH4aaei82MufiZHbHTQO Y/uHf7DA1VpkI86PNOQ72oOQX01XLzPpdOoaNLcIUPBi24Ywbtxq71vqjJ0Xeoj54mQ0 hfDA== X-Gm-Message-State: AO0yUKUrxL/6Ks+KujvspB66Y+v2vOJt+/PyBSB6UdJ8KO92YAO2BEzO rvvXZWDE3hIn0S8k3di9sts= X-Google-Smtp-Source: AK7set8/C+mnwXMg+MjmipVMTNcJnkjrcRR968VsTXSfz5VDsdrRSCHjJNkfP0xoQ8HnYghZ36W10A== X-Received: by 2002:a17:90b:4b0a:b0:22c:d44:5669 with SMTP id lx10-20020a17090b4b0a00b0022c0d445669mr126098pjb.22.1676007856125; Thu, 09 Feb 2023 21:44:16 -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 gt18-20020a17090af2d200b002308e6e645bsm2289767pjb.49.2023.02.09.21.44.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Feb 2023 21:44:15 -0800 (PST) Message-ID: Date: Thu, 9 Feb 2023 21:44:15 -0800 MIME-Version: 1.0 Subject: Re: bug#59469: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /usr/bin/tail) sets the variable exported in the {} block of "for var in list {}" to nil (was: Adding a simpler duplication of the issue) Content-Language: en-US From: Jim Porter To: Milan Zimmermann References: <136fc764-48a4-4b03-c520-bd6ef16d9a50@gmail.com> <68ce6804-885d-01ce-2d37-461cd3aa33af@gmail.com> <5717092d-3dfc-ec95-fa22-2294ce611adc@gmail.com> In-Reply-To: <5717092d-3dfc-ec95-fa22-2294ce611adc@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 59469-done Cc: 59469-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 (-) On 1/28/2023 10:55 PM, Jim Porter wrote: > Here's an updated patch with an improved comment introducing Eshell's > iterative evaluation. Hopefully the added detail will help anyone else > who looks into this code (assuming I haven't replaced it with threads or > generator.el's CPS machinery by then, of course!). Merged as c53255f677. Closing this bug now. ------------=_1676007902-19758-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 22 Nov 2022 02:05:36 +0000 Received: from localhost ([127.0.0.1]:49258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxIfI-0007zT-1m for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:05:36 -0500 Received: from lists.gnu.org ([209.51.188.17]:47262) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oxIfC-0007zF-Hm for submit@debbugs.gnu.org; Mon, 21 Nov 2022 21:05:34 -0500 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 1oxIfC-0000MA-DD for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:05:30 -0500 Received: from mail-vs1-xe31.google.com ([2607:f8b0:4864:20::e31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oxIfA-0001yf-MJ for bug-gnu-emacs@gnu.org; Mon, 21 Nov 2022 21:05:30 -0500 Received: by mail-vs1-xe31.google.com with SMTP id i2so13131346vsc.1 for ; Mon, 21 Nov 2022 18:05:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=yw7Osjz63P3UKs34dbmLhDSvPDFdeui/kaVU2JTe1L8=; b=NWrzVCwgKalxYzBY8U/lwNjusVI3nM6TvMRq74puJNOppdvxS6gfn1ZwCSOK9Ktp3x UnWytfZO10E+D6F88fAYSal2v82heJgPVLrkYjVnX7xtJ5n79HWEkrtNMZEnSEvTm+76 YBLq4X4nuHR1CZYyL3pihjmLqC+Z5ITmvdZ1a5SAJay7kk67oCi1t24XrH42w4z3IkKb r9hMrSlkgFB4z6bgDuerCgIuFhDy6LfviE5O6mIQ+EJMT6RfED2O41qdRwfeNZ7CcZWg GmQtV+Hub4P1Q0CSZLgJv3atx0Bo/YUBdVHgaZm9/bHNAJ53n+ZZqQ/12CqUZoZMG9Bs MsNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=yw7Osjz63P3UKs34dbmLhDSvPDFdeui/kaVU2JTe1L8=; b=XQmIQg7M1wGhTqTtQm9d5SkpczTfoK7AT2jlntRg2wxASH1EQBdXV9uooaJGSiZuMP 1ri9JWbkTj+1qIP76cRRoLOXGosD2SllYlSyEXmcKcYOCiFkm+eqSCv2IQ3UnMo9yODD gbREtm0GXQH6ODoyVzVoSmNNwEKbxDm3h+E6dKomDWGySS97Tb0rbeOKypARdJXSxm2P iKaUVx5JYgD1vK2fd9JZQFN5rJ3YGsQ/7lE1mnDvm75abAiu+lHjSZ3S3ZM34EiN1xgq RXkmxYgRL57SK5A9Fep3xsQ/2JciAFRUy9tO2zGpRFVsaUiAFBH7r+8cxabILTMbSALZ HbFQ== X-Gm-Message-State: ANoB5pkV1yq+sBCOS+O5o9edIhAPpDWNQENoysjwPORd3kLgnc/kM1cU MUbxr6tY7Ru5e3n7Py9b5GoKqsiFiJbo2faG/nlmYP8B+Es= X-Google-Smtp-Source: AA0mqf6JR6klzftwta9ke6j2yQ0cxw/idKKoafxXsD51bjZo/NQeOBlzPenzrAfBlk1icOeR6htzVbKPssPfMfVlsZ8= X-Received: by 2002:a05:6102:11e5:b0:3aa:2fea:86f4 with SMTP id e5-20020a05610211e500b003aa2fea86f4mr1101360vsg.54.1669082727065; Mon, 21 Nov 2022 18:05:27 -0800 (PST) MIME-Version: 1.0 From: Milan Zimmermann Date: Mon, 21 Nov 2022 21:04:51 -0500 Message-ID: Subject: 29.0.50; Eshell "for" loop: Calling a non-lisp command (example: /usr/bin/tail) sets the variable exported in the {} block of "for var in list {}" to nil To: bug-gnu-emacs@gnu.org Content-Type: multipart/alternative; boundary="0000000000000c2e6805ee059bc7" Received-SPF: pass client-ip=2607:f8b0:4864:20::e31; envelope-from=milan.zimmermann@gmail.com; helo=mail-vs1-xe31.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 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, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -0.6 (/) 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: -1.6 (-) --0000000000000c2e6805ee059bc7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, I might be doing something wrong, but it appears that calling any non-lisp command (example: /usr/bin/tail) causes the variable set in the {} block of "for var in list {}" to change to nil. To duplicate, please create a file "bug.txt" in ~tmp, echo "line one" > ~/tmp/bug.txt then run the following code - In the code below, *please replace my full path "/home/mzimmermann/tmp/bug.txt" with your full path. There seems to be an unrelated issue trying to list ~/tmp/bug.txt* for file in (list "/home/mzimmermann/tmp/bug.txt") { type-of $file echo "file=3D$file"; # Create a variable. The back and forth between .log and .txt is # only there to simulate some useful work to set value of samefile export samefile=3D"${echo $file(:s/.txt/.log/)}"(:s/.log/.txt/); echo "samefile=3D$samefile" # Note that on my system, 'which tail' =3D=3D> /usr/bin/t= ail tail $file # Note that on my system, 'which cat' =3D=3D> eshell/cat = is a byte-compiled Lisp function in =E2=80=98em-unix.el=E2=80=99. # cat $file echo "samefile=3D$samefile" echo "file=3D$file"; } Actual result: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D string file=3D/home/mzimmermann/tmp/bug.txt samefile=3D/home/mzimmermann/tmp/bug.txt line one samefile=3Dnil file=3D/home/mzimmermann/tmp/bug.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Please *note how the contents of samefile is nullified. This is the bug I am reporting here* Expected result: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D string file=3D/home/mzimmermann/tmp/bug.txt samefile=3D/home/mzimmermann/tmp/bug.txt line one samefile=3D/home/mzimmermann/tmp/bug.txt file=3D/home/mzimmermann/tmp/bug.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Notes: 1. I tried this with other non-lisp functions (/usr/bin/gzip) and it caused the same issue. 2. If we use "cat" which is an elisp function, the loop works as expected. Thanks, Milan Zimmermann --0000000000000c2e6805ee059bc7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
I might be doing something wrong, but it appears that calling any no= n-lisp command =C2=A0(example: /usr/bin/tail) causes the variable set in th= e {} block of "for var in list {}" to change to nil.
To duplicate, please create a file "bug.txt" in ~tmp,

=C2= =A0 =C2=A0echo "line one" > ~/tmp/bug.txt

then run the = following code -

In the code below, *please replace my full path &qu= ot;/home/mzimmermann/tmp/bug.txt" with your full path. There seems to = be an unrelated issue trying to list ~/tmp/bug.txt*

=C2=A0 for file = in (list "/home/mzimmermann/tmp/bug.txt") {
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 type-of $file
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "file=3D$fil= e";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = # Create a variable. The back and forth between .log and .txt is
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # only there to sim= ulate some useful work to set value of samefile
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 export samefile=3D"${echo $f= ile(:s/.txt/.log/)}"(:s/.log/.txt/);
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "samefile=3D$samefile"=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # Note that= on my system, 'which tail' =3D=3D> /usr/bin/tail
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 tail $file
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # Note that on my s= ystem, 'which cat' =3D=3D> eshell/cat is a byte-compiled Lisp fu= nction in =E2=80=98em-unix.el=E2=80=99.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 # cat $file
=C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "samefile=3D$samefile"=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 echo "= file=3D$file";
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
Actual result:

=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D
string
file=3D/home/mzimmermann/tmp/bug.txt
samefile=3D/home/m= zimmermann/tmp/bug.txt
line one
samefile=3Dnil
file=3D/home/mzimme= rmann/tmp/bug.txt
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Please *note how the contents of samefile is nullified. This is the bug I= am reporting here*

Expected result:
=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D
string
file=3D/home/mzimmermann/tmp/bug.txt
= samefile=3D/home/mzimmermann/tmp/bug.txt
line one
samefile=3D/home/mz= immermann/tmp/bug.txt
file=3D/home/mzimmermann/tmp/bug.txt
=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Notes:

1. I tried thi= s with other non-lisp functions (/usr/bin/gzip) and it caused the same issu= e.

2. If we use "cat" which is an elisp function, the loop= works as expected.

Thanks,=C2=A0
Milan Zimmerm= ann
--0000000000000c2e6805ee059bc7-- ------------=_1676007902-19758-1--