From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 10 22:43:29 2022 Received: (at submit) by debbugs.gnu.org; 11 Aug 2022 02:43:29 +0000 Received: from localhost ([127.0.0.1]:51052 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oLyAT-0007Ur-4L for submit@debbugs.gnu.org; Wed, 10 Aug 2022 22:43:29 -0400 Received: from lists.gnu.org ([209.51.188.17]:60112) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oLyAR-0007Ui-9K for submit@debbugs.gnu.org; Wed, 10 Aug 2022 22:43:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oLyAR-0000Y5-2q for bug-gnu-emacs@gnu.org; Wed, 10 Aug 2022 22:43:27 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]:44915) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oLyAP-0002AO-JM for bug-gnu-emacs@gnu.org; Wed, 10 Aug 2022 22:43:26 -0400 Received: by mail-pl1-x629.google.com with SMTP id d16so15839273pll.11 for ; Wed, 10 Aug 2022 19:43:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:mime-version:date :message-id:to:subject:from:from:to:cc; bh=YBdHqhfbcQ04P0XWe5FhP6Eg7r0RRWTfZmED8VfU7Mg=; b=YxDpJDhIn052Epix1NStyFSdbOvuTsXy5pJ0cYD6upPUCzDbt2q/rLNCL0VCKy36XD eNHGBaCcNHioTqG967Vor7uviYd56QyHUnBVrubeSrwXV4nIDvtfini9Cw+FcV6qSzgp h9R+PgA/ilPbJAOrd/UpWsRZ8E771I3g0b0wKaytf+GJRVr45OBHyg+W2GI77j8nHO6l xWgwn8zBFFKmg+8gBYjm6nRFWaPc/AgvPPEkbSZJEImMCUvUe50DXFoPgekzqjLXj9jZ 8CJX69ijV3j8xT/Gy8zM4f4vLWyLVL1W1wo32V5LnhevODhIz1yaW16MKuINgwTkV8b2 52Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:mime-version:date :message-id:to:subject:from:x-gm-message-state:from:to:cc; bh=YBdHqhfbcQ04P0XWe5FhP6Eg7r0RRWTfZmED8VfU7Mg=; b=LOHSxNUxx8DVV2Rt7JBrucph0vC6wb+OOBhZgEhzouCuiQUZ+s6XbjYh4jfdex07CD KSKX2tsq1Mxo7gER+G0O+isdo5vqsL1zGynN1XoxQr52tEbLIizrs7kRZcWVzGBNSPPY meD95LBHJ6WUrl9IXSZ1bCqOzWw7qFoO0W9QzZpAvV58lk+yTny6Tzdq3TW0N71Qi3O5 2lU/5FiEv3eWbXDXEPZYKqODnG8shG9skLNYUwLyLutawv2152HnkEBuRReUqDRYW2BK w9VviIRRQGNQdP/mNNnEYyfsX+bt6HdbrYxBnUVzMHcscm/dwsG/mTDN5R2FmS8TcDGX BSwA== X-Gm-Message-State: ACgBeo2LhU6+TpBaZ8jzMFHng7S/3wGJ7Kh0bXKjLWJaj08DbkA+VYGv h/MPTYPAvOxyYD3+uDBo7SpkKRl1OeQ= X-Google-Smtp-Source: AA6agR6wQMFbFpa5HTIftFLgpS52BpXDr0fN/JoKQVu2yWwRPYfcT466kDGIiHAdkVXuDrw3qIGjyA== X-Received: by 2002:a17:90a:b391:b0:1f3:6c3:392c with SMTP id e17-20020a17090ab39100b001f306c3392cmr6549452pjr.166.1660185803614; Wed, 10 Aug 2022 19:43:23 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id kb7-20020a17090ae7c700b001f56a5e5d2fsm10840882pjb.2.2022.08.10.19.43.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Aug 2022 19:43:22 -0700 (PDT) X-Mozilla-News-Host: news://news.gmane.org:119 From: Jim Porter Subject: 29.0.50; Improve behavior of conditionals in Eshell To: bug-gnu-emacs@gnu.org Message-ID: Date: Wed, 10 Aug 2022 19:43:22 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2607:f8b0:4864:20::629; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x629.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) 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: -2.3 (--) In Eshell, you can use conditionals pretty much like you'd expect from other shells. Starting from 'emacs -Q -f eshell': ~ $ [ foo = foo ] && echo hi hi ~ $ [ foo = bar ] && echo hi ~ $ [ foo = foo ] || echo hi ~ $ [ foo = bar ] || echo hi hi ~ $ if {[ foo = foo ]} {echo yes} {echo no} yes ~ $ if {[ foo = bar ]} {echo yes} {echo no} no However, that only works for external commands. If the command is implemented in Lisp, it doesn't work: ~ $ (zerop 0) && echo hi t hi ~ $ (zerop 1) && echo hi hi ;; Shouldn't say hi. That's because the exit status is always 0 for Lisp commands. This works correctly for external commands: ~ $ [ foo = foo ]; echo status $? result $$ ("status" 0 "result" nil) ~ $ [ foo = bar ]; echo status $? result $$ ("status" 1 "result" nil) But not for Lisp commands: ~ $ (zerop 0); echo status $? result $$ t ("status" 0 "result" t) ~ $ (zerop 1); echo status $? result $$ ("status" 0 "result" nil) ~ $ (zerop "foo"); echo status $? result $$ Wrong type argument: number-or-marker-p, "foo" ("status" 0 "result" nil) The manual says that the status should be 1 when a Lisp command fails, but it's 0 no matter what, even if it signaled an error. (Likewise, the manual says that the "result" variable should be t for successful external commands, but it's always nil.) Similarly to the above, you can't use variable expansions for conditionals: ~ $ (setq foo t) t ~ $ if $foo {echo yes} {echo no} yes ~ $ (setq foo nil) ~ $ if $foo {echo yes} {echo no} yes ;; Should say no. Patch forthcoming. Just splitting it into two messages since it seemed more readable that way... From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 10 22:46:55 2022 Received: (at 57129) by debbugs.gnu.org; 11 Aug 2022 02:46:55 +0000 Received: from localhost ([127.0.0.1]:51065 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oLyDk-0007au-Lx for submit@debbugs.gnu.org; Wed, 10 Aug 2022 22:46:54 -0400 Received: from mail-pj1-f49.google.com ([209.85.216.49]:45989) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oLyDh-0007ag-HZ for 57129@debbugs.gnu.org; Wed, 10 Aug 2022 22:46:51 -0400 Received: by mail-pj1-f49.google.com with SMTP id p14-20020a17090a74ce00b001f4d04492faso3881883pjl.4 for <57129@debbugs.gnu.org>; Wed, 10 Aug 2022 19:46:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id :references:to:from:subject:from:to:cc; bh=qo5jddlowYH3MZ2v2J5sXAKiVR9FeXBFAcEq7rcsP6E=; b=a+PWaNGr37ZZZkuGgOtF7rPb/bZ6V9/k0ylaSFx+f5KzmG53XzyOZs8rgYCbigDhWH fCuvuUsG1C0p10V1o6CTu4ISMt+iVqdfLFnaZWz1NdAW3gDQBTsHXXg5OXeAfb3ZtJa8 IeMXevws2g3uX6B2Tw4sl5O44a4iU20iHruwKE47xEcOCGkMlf9CDhpi4UKwRRmznLIC khgwPUo2Njqw6jOncQsNC/VPXWa/4G+TN9kz0B13i04yY5jDsmeJysoykcOSHTDUF54P Dvnva9p6wfNC0APGFCMbQ51YmOD02ftP2cvxeJFAivRyaCW2XkY2wT40Gxp5WvWxP+AH x09A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id :references:to:from:subject:x-gm-message-state:from:to:cc; bh=qo5jddlowYH3MZ2v2J5sXAKiVR9FeXBFAcEq7rcsP6E=; b=f++dHvXwbx/rb65Kej69f4Kxu1H2Fbp61V9OrMZxAtyZggRh/0DVTWQ3174wVPMtfR GXXv9V+CCf2X4V1iIh/P63V+1vHkJ9qyffkw1aQfKeYkdNk7tTu9OqVJ/r71+PGGbKAQ km0aX/K7EzcG97iRw77KUpSzrvok71nooywfYMm9JC5ZnYlQ20hgh+Azx0UKM/SaLDN+ NtfN/V/JbXTbutLXSBdTXgYI9Jh/+n408z6IexW7BRBs0cYl1FZzRSwzrpOeL2SO/TiU lxXMcRBa+mTY5HbWGjT7zjBkfGxktsXPM65Wh3vZ2nmUO1WaoFBXKEnDWdTIHb2t/r41 VraA== X-Gm-Message-State: ACgBeo0foCwDuJ1g2mq4sYD+Ro0/mwNxYex5ud7Krerb0N1MUKFy2/pF oSkHCWfQA7VB5OfEy9pO3RnqAHWioBE= X-Google-Smtp-Source: AA6agR7teE05dboLvi7dIlx5DvBu3nSCNbBTWVX0n0sdFhCLHBqMs2b3Pz2VW05QirJpzGqt26jDxw== X-Received: by 2002:a17:903:2041:b0:16d:a78a:efd9 with SMTP id q1-20020a170903204100b0016da78aefd9mr30537731pla.71.1660186003188; Wed, 10 Aug 2022 19:46:43 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id 23-20020a621917000000b0052c0a9234e0sm2853608pfz.11.2022.08.10.19.46.41 for <57129@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Aug 2022 19:46:42 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell From: Jim Porter To: 57129@debbugs.gnu.org References: Message-ID: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> Date: Wed, 10 Aug 2022 19:46:41 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------FB610A9ACD38E16937EFA651" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 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. --------------FB610A9ACD38E16937EFA651 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Here are some patches to fix this. The first patch adds tests/documentation for the current state so that the subsequent patches are clearer. It also improves 'eshell-close-handles' so that you can set the exit status elsewhere, which makes some of the code simpler. The second patch fixes the use of variables in conditionals (e.g. if statements, while loops). The only non-test code change here is that 'eshell-structure-basic-command' needed to be taught that forms beginning with 'eshell-escape-arg' should be treated as data, much like 'eshell-convert'. The third patch fixes the behavior of the '$?' and '$$' variables to match the manual: '$$' is t when an external command succeeds, and '$?' is 1 when a Lisp command signals an error. I also added a new feature that '$?' is 2 when an actual Lisp *form* returns nil. This lets you use Lisp forms as conditionals in Eshell much like you would in regular Lisp. However, it doesn't apply to the command syntax, even if it runs Lisp code: ~ $ (zerop 1); echo $? 2 ~ $ zerop 1; echo $? 0 That's because Eshell prints the return value of Lisp commands (unless it's nil), so a Lisp command that wants to silently succeed would return nil. For example, the Lisp version of 'cat' returns nil. We want that to have an exit status of 0. However, when writing it as a Lisp form with parentheses, I think it makes more sense that nil is treated as false for conditionals. The overall goal is so that this prints hi: cat foo.txt && echo hi And that this doesn't: (zerop 1) && echo hi For people who don't like this behavior, they can customize the new 'eshell-lisp-form-nil-is-failure' variable. --------------FB610A9ACD38E16937EFA651 Content-Type: text/plain; charset=UTF-8; name="0001-Only-set-Eshell-execution-result-metavariables-when-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Only-set-Eshell-execution-result-metavariables-when-.pa"; filename*1="tch" RnJvbSAxN2QxNWRmMjM2OGEyYjA3OGU5MGQzOWNiODAxOGUyNzRlNDIyNjAyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBBdWcgMjAyMiAxMzozNzoyOCAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSBPbmx5IHNldCBFc2hlbGwgZXhlY3V0aW9uIHJlc3VsdCBtZXRhdmFyaWFibGVz IHdoZW4KIG5vbi1uaWwKClRoaXMgc2ltcGxpZmllcyB1c2FnZSBvZiAnZXNoZWxsLWNsb3Nl LWhhbmRsZXMnIGluIHNldmVyYWwgcGxhY2VzIGFuZAptYWtlcyBpdCB3b3JrIG1vcmUgbGlr ZSB0aGUgZG9jc3RyaW5nIGluZGljYXRlZCBpdCB3b3VsZC4KCiogbGlzcC9lc2hlbGwvZXNo LWlvLmVsIChlc2hlbGwtY2xvc2UtaGFuZGxlcyk6IE9ubHkgc3RvcmUgRVhJVC1DT0RFCmFu ZCBSRVNVTFQgaWYgdGhleSdyZSBub24tbmlsLiAgQWxzbywgdXNlICdkb3RpbWVzJyBhbmQg J2RvbGlzdCcgdG8Kc2ltcGxpZnkgdGhlIGltcGxlbWVudGF0aW9uLgoKKiBsaXNwL2VzaGVs bC9lbS1hbGlhcy5lbCAoZXNoZWxsLXdyaXRlLWFsaWFzZXMtbGlzdCk6CiogbGlzcC9lc2hl bGwvZXNoLWNtZC5lbCAoZXNoZWxsLXJld3JpdGUtZm9yLWNvbW1hbmQpCihlc2hlbGwtc3Ry dWN0dXJlLWJhc2ljLWNvbW1hbmQpOiBBZGFwdCBjYWxscyB0bwonZXNoZWxsLWNsb3NlLWhh bmRsZXMnLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaGVsbC10ZXN0cy5lbCAoZXNoZWxsLXRl c3Qvc2ltcGxlLWNvbW1hbmQtcmVzdWx0KQooZXNoZWxsLXRlc3QvbGlzcC1jb21tYW5kLCBl c2hlbGwtdGVzdC9saXNwLWNvbW1hbmQtd2l0aC1xdW90ZSkKKGVzaGVsbC10ZXN0L2Zvci1s b29wLCBlc2hlbGwtdGVzdC9mb3ItbmFtZS1sb29wKQooZXNoZWxsLXRlc3QvZm9yLW5hbWUt c2hhZG93LWxvb3AsIGVzaGVsbC10ZXN0L2xpc3AtY29tbWFuZC1hcmdzKQooZXNoZWxsLXRl c3Qvc3ViY29tbWFuZCwgZXNoZWxsLXRlc3Qvc3ViY29tbWFuZC1hcmdzKQooZXNoZWxsLXRl c3Qvc3ViY29tbWFuZC1saXNwKTogTW92ZSBmcm9tIGhlcmUuLi4KCiogdGVzdC9saXNwL2Vz aGVsbC9lc2gtY21kLXRlc3RzLmVsCihlc2gtY21kLXRlc3Qvc2ltcGxlLWNvbW1hbmQtcmVz dWx0LCBlc2gtY21kLXRlc3QvbGlzcC1jb21tYW5kKQooZXNoLWNtZC10ZXN0L2xpc3AtY29t bWFuZC13aXRoLXF1b3RlLCBlc2gtY21kLXRlc3QvZm9yLWxvb3ApCihlc2gtY21kLXRlc3Qv Zm9yLW5hbWUtbG9vcCwgZXNoLWNtZC10ZXN0L2Zvci1uYW1lLXNoYWRvdy1sb29wKQooZXNo LWNtZC10ZXN0L2xpc3AtY29tbWFuZC1hcmdzLCBlc2gtY21kLXRlc3Qvc3ViY29tbWFuZCkK KGVzaC1jbWQtdGVzdC9zdWJjb21tYW5kLWFyZ3MsIGVzaC1jbWQtdGVzdC9zdWJjb21tYW5k LWxpc3ApOiAuLi4gdG8KaGVyZS4KKGVzaC1jbWQtdGVzdC9hbmQtb3BlcmF0b3IsIGVzaC1j bWQtdGVzdC9vci1vcGVyYXRvcikKKGVzaC1jbWQtdGVzdC9mb3ItbG9vcC1saXN0LCBlc2gt Y21kLXRlc3QvZm9yLWxvb3AtbXVsdGlwbGUtYXJncykKKGVzaC1jbWQtdGVzdC93aGlsZS1s b29wLCBlc2gtY21kLXRlc3QvdW50aWwtbG9vcCkKKGVzaC1jbWQtdGVzdC9pZi1zdGF0ZW1l bnQsIGVzaC1jbWQtdGVzdC9pZi1lbHNlLXN0YXRlbWVudCkKKGVzaC1jbWQtdGVzdC91bmxl c3Mtc3RhdGVtZW50LCBlc2gtY21kLXRlc3QvdW5sZXNzLWVsc2Utc3RhdGVtZW50KToKTmV3 IHRlc3RzLgoKKiBkb2MvbWlzYy9lc2hlbGwudGV4aSAoSW52b2NhdGlvbik6IEV4cGxhaW4g JyYmJyBhbmQgJ3x8Jy4KKGZvciBsb29wKTogTW92ZSBmcm9tIGhlcmUuLi4KKENvbnRyb2wg Rmxvdyk6IC4uLiB0byBoZXJlLCBhbmQgYWRkIGRvY3VtZW50YXRpb24gZm9yIG90aGVyIGNv bnRyb2wKZmxvdyBmb3Jtcy4KLS0tCiBkb2MvbWlzYy9lc2hlbGwudGV4aSAgICAgICAgICAg ICAgfCAgNjIgKysrKysrKy0tLQogbGlzcC9lc2hlbGwvZW0tYWxpYXMuZWwgICAgICAgICAg IHwgICAyICstCiBsaXNwL2VzaGVsbC9lc2gtY21kLmVsICAgICAgICAgICAgfCAgIDggKy0K IGxpc3AvZXNoZWxsL2VzaC1pby5lbCAgICAgICAgICAgICB8ICA1MCArKysrLS0tLQogdGVz dC9saXNwL2VzaGVsbC9lc2gtY21kLXRlc3RzLmVsIHwgMTg5ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogdGVzdC9saXNwL2VzaGVsbC9lc2hlbGwtdGVzdHMuZWwgIHwgIDUz IC0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAyNjEgaW5zZXJ0aW9ucygrKSwgMTAzIGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvbGlzcC9lc2hlbGwvZXNoLWNt ZC10ZXN0cy5lbAoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VzaGVsbC50ZXhpIGIvZG9jL21p c2MvZXNoZWxsLnRleGkKaW5kZXggOWY5Yzg4NTgyZi4uZDY0M2NiNTA5NiAxMDA2NDQKLS0t IGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKQEAg LTIwMSw3ICsyMDEsNyBAQCBDb21tYW5kcwogKiBBbGlhc2VzOjoKICogSGlzdG9yeTo6CiAq IENvbXBsZXRpb246OgotKiBmb3IgbG9vcDo6CisqIENvbnRyb2wgRmxvdzo6CiAqIFNjcmlw dHM6OgogQGVuZCBtZW51CiAKQEAgLTIxOSwxMiArMjE5LDE4IEBAIEludm9jYXRpb24KIGV4 dGVybmFsIGNvbW1hbmQuCiAKIFRoZSBzZW1pY29sb24gKEBjb2Rlezt9KSBjYW4gYmUgdXNl ZCB0byBzZXBhcmF0ZSBtdWx0aXBsZSBjb21tYW5kCi1pbnZvY2F0aW9ucyBvbiBhIHNpbmds ZSBsaW5lLiAgQSBjb21tYW5kIGludm9jYXRpb24gZm9sbG93ZWQgYnkgYW4KLWFtcGVyc2Fu ZCAoQGNvZGV7Jn0pIHdpbGwgYmUgcnVuIGluIHRoZSBiYWNrZ3JvdW5kLiAgRXNoZWxsIGhh cyBubyBqb2IKLWNvbnRyb2wsIHNvIHlvdSBjYW4gbm90IHN1c3BlbmQgb3IgYmFja2dyb3Vu ZCB0aGUgY3VycmVudCBwcm9jZXNzLCBvcgotYnJpbmcgYSBiYWNrZ3JvdW5kIHByb2Nlc3Mg aW50byB0aGUgZm9yZWdyb3VuZC4gIFRoYXQgc2FpZCwgYmFja2dyb3VuZAotcHJvY2Vzc2Vz IGludm9rZWQgZnJvbSBFc2hlbGwgY2FuIGJlIGNvbnRyb2xsZWQgdGhlIHNhbWUgd2F5IGFz IGFueQotb3RoZXIgYmFja2dyb3VuZCBwcm9jZXNzIGluIEVtYWNzLgoraW52b2NhdGlvbnMg b24gYSBzaW5nbGUgbGluZS4gIFlvdSBjYW4gYWxzbyBzZXBhcmF0ZSBjb21tYW5kcyB3aXRo CitAY29kZXsmJn0gb3IgQGNvZGV7fHx9LiBXaGVuIHVzaW5nIEBjb2RleyYmfSwgRXNoZWxs IHdpbGwgZXhlY3V0ZSB0aGUKK3NlY29uZCBjb21tYW5kIG9ubHkgaWYgdGhlIGZpcnN0IHN1 Y2NlZWRzIChpLmUuQDogaGFzIGFuIGV4aXQKK3N0YXR1cyBvZiAwKTsgd2l0aCBAY29kZXt8 fH0sIEVzaGVsbCB3aWxsIGV4ZWN1dGUgdGhlIHNlY29uZCBjb21tYW5kCitvbmx5IGlmIHRo ZSBmaXJzdCBmYWlscy4KKworQSBjb21tYW5kIGludm9jYXRpb24gZm9sbG93ZWQgYnkgYW4g YW1wZXJzYW5kIChAY29kZXsmfSkgd2lsbCBiZSBydW4KK2luIHRoZSBiYWNrZ3JvdW5kLiAg RXNoZWxsIGhhcyBubyBqb2IgY29udHJvbCwgc28geW91IGNhbiBub3Qgc3VzcGVuZAorb3Ig YmFja2dyb3VuZCB0aGUgY3VycmVudCBwcm9jZXNzLCBvciBicmluZyBhIGJhY2tncm91bmQg cHJvY2VzcyBpbnRvCit0aGUgZm9yZWdyb3VuZC4gIFRoYXQgc2FpZCwgYmFja2dyb3VuZCBw cm9jZXNzZXMgaW52b2tlZCBmcm9tIEVzaGVsbAorY2FuIGJlIGNvbnRyb2xsZWQgdGhlIHNh bWUgd2F5IGFzIGFueSBvdGhlciBiYWNrZ3JvdW5kIHByb2Nlc3MgaW4KK0VtYWNzLgogCiBA bm9kZSBBcmd1bWVudHMKIEBzZWN0aW9uIEFyZ3VtZW50cwpAQCAtMTAwOCwxOSArMTAxNCw0 MSBAQCBDb21wbGV0aW9uCiB0aGUgZnVuY3Rpb24gQGNvZGV7cGNvbXBsZXRlL01BSk9SLU1P REUvQ09NTUFORH0gdG8gZGVmaW5lIGNvbXBsZXRpb25zCiBmb3IgYSBzcGVjaWZpYyBtYWpv ciBtb2RlLgogCi1Abm9kZSBmb3IgbG9vcAotQHNlY3Rpb24gQGNvZGV7Zm9yfSBsb29wCitA bm9kZSBDb250cm9sIEZsb3cKK0BzZWN0aW9uIENvbnRyb2wgRmxvdwogQmVjYXVzZSBFc2hl bGwgY29tbWFuZHMgY2FuIG5vdCAoZWFzaWx5KSBiZSBjb21iaW5lZCB3aXRoIGxpc3AgZm9y bXMsCi1Fc2hlbGwgcHJvdmlkZXMgYSBjb21tYW5kLW9yaWVudGVkIEBjb21tYW5ke2Zvcn0t bG9vcCBmb3IgY29udmVuaWVuY2UuCi1UaGUgc3ludGF4IGlzIGFzIGZvbGxvd3M6CitFc2hl bGwgcHJvdmlkZXMgY29tbWFuZC1vcmllbnRlZCBjb250cm9sIGZsb3cgc3RhdGVtZW50cyBm b3IKK2NvbnZlbmllbmNlLgogCi1AZXhhbXBsZQotQGNvZGV7Zm9yIFZBUiBpbiBUT0tFTlMg QHsgY29tbWFuZCBpbnZvY2F0aW9uKHMpIEB9fQotQGVuZCBleGFtcGxlCitAdGFibGUgQGNv ZGUKKworQGl0ZW0gaWYgQHsgQHZhcntjb25kaXRpb25hbH0gQH0gQHsgQHZhcnt0cnVlLWNv bW1hbmRzfSBAfQorQGl0ZW14IGlmIEB7IEB2YXJ7Y29uZGl0aW9uYWx9IEB9IEB7IEB2YXJ7 dHJ1ZS1jb21tYW5kc30gQH0gQHsgQHZhcntmYWxzZS1jb21tYW5kc30gQH0KK0V2YWx1YXRl IEB2YXJ7dHJ1ZS1jb21tYW5kc30gaWYgQHZhcntjb25kaXRpb25hbH0gcmV0dXJucyBzdWNj ZXNzCisoaS5lLkA6IGl0cyBleGl0IGNvZGUgaXMgemVybyk7IG90aGVyd2lzZSwgZXZhbHVh dGUKK0B2YXJ7ZmFsc2UtY29tbWFuZHN9LgorCitAaXRlbSB1bmxlc3MgQHsgQHZhcntjb25k aXRpb25hbH0gQH0gQHsgQHZhcntmYWxzZS1jb21tYW5kc30gQH0KK0BpdGVteCB1bmxlc3Mg QHsgQHZhcntjb25kaXRpb25hbH0gQH0gQHsgQHZhcntmYWxzZS1jb21tYW5kc30gQH0gQHsg QHZhcnt0cnVlLWNvbW1hbmRzfSBAfQorRXZhbHVhdGUgQHZhcntmYWxzZS1jb21tYW5kc30g aWYgQHZhcntjb25kaXRpb25hbH0gcmV0dXJucyBmYWlsdXJlCisoaS5lLkA6IGl0cyBleGl0 IGNvZGUgaXMgbm9uLXplcm8pOyBvdGhlcndpc2UsIGV2YWx1YXRlCitAdmFye3RydWUtY29t bWFuZHN9LgogCi13aGVyZSBAc2FtcHtUT0tFTlN9IGlzIGEgc3BhY2Utc2VwYXJhdGVkIHNl cXVlbmNlIG9mIHZhbHVlcyBvZgotQHZhcntWQVJ9IGZvciBlYWNoIGl0ZXJhdGlvbi4gIFRo aXMgY2FuIGV2ZW4gYmUgdGhlIG91dHB1dCBvZiBhCi1jb21tYW5kIGlmIEBzYW1we1RPS0VO U30gaXMgcmVwbGFjZWQgd2l0aCBAc2FtcHtAeyBjb21tYW5kIGludm9jYXRpb24gQH19Lgor QGl0ZW0gd2hpbGUgQHsgQHZhcntjb25kaXRpb25hbH0gQH0gQHsgQHZhcntjb21tYW5kc30g QH0KK1JlcGVhdGVkbHkgZXZhbHVhdGUgQHZhcntjb21tYW5kc30gc28gbG9uZyBhcyBAdmFy e2NvbmRpdGlvbmFsfQorcmV0dXJucyBzdWNjZXNzLgorCitAaXRlbSB1bnRpbCBAeyBAdmFy e2NvbmRpdGlvbmFsfSBAfSBAeyBAdmFye2NvbW1hbmRzfSBAfQorUmVwZWF0ZWRseSBldmFs dWF0ZSBAdmFye2NvbW1hbmRzfSBzbyBsb25nIGFzIEB2YXJ7Y29uZGl0aW9uYWx9CityZXR1 cm5zIGZhaWx1cmUuCisKK0BpdGVtIGZvciBAdmFye3Zhcn0gaW4gQHZhcntsaXN0fUBkb3Rz e30gQHsgQHZhcntjb21tYW5kc30gQH0KK0l0ZXJhdGUgb3ZlciBlYWNoIGVsZW1lbnQgb2Yg b2YgQHZhcntsaXN0fSwgc3RvcmluZyB0aGUgZWxlbWVudCBpbgorQHZhcnt2YXJ9IGFuZCBl dmFsdWF0aW5nIEB2YXJ7Y29tbWFuZHN9LiAgSWYgQHZhcntsaXN0fSBpcyBub3QgYSBsaXN0 LAordHJlYXQgaXQgYXMgYSBsaXN0IG9mIG9uZSBlbGVtZW50LiAgSWYgeW91IHNwZWNpZnkg bXVsdGlwbGUKK0B2YXJ7bGlzdHN9LCB0aGlzIHdpbGwgaXRlcmF0ZSBvdmVyIGVhY2ggb2Yg dGhlbSBpbiB0dXJuLgorCitAZW5kIHRhYmxlCiAKIEBub2RlIFNjcmlwdHMKIEBzZWN0aW9u IFNjcmlwdHMKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VtLWFsaWFzLmVsIGIvbGlzcC9l c2hlbGwvZW0tYWxpYXMuZWwKaW5kZXggNWQzYWFmN2M4MS4uOWFkMjE4ZDU5OCAxMDA2NDQK LS0tIGEvbGlzcC9lc2hlbGwvZW0tYWxpYXMuZWwKKysrIGIvbGlzcC9lc2hlbGwvZW0tYWxp YXMuZWwKQEAgLTIwNiw3ICsyMDYsNyBAQCBlc2hlbGwtd3JpdGUtYWxpYXNlcy1saXN0CiAg ICAgICAobGV0ICgoZXNoZWxsLWN1cnJlbnQtaGFuZGxlcwogCSAgICAgKGVzaGVsbC1jcmVh dGUtaGFuZGxlcyBlc2hlbGwtYWxpYXNlcy1maWxlICdvdmVyd3JpdGUpKSkKIAkoZXNoZWxs L2FsaWFzKQotCShlc2hlbGwtY2xvc2UtaGFuZGxlcyAwKSkpKQorCShlc2hlbGwtY2xvc2Ut aGFuZGxlcyAwICduaWwpKSkpCiAKIChkZWZzdWJzdCBlc2hlbGwtbG9va3VwLWFsaWFzIChu YW1lKQogICAiQ2hlY2sgd2hldGhlciBOQU1FIGlzIGFsaWFzZWQuICBSZXR1cm4gdGhlIGFs aWFzIGlmIHRoZXJlIGlzIG9uZS4iCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtY21k LmVsIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAppbmRleCA3NzVlNGMxMDU3Li45NjI3MmNh MWEzIDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtY21kLmVsCisrKyBiL2xpc3AvZXNo ZWxsL2VzaC1jbWQuZWwKQEAgLTU0MSw5ICs1NDEsNyBAQCBlc2hlbGwtcmV3cml0ZS1mb3It Y29tbWFuZAogCSAgIAksKGVzaGVsbC1pbnZva2lmeS1hcmcgYm9keSB0KSkpCiAJICAgICAo c2V0Y2FyIGZvci1pdGVtcyAoY2FkciBmb3ItaXRlbXMpKQogCSAgICAgKHNldGNkciBmb3It aXRlbXMgKGNkZHIgZm9yLWl0ZW1zKSkpCi0gICAgICAgICAgIChlc2hlbGwtY2xvc2UtaGFu ZGxlcwotICAgICAgICAgICAgZXNoZWxsLWxhc3QtY29tbWFuZC1zdGF0dXMKLSAgICAgICAg ICAgIChsaXN0ICdxdW90ZSBlc2hlbGwtbGFzdC1jb21tYW5kLXJlc3VsdCkpKSkpKQorICAg ICAgICAgICAoZXNoZWxsLWNsb3NlLWhhbmRsZXMpKSkpKQogCiAoZGVmdW4gZXNoZWxsLXN0 cnVjdHVyZS1iYXNpYy1jb21tYW5kIChmdW5jIG5hbWVzIGtleXdvcmQgdGVzdCBib2R5CiAJ CQkJCSAgICAmb3B0aW9uYWwgZWxzZSkKQEAgLTU3NCw5ICs1NzIsNyBAQCBlc2hlbGwtc3Ry dWN0dXJlLWJhc2ljLWNvbW1hbmQKICAgYChsZXQgKChlc2hlbGwtY29tbWFuZC1ib2R5ICco bmlsKSkKICAgICAgICAgIChlc2hlbGwtdGVzdC1ib2R5ICcobmlsKSkpCiAgICAgICgsZnVu YyAsdGVzdCAsYm9keSAsZWxzZSkKLSAgICAgKGVzaGVsbC1jbG9zZS1oYW5kbGVzCi0gICAg ICAgIGVzaGVsbC1sYXN0LWNvbW1hbmQtc3RhdHVzCi0gICAgICAgIChsaXN0ICdxdW90ZSBl c2hlbGwtbGFzdC1jb21tYW5kLXJlc3VsdCkpKSkKKyAgICAgKGVzaGVsbC1jbG9zZS1oYW5k bGVzKSkpCiAKIChkZWZ1biBlc2hlbGwtcmV3cml0ZS13aGlsZS1jb21tYW5kICh0ZXJtcykK ICAgIlJld3JpdGUgYSBgd2hpbGUnIGNvbW1hbmQgaW50byBpdHMgZXF1aXZhbGVudCBFc2hl bGwgY29tbWFuZCBmb3JtLgpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLWlvLmVsIGIv bGlzcC9lc2hlbGwvZXNoLWlvLmVsCmluZGV4IDY4ZTUyYTJjOWMuLjI3NzAzOTc2ZjYgMTAw NjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1pby5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gt aW8uZWwKQEAgLTI1NCw2ICsyNTQsMzAgQEAgZXNoZWxsLXByb3RlY3QtaGFuZGxlcwogICAg ICAgKHNldHEgaWR4ICgxKyBpZHgpKSkpCiAgIGhhbmRsZXMpCiAKKyhkZWZ1biBlc2hlbGwt Y2xvc2UtaGFuZGxlcyAoJm9wdGlvbmFsIGV4aXQtY29kZSByZXN1bHQgaGFuZGxlcykKKyAg IkNsb3NlIGFsbCBvZiB0aGUgY3VycmVudCBIQU5ETEVTLCB0YWtpbmcgcmVmY291bnRzIGlu dG8gYWNjb3VudC4KK0lmIEhBTkRMRVMgaXMgbmlsLCB1c2UgYGVzaGVsbC1jdXJyZW50LWhh bmRsZXMnLgorCitFWElULUNPREUgaXMgdGhlIHByb2Nlc3MgZXhpdCBjb2RlICh6ZXJvLCBp ZiB0aGUgY29tbWFuZAorY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkuICBJZiBuaWwsIHRoZW4g dXNlIHRoZSBleGl0IGNvZGUgYWxyZWFkeQorc2V0IGluIGBlc2hlbGwtbGFzdC1jb21tYW5k LXN0YXR1cycuCisKK1JFU1VMVCBpcyB0aGUgcXVvdGVkIHZhbHVlIG9mIHRoZSBsYXN0IGNv bW1hbmQuICBJZiBuaWwsIHRoZW4gdXNlCit0aGUgdmFsdWUgYWxyZWFkeSBzZXQgaW4gYGVz aGVsbC1sYXN0LWNvbW1hbmQtcmVzdWx0Jy4iCisgICh3aGVuIGV4aXQtY29kZQorICAgIChz ZXRxIGVzaGVsbC1sYXN0LWNvbW1hbmQtc3RhdHVzIGV4aXQtY29kZSkpCisgICh3aGVuIHJl c3VsdAorICAgIChjbC1hc3NlcnQgKGVxIChjYXIgcmVzdWx0KSAncXVvdGUpKQorICAgIChz ZXRxIGVzaGVsbC1sYXN0LWNvbW1hbmQtcmVzdWx0IChjYWRyIHJlc3VsdCkpKQorICAobGV0 ICgoaGFuZGxlcyAob3IgaGFuZGxlcyBlc2hlbGwtY3VycmVudC1oYW5kbGVzKSkpCisgICAg KGRvdGltZXMgKGlkeCBlc2hlbGwtbnVtYmVyLW9mLWhhbmRsZXMpCisgICAgICAod2hlbi1s ZXQgKChoYW5kbGUgKGFyZWYgaGFuZGxlcyBpZHgpKSkKKyAgICAgICAgKHNldGNkciBoYW5k bGUgKDEtIChjZHIgaGFuZGxlKSkpCisJKHdoZW4gKD0gKGNkciBoYW5kbGUpIDApCisgICAg ICAgICAgKGRvbGlzdCAodGFyZ2V0IChlbnN1cmUtbGlzdCAoY2FyIChhcmVmIGhhbmRsZXMg aWR4KSkpKQorICAgICAgICAgICAgKGVzaGVsbC1jbG9zZS10YXJnZXQgdGFyZ2V0ICg9IGVz aGVsbC1sYXN0LWNvbW1hbmQtc3RhdHVzIDApKSkKKyAgICAgICAgICAoc2V0Y2FyIGhhbmRs ZSBuaWwpKSkpKSkKKwogKGRlZnVuIGVzaGVsbC1jbG9zZS10YXJnZXQgKHRhcmdldCBzdGF0 dXMpCiAgICJDbG9zZSBhbiBvdXRwdXQgVEFSR0VULCBwYXNzaW5nIFNUQVRVUyBhcyB0aGUg cmVzdWx0LgogU1RBVFVTIHNob3VsZCBiZSBub24tbmlsIG9uIHN1Y2Nlc3NmdWwgdGVybWlu YXRpb24gb2YgdGhlIG91dHB1dC4iCkBAIC0zMDUsMzIgKzMyOSw2IEBAIGVzaGVsbC1jbG9z ZS10YXJnZXQKICAgICgoY29uc3AgdGFyZ2V0KQogICAgIChhcHBseSAoY2FyIHRhcmdldCkg c3RhdHVzIChjZHIgdGFyZ2V0KSkpKSkKIAotKGRlZnVuIGVzaGVsbC1jbG9zZS1oYW5kbGVz IChleGl0LWNvZGUgJm9wdGlvbmFsIHJlc3VsdCBoYW5kbGVzKQotICAiQ2xvc2UgYWxsIG9m IHRoZSBjdXJyZW50IGhhbmRsZXMsIHRha2luZyByZWZjb3VudHMgaW50byBhY2NvdW50Lgot RVhJVC1DT0RFIGlzIHRoZSBwcm9jZXNzIGV4aXQgY29kZTsgbWFpbmx5LCBpdCBpcyB6ZXJv LCBpZiB0aGUgY29tbWFuZAotY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4gIFJFU1VMVCBpcyB0 aGUgcXVvdGVkIHZhbHVlIG9mIHRoZSBsYXN0Ci1jb21tYW5kLiAgSWYgbmlsLCB0aGVuIHRo ZSBtZXRhIHZhcmlhYmxlcyBmb3Iga2VlcGluZyB0cmFjayBvZiB0aGUKLWxhc3QgZXhlY3V0 aW9uIHJlc3VsdCBzaG91bGQgbm90IGJlIGNoYW5nZWQuIgotICAobGV0ICgoaWR4IDApKQot ICAgIChjbC1hc3NlcnQgKG9yIChub3QgcmVzdWx0KSAoZXEgKGNhciByZXN1bHQpICdxdW90 ZSkpKQotICAgIChzZXRxIGVzaGVsbC1sYXN0LWNvbW1hbmQtc3RhdHVzIGV4aXQtY29kZQot CSAgZXNoZWxsLWxhc3QtY29tbWFuZC1yZXN1bHQgKGNhZHIgcmVzdWx0KSkKLSAgICAod2hp bGUgKDwgaWR4IGVzaGVsbC1udW1iZXItb2YtaGFuZGxlcykKLSAgICAgIChsZXQgKChoYW5k bGVzIChvciBoYW5kbGVzIGVzaGVsbC1jdXJyZW50LWhhbmRsZXMpKSkKLQkod2hlbiAoYXJl ZiBoYW5kbGVzIGlkeCkKLQkgIChzZXRjZHIgKGFyZWYgaGFuZGxlcyBpZHgpCi0JCSAgKDEt IChjZHIgKGFyZWYgaGFuZGxlcyBpZHgpKSkpCi0JICAod2hlbiAoPSAoY2RyIChhcmVmIGhh bmRsZXMgaWR4KSkgMCkKLQkgICAgKGxldCAoKHRhcmdldCAoY2FyIChhcmVmIGhhbmRsZXMg aWR4KSkpKQotCSAgICAgIChpZiAobm90IChsaXN0cCB0YXJnZXQpKQotCQkgIChlc2hlbGwt Y2xvc2UtdGFyZ2V0IHRhcmdldCAoPSBleGl0LWNvZGUgMCkpCi0JCSh3aGlsZSB0YXJnZXQK LQkJICAoZXNoZWxsLWNsb3NlLXRhcmdldCAoY2FyIHRhcmdldCkgKD0gZXhpdC1jb2RlIDAp KQotCQkgIChzZXRxIHRhcmdldCAoY2RyIHRhcmdldCkpKSkpCi0JICAgIChzZXRjYXIgKGFy ZWYgaGFuZGxlcyBpZHgpIG5pbCkpKSkKLSAgICAgIChzZXRxIGlkeCAoMSsgaWR4KSkpCi0g ICAgbmlsKSkKLQogKGRlZnVuIGVzaGVsbC1raWxsLWFwcGVuZCAoc3RyaW5nKQogICAiQ2Fs bCBga2lsbC1hcHBlbmQnIHdpdGggU1RSSU5HLCBpZiBpdCBpcyBpbmRlZWQgYSBzdHJpbmcu IgogICAoaWYgKHN0cmluZ3Agc3RyaW5nKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVs bC9lc2gtY21kLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtY21kLXRlc3RzLmVs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjFkNWNkMjlkN2MKLS0t IC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwKQEAg LTAsMCArMSwxODkgQEAKKzs7OyBlc2gtY21kLXRlc3RzLmVsIC0tLSBlc2gtY21kIHRlc3Qg c3VpdGUgIC0qLSBsZXhpY2FsLWJpbmRpbmc6dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAy MDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBUaGlzIGZpbGUgaXMg cGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJlOiB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cis7OyBhbG9uZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorCis7OyBUZXN0cyBmb3Ig RXNoZWxsJ3MgY29tbWFuZCBpbnZvY2F0aW9uLgorCis7OzsgQ29kZToKKworKHJlcXVpcmUg J2VydCkKKyhyZXF1aXJlICdlc2gtbW9kZSkKKyhyZXF1aXJlICdlc2hlbGwpCisKKyhyZXF1 aXJlICdlc2hlbGwtdGVzdHMtaGVscGVycworICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUg ImVzaGVsbC10ZXN0cy1oZWxwZXJzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZp bGUtbmFtZS1kaXJlY3RvcnkgKG9yIGxvYWQtZmlsZS1uYW1lCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdC1kaXJlY3Rvcnkp KSkpCisKKyhkZWZ2YXIgZXNoZWxsLXRlc3QtdmFsdWUgbmlsKQorCis7OzsgVGVzdHM6CisK KwwKKzs7IENvbW1hbmQgaW52b2NhdGlvbgorCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0 L3NpbXBsZS1jb21tYW5kLXJlc3VsdCAoKQorICAiVGVzdCBpbnZvY2F0aW9uIHdpdGggYSBz aW1wbGUgY29tbWFuZC4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5k LXJlc3VsdCAiKyAxIDIiKSAzKSkpCisKKyhlcnQtZGVmdGVzdCBlc2gtY21kLXRlc3QvbGlz cC1jb21tYW5kICgpCisgICJUZXN0IGludm9jYXRpb24gd2l0aCBhbiBlbGlzcCBjb21tYW5k LiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10ZXN0LWNvbW1hbmQtcmVzdWx0ICIoKyAx IDIpIikgMykpKQorCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L2xpc3AtY29tbWFuZC13 aXRoLXF1b3RlICgpCisgICJUZXN0IGludm9jYXRpb24gd2l0aCBhbiBlbGlzcCBjb21tYW5k IGNvbnRhaW5pbmcgYSBxdW90ZS4iCisgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1j b21tYW5kLXJlc3VsdCAiKGVxICdmb28gbmlsKSIpIG5pbCkpKQorCisoZXJ0LWRlZnRlc3Qg ZXNoLWNtZC10ZXN0L2xpc3AtY29tbWFuZC1hcmdzICgpCisgICJUZXN0IGludm9jYXRpb24g d2l0aCBlbGlzcCBhbmQgdHJhaWxpbmcgYXJncy4KK1Rlc3QgdGhhdCB0cmFpbGluZyBhcmd1 bWVudHMgb3V0c2lkZSB0aGUgUy1leHByZXNzaW9uIGFyZQoraWdub3JlZC4gIGUuZy4gXCIo KyAxIDIpIDNcIiA9PiAzIgorICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLXRlc3QtY29tbWFu ZC1yZXN1bHQgIigrIDEgMikgMyIpIDMpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVz dC9zdWJjb21tYW5kICgpCisgICJUZXN0IGludm9jYXRpb24gd2l0aCBhIHNpbXBsZSBzdWJj b21tYW5kLiIKKyAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10ZXN0LWNvbW1hbmQtcmVzdWx0 ICJ7KyAxIDJ9IikgMykpKQorCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3N1YmNvbW1h bmQtYXJncyAoKQorICAiVGVzdCBpbnZvY2F0aW9uIHdpdGggYSBzdWJjb21tYW5kIGFuZCB0 cmFpbGluZyBhcmdzLgorVGVzdCB0aGF0IHRyYWlsaW5nIGFyZ3VtZW50cyBvdXRzaWRlIHRo ZSBzdWJjb21tYW5kIGFyZSBpZ25vcmVkLgorZS5nLiBcInsrIDEgMn0gM1wiID0+IDMiCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5kLXJlc3VsdCAieysgMSAyfSAz IikgMykpKQorCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3N1YmNvbW1hbmQtbGlzcCAo KQorICAiVGVzdCBpbnZvY2F0aW9uIHdpdGggYW4gZWxpc3Agc3ViY29tbWFuZCBhbmQgdHJh aWxpbmcgYXJncy4KK1Rlc3QgdGhhdCB0cmFpbGluZyBhcmd1bWVudHMgb3V0c2lkZSB0aGUg c3ViY29tbWFuZCBhcmUgaWdub3JlZC4KK2UuZy4gXCJ7KCsgMSAyKX0gM1wiID0+IDMiCisg IChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5kLXJlc3VsdCAieygrIDEgMil9 IDMiKSAzKSkpCisKKwwKKzs7IExvZ2ljYWwgb3BlcmF0b3JzCisKKyhlcnQtZGVmdGVzdCBl c2gtY21kLXRlc3QvYW5kLW9wZXJhdG9yICgpCisgICJUZXN0IGxvZ2ljYWwgJiYgb3BlcmF0 b3IuIgorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiWyIpKQorICAod2l0aC10 ZW1wLWVzaGVsbAorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJbIGZvbyA9IGZvbyBd ICYmIGVjaG8gaGkiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpXG4iKQorICAg KGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJbIGZvbyA9IGJhciBdICYmIGVjaG8gaGkiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcJyIpKSkKKworKGVydC1kZWZ0ZXN0 IGVzaC1jbWQtdGVzdC9vci1vcGVyYXRvciAoKQorICAiVGVzdCBsb2dpY2FsIHx8IG9wZXJh dG9yLiIKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgIlsiKSkKKyAgKHdpdGgt dGVtcC1lc2hlbGwKKyAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiWyBmb28gPSBmb28g XSB8fCBlY2hvIGhpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXCciKQor ICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJbIGZvbyA9IGJhciBdIHx8IGVjaG8gaGki CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImhpXG4iKSkpCisKKwwKKzs7IENvbnRy b2wgZmxvdyBzdGF0ZW1lbnRzCisKKyhlcnQtZGVmdGVzdCBlc2gtY21kLXRlc3QvZm9yLWxv b3AgKCkKKyAgIlRlc3QgaW52b2NhdGlvbiBvZiBhIGZvciBsb29wLiIKKyAgKHdpdGgtdGVt cC1lc2hlbGwKKyAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiZm9yIGkgaW4gNSB7IGVj aG8gJGkgfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiNVxuIikpKQorCisoZXJ0 LWRlZnRlc3QgZXNoLWNtZC10ZXN0L2Zvci1sb29wLWxpc3QgKCkKKyAgIlRlc3QgaW52b2Nh dGlvbiBvZiBhIGZvciBsb29wIGl0ZXJhdGluZyBvdmVyIGEgbGlzdC4iCisgICh3aXRoLXRl bXAtZXNoZWxsCisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImZvciBpIGluIChsaXN0 IDEgMiAobGlzdCAzIDQpKSB7IGVjaG8gJGkgfSIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiMVxuMlxuKDMgNClcbiIpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9m b3ItbG9vcC1tdWx0aXBsZS1hcmdzICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYSBmb3Ig bG9vcCBpdGVyYXRpbmcgb3ZlciBtdWx0aXBsZSBhcmd1bWVudHMuIgorICAod2l0aC10ZW1w LWVzaGVsbAorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJmb3IgaSBpbiAxIDIgKGxp c3QgMyA0KSB7IGVjaG8gJGkgfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMVxu MlxuM1xuNFxuIikpKQorCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L2Zvci1uYW1lLWxv b3AgKCkgOyBidWcjMTUyMzEKKyAgIlRlc3QgaW52b2NhdGlvbiBvZiBhIGZvciBsb29wIHVz aW5nIGBuYW1lJy4iCisgIChsZXQgKChwcm9jZXNzLWVudmlyb25tZW50IChjb25zICJuYW1l IiBwcm9jZXNzLWVudmlyb25tZW50KSkpCisgICAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10 ZXN0LWNvbW1hbmQtcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICJmb3IgbmFtZSBpbiAz IHsgZWNobyAkbmFtZSB9IikKKyAgICAgICAgICAgICAgICAgICAzKSkpKQorCisoZXJ0LWRl ZnRlc3QgZXNoLWNtZC10ZXN0L2Zvci1uYW1lLXNoYWRvdy1sb29wICgpIDsgYnVnIzE1Mzcy CisgICJUZXN0IGludm9jYXRpb24gb2YgYSBmb3IgbG9vcCB1c2luZyBhbiBlbnYtdmFyLiIK KyAgKGxldCAoKHByb2Nlc3MtZW52aXJvbm1lbnQgKGNvbnMgIm5hbWU9ZW52LXZhbHVlIiBw cm9jZXNzLWVudmlyb25tZW50KSkpCisgICAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgICAgKGVz aGVsbC1jb21tYW5kLXJlc3VsdC1wCisgICAgICAiZWNobyAkbmFtZTsgZm9yIG5hbWUgaW4g MyB7IGVjaG8gJG5hbWUgfTsgZWNobyAkbmFtZSIKKyAgICAgICJlbnYtdmFsdWVcbjNcbmVu di12YWx1ZVxuIikpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC93aGlsZS1sb29w ICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYSB3aGlsZSBsb29wLiIKKyAgKHNraXAtdW5s ZXNzIChleGVjdXRhYmxlLWZpbmQgIlsiKSkKKyAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgIChs ZXQgKChlc2hlbGwtdGVzdC12YWx1ZSAwKSkKKyAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3Vs dC1wCisgICAgICAoY29uY2F0ICJ3aGlsZSB7WyAkZXNoZWxsLXRlc3QtdmFsdWUgLW5lIDMg XX0gIgorICAgICAgICAgICAgICAieyBzZXRxIGVzaGVsbC10ZXN0LXZhbHVlICgxKyBlc2hl bGwtdGVzdC12YWx1ZSkgfSIpCisgICAgICAiMVxuMlxuM1xuIikpKSkKKworKGVydC1kZWZ0 ZXN0IGVzaC1jbWQtdGVzdC91bnRpbC1sb29wICgpCisgICJUZXN0IGludm9jYXRpb24gb2Yg YW4gdW50aWwgbG9vcC4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJbIikp CisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgMCkp CisgICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcAorICAgICAgKGNvbmNhdCAidW50aWwg e1sgJGVzaGVsbC10ZXN0LXZhbHVlIC1lcSAzIF19ICIKKyAgICAgICAgICAgICAgInsgc2V0 cSBlc2hlbGwtdGVzdC12YWx1ZSAoMSsgZXNoZWxsLXRlc3QtdmFsdWUpIH0iKQorICAgICAg IjFcbjJcbjNcbiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlc2gtY21kLXRlc3QvaWYtc3RhdGVt ZW50ICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYW4gaWYgc3RhdGVtZW50LiIKKyAgKHNr aXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgIlsiKSkKKyAgKHdpdGgtdGVtcC1lc2hlbGwK KyAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiaWYge1sgZm9vID0gZm9vIF19IHtlY2hv IHllc30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInllc1xuIikKKyAgIChlc2hl bGwtY29tbWFuZC1yZXN1bHQtcCAiaWYge1sgZm9vID0gYmFyIF19IHtlY2hvIHllc30iCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcJyIpKSkKKworKGVydC1kZWZ0ZXN0 IGVzaC1jbWQtdGVzdC9pZi1lbHNlLXN0YXRlbWVudCAoKQorICAiVGVzdCBpbnZvY2F0aW9u IG9mIGFuIGlmL2Vsc2Ugc3RhdGVtZW50LiIKKyAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxl LWZpbmQgIlsiKSkKKyAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgIChlc2hlbGwtY29tbWFuZC1y ZXN1bHQtcCAiaWYge1sgZm9vID0gZm9vIF19IHtlY2hvIHllc30ge2VjaG8gbm99IgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJ5ZXNcbiIpCisgICAoZXNoZWxsLWNvbW1hbmQt cmVzdWx0LXAgImlmIHtbIGZvbyA9IGJhciBdfSB7ZWNobyB5ZXN9IHtlY2hvIG5vfSIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAibm9cbiIpKSkKKworKGVydC1kZWZ0ZXN0IGVz aC1jbWQtdGVzdC91bmxlc3Mtc3RhdGVtZW50ICgpCisgICJUZXN0IGludm9jYXRpb24gb2Yg YW4gdW5sZXNzIHN0YXRlbWVudC4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5k ICJbIikpCisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0 LXAgInVubGVzcyB7WyBmb28gPSBmb28gXX0ge2VjaG8gbm99IgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJcXGBcXCciKQorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1 bmxlc3Mge1sgZm9vID0gYmFyIF19IHtlY2hvIG5vfSIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAibm9cbiIpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC91bmxlc3Mt ZWxzZS1zdGF0ZW1lbnQgKCkKKyAgIlRlc3QgaW52b2NhdGlvbiBvZiBhbiB1bmxlc3MvZWxz ZSBzdGF0ZW1lbnQuIgorICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiWyIpKQor ICAod2l0aC10ZW1wLWVzaGVsbAorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1bmxl c3Mge1sgZm9vID0gZm9vIF19IHtlY2hvIG5vfSB7ZWNobyB5ZXN9IgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ5ZXNcbiIpCisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAg InVubGVzcyB7WyBmb28gPSBiYXIgXX0ge2VjaG8gbm99IHtlY2hvIHllc30iCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm5vXG4iKSkpCisKKzs7IGVzaC1jbWQtdGVzdHMuZWwg ZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZXNoZWxsL2VzaGVsbC10ZXN0cy5l bCBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoZWxsLXRlc3RzLmVsCmluZGV4IDVkYzE4Nzc1NDgu Ljg0MjM1MDBlYTcgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoZWxsLXRlc3Rz LmVsCisrKyBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoZWxsLXRlc3RzLmVsCkBAIC0zNiw1OSAr MzYsNiBAQAogCiA7OzsgVGVzdHM6CiAKLShlcnQtZGVmdGVzdCBlc2hlbGwtdGVzdC9zaW1w bGUtY29tbWFuZC1yZXN1bHQgKCkKLSAgIlRlc3QgYGVzaGVsbC1jb21tYW5kLXJlc3VsdCcg d2l0aCBhIHNpbXBsZSBjb21tYW5kLiIKLSAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10ZXN0 LWNvbW1hbmQtcmVzdWx0ICIrIDEgMiIpIDMpKSkKLQotKGVydC1kZWZ0ZXN0IGVzaGVsbC10 ZXN0L2xpc3AtY29tbWFuZCAoKQotICAiVGVzdCBgZXNoZWxsLWNvbW1hbmQtcmVzdWx0JyB3 aXRoIGFuIGVsaXNwIGNvbW1hbmQuIgotICAoc2hvdWxkIChlcXVhbCAoZXNoZWxsLXRlc3Qt Y29tbWFuZC1yZXN1bHQgIigrIDEgMikiKSAzKSkpCi0KLShlcnQtZGVmdGVzdCBlc2hlbGwt dGVzdC9saXNwLWNvbW1hbmQtd2l0aC1xdW90ZSAoKQotICAiVGVzdCBgZXNoZWxsLWNvbW1h bmQtcmVzdWx0JyB3aXRoIGFuIGVsaXNwIGNvbW1hbmQgY29udGFpbmluZyBhIHF1b3RlLiIK LSAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10ZXN0LWNvbW1hbmQtcmVzdWx0ICIoZXEgJ2Zv byBuaWwpIikgbmlsKSkpCi0KLShlcnQtZGVmdGVzdCBlc2hlbGwtdGVzdC9mb3ItbG9vcCAo KQotICAiVGVzdCBgZXNoZWxsLWNvbW1hbmQtcmVzdWx0JyB3aXRoIGEgZm9yIGxvb3AuLiIK LSAgKGxldCAoKHByb2Nlc3MtZW52aXJvbm1lbnQgKGNvbnMgImZvbyIgcHJvY2Vzcy1lbnZp cm9ubWVudCkpKQotICAgIChzaG91bGQgKGVxdWFsIChlc2hlbGwtdGVzdC1jb21tYW5kLXJl c3VsdAotICAgICAgICAgICAgICAgICAgICAiZm9yIGZvbyBpbiA1IHsgZWNobyAkZm9vIH0i KSA1KSkpKQotCi0oZXJ0LWRlZnRlc3QgZXNoZWxsLXRlc3QvZm9yLW5hbWUtbG9vcCAoKSA7 QnVnIzE1MjMxCi0gICJUZXN0IGBlc2hlbGwtY29tbWFuZC1yZXN1bHQnIHdpdGggYSBmb3Ig bG9vcCB1c2luZyBgbmFtZScuIgotICAobGV0ICgocHJvY2Vzcy1lbnZpcm9ubWVudCAoY29u cyAibmFtZSIgcHJvY2Vzcy1lbnZpcm9ubWVudCkpKQotICAgIChzaG91bGQgKGVxdWFsIChl c2hlbGwtdGVzdC1jb21tYW5kLXJlc3VsdAotICAgICAgICAgICAgICAgICAgICAiZm9yIG5h bWUgaW4gMyB7IGVjaG8gJG5hbWUgfSIpIDMpKSkpCi0KLShlcnQtZGVmdGVzdCBlc2hlbGwt dGVzdC9mb3ItbmFtZS1zaGFkb3ctbG9vcCAoKSA7IGJ1ZyMxNTM3MgotICAiVGVzdCBgZXNo ZWxsLWNvbW1hbmQtcmVzdWx0JyB3aXRoIGEgZm9yIGxvb3AgdXNpbmcgYW4gZW52LXZhci4i Ci0gIChsZXQgKChwcm9jZXNzLWVudmlyb25tZW50IChjb25zICJuYW1lPWVudi12YWx1ZSIg cHJvY2Vzcy1lbnZpcm9ubWVudCkpKQotICAgICh3aXRoLXRlbXAtZXNoZWxsCi0gICAgIChl c2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiZWNobyAkbmFtZTsgZm9yIG5hbWUgaW4gMyB7IGVj aG8gJG5hbWUgfTsgZWNobyAkbmFtZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJlbnYtdmFsdWVcbjNcbmVudi12YWx1ZVxuIikpKSkKLQotKGVydC1kZWZ0ZXN0IGVzaGVs bC10ZXN0L2xpc3AtY29tbWFuZC1hcmdzICgpCi0gICJUZXN0IGBlc2hlbGwtY29tbWFuZC1y ZXN1bHQnIHdpdGggZWxpc3AgYW5kIHRyYWlsaW5nIGFyZ3MuCi1UZXN0IHRoYXQgdHJhaWxp bmcgYXJndW1lbnRzIG91dHNpZGUgdGhlIFMtZXhwcmVzc2lvbiBhcmUKLWlnbm9yZWQuICBl LmcuIFwiKCsgMSAyKSAzXCIgPT4gMyIKLSAgKHNob3VsZCAoZXF1YWwgKGVzaGVsbC10ZXN0 LWNvbW1hbmQtcmVzdWx0ICIoKyAxIDIpIDMiKSAzKSkpCi0KLShlcnQtZGVmdGVzdCBlc2hl bGwtdGVzdC9zdWJjb21tYW5kICgpCi0gICJUZXN0IGBlc2hlbGwtY29tbWFuZC1yZXN1bHQn IHdpdGggYSBzaW1wbGUgc3ViY29tbWFuZC4iCi0gIChzaG91bGQgKGVxdWFsIChlc2hlbGwt dGVzdC1jb21tYW5kLXJlc3VsdCAieysgMSAyfSIpIDMpKSkKLQotKGVydC1kZWZ0ZXN0IGVz aGVsbC10ZXN0L3N1YmNvbW1hbmQtYXJncyAoKQotICAiVGVzdCBgZXNoZWxsLWNvbW1hbmQt cmVzdWx0JyB3aXRoIGEgc3ViY29tbWFuZCBhbmQgdHJhaWxpbmcgYXJncy4KLVRlc3QgdGhh dCB0cmFpbGluZyBhcmd1bWVudHMgb3V0c2lkZSB0aGUgc3ViY29tbWFuZCBhcmUgaWdub3Jl ZC4KLWUuZy4gXCJ7KyAxIDJ9IDNcIiA9PiAzIgotICAoc2hvdWxkIChlcXVhbCAoZXNoZWxs LXRlc3QtY29tbWFuZC1yZXN1bHQgInsrIDEgMn0gMyIpIDMpKSkKLQotKGVydC1kZWZ0ZXN0 IGVzaGVsbC10ZXN0L3N1YmNvbW1hbmQtbGlzcCAoKQotICAiVGVzdCBgZXNoZWxsLWNvbW1h bmQtcmVzdWx0JyB3aXRoIGFuIGVsaXNwIHN1YmNvbW1hbmQgYW5kIHRyYWlsaW5nIGFyZ3Mu Ci1UZXN0IHRoYXQgdHJhaWxpbmcgYXJndW1lbnRzIG91dHNpZGUgdGhlIHN1YmNvbW1hbmQg YXJlIGlnbm9yZWQuCi1lLmcuIFwieygrIDEgMil9IDNcIiA9PiAzIgotICAoc2hvdWxkIChl cXVhbCAoZXNoZWxsLXRlc3QtY29tbWFuZC1yZXN1bHQgInsoKyAxIDIpfSAzIikgMykpKQot CiAoZXJ0LWRlZnRlc3QgZXNoZWxsLXRlc3QvcGlwZS1oZWFkcHJvYyAoKQogICAiQ2hlY2sg dGhhdCBwaXBpbmcgYSBub24tcHJvY2VzcyB0byBhIHByb2Nlc3MgY29tbWFuZCB3YWl0cyBm b3IgdGhlIHByb2Nlc3MiCiAgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJjYXQi KSkKLS0gCjIuMjUuMQoK --------------FB610A9ACD38E16937EFA651 Content-Type: text/plain; charset=UTF-8; name="0002-Allow-using-dollar-expansions-in-Eshell-conditionals.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Allow-using-dollar-expansions-in-Eshell-conditionals.pa"; filename*1="tch" RnJvbSBmZmM3Njg4MzcwZjg1MmQ3NDI1YjdjNjdlNmE1M2NmOTRhM2U0MjA4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAyMToyNDoyNyAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBBbGxvdyB1c2luZyBkb2xsYXIgZXhwYW5zaW9ucyBpbiBFc2hlbGwgY29uZGl0 aW9uYWxzCgoqIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgKGVzaGVsbC1zdHJ1Y3R1cmUtYmFz aWMtY29tbWFuZCk6IEZvcm1zCmJlZ2lubmluZyB3aXRoICdlc2hlbGwtZXNjYXBlLWFyZycg YXJlICJkYXRhLXdpc2UiLgoKKiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwg KGVzaC1jbWQtdGVzdC93aGlsZS1sb29wKQooZXNoLWNtZC10ZXN0L3VudGlsLWxvb3AsIGVz aC1jbWQtdGVzdC9pZi1zdGF0ZW1lbnQpCihlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1l bnQsIGVzaC1jbWQtdGVzdC91bmxlc3Mtc3RhdGVtZW50KQooZXNoLWNtZC10ZXN0L3VubGVz cy1lbHNlLXN0YXRlbWVudCk6IFVzZSB2YXJpYWJsZSBpbnRlcnBvbGF0aW9uLgooZXNoLWNt ZC10ZXN0L3doaWxlLWxvb3AtZXh0LWNtZCwgZXNoLWNtZC10ZXN0L3VudGlsLWxvb3AtZXh0 LWNtZCkKKGVzaC1jbWQtdGVzdC9pZi1lbHNlLXN0YXRlbWVudC1leHQtY21kKQooZXNoLWNt ZC10ZXN0L3VubGVzcy1lbHNlLXN0YXRlbWVudC1leHQtY21kKTogTmV3IHRlc3RzLCBhZGFw dGVkIGZyb20KdGhlIGV4aXN0aW5nIG9uZXMuCgoqIGRvYy9taXNjL2VzaGVsbC50ZXhpIChD b250cm9sIEZsb3cpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IKY29uZGl0aW9uYWxzIChi dWcjNTcxMjkpLgotLS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDQz ICsrKysrKysrKysrKy0tLS0tLS0tLS0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAg ICAgICB8ICA5ICsrLS0tCiB0ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwgfCA2 MCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDc5 IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9taXNj L2VzaGVsbC50ZXhpIGIvZG9jL21pc2MvZXNoZWxsLnRleGkKaW5kZXggZDY0M2NiNTA5Ni4u MTQxYzMwYWU5YiAxMDA2NDQKLS0tIGEvZG9jL21pc2MvZXNoZWxsLnRleGkKKysrIGIvZG9j L21pc2MvZXNoZWxsLnRleGkKQEAgLTEwMjAsMjcgKzEwMjAsMzIgQEAgQ29udHJvbCBGbG93 CiBFc2hlbGwgcHJvdmlkZXMgY29tbWFuZC1vcmllbnRlZCBjb250cm9sIGZsb3cgc3RhdGVt ZW50cyBmb3IKIGNvbnZlbmllbmNlLgogCitNb3N0IG9mIEVzaGVsbCdzIGNvbnRyb2wgZmxv dyBzdGF0ZW1lbnRzIGFjY2VwdCBhIEB2YXJ7Y29uZGl0aW9uYWx9LgorVGhpcyBjYW4gdGFr ZSBhIGZldyBkaWZmZXJlbnQgZm9ybXMuICBJZiBAdmFye2NvbmRpdGlvbmFsfSBpcyBhIGRv bGxhcgorZXhwYW5zaW9uLCB0aGUgY29uZGl0aW9uIGlzIHNhdGlzZmllZCBpZiB0aGUgcmVz dWx0IGlzIGEKK25vbi1AY29kZXtuaWx9IHZhbHVlLiAgSWYgQHZhcntjb25kaXRpb25hbH0g aXMgYSBAc2FtcHtAeworQHZhcntzdWJjb21tYW5kfSBAfX0sIHRoZSBjb25kaXRpb24gaXMg c2F0aXNmaWVkIGlmIHRoZQorQHZhcntzdWJjb21tYW5kfSdzIGV4aXQgc3RhdHVzIGlzIDAu CisKIEB0YWJsZSBAY29kZQogCi1AaXRlbSBpZiBAeyBAdmFye2NvbmRpdGlvbmFsfSBAfSBA eyBAdmFye3RydWUtY29tbWFuZHN9IEB9Ci1AaXRlbXggaWYgQHsgQHZhcntjb25kaXRpb25h bH0gQH0gQHsgQHZhcnt0cnVlLWNvbW1hbmRzfSBAfSBAeyBAdmFye2ZhbHNlLWNvbW1hbmRz fSBAfQotRXZhbHVhdGUgQHZhcnt0cnVlLWNvbW1hbmRzfSBpZiBAdmFye2NvbmRpdGlvbmFs fSByZXR1cm5zIHN1Y2Nlc3MKLShpLmUuQDogaXRzIGV4aXQgY29kZSBpcyB6ZXJvKTsgb3Ro ZXJ3aXNlLCBldmFsdWF0ZQotQHZhcntmYWxzZS1jb21tYW5kc30uCi0KLUBpdGVtIHVubGVz cyBAeyBAdmFye2NvbmRpdGlvbmFsfSBAfSBAeyBAdmFye2ZhbHNlLWNvbW1hbmRzfSBAfQot QGl0ZW14IHVubGVzcyBAeyBAdmFye2NvbmRpdGlvbmFsfSBAfSBAeyBAdmFye2ZhbHNlLWNv bW1hbmRzfSBAfSBAeyBAdmFye3RydWUtY29tbWFuZHN9IEB9Ci1FdmFsdWF0ZSBAdmFye2Zh bHNlLWNvbW1hbmRzfSBpZiBAdmFye2NvbmRpdGlvbmFsfSByZXR1cm5zIGZhaWx1cmUKLShp LmUuQDogaXRzIGV4aXQgY29kZSBpcyBub24temVybyk7IG90aGVyd2lzZSwgZXZhbHVhdGUK LUB2YXJ7dHJ1ZS1jb21tYW5kc30uCi0KLUBpdGVtIHdoaWxlIEB7IEB2YXJ7Y29uZGl0aW9u YWx9IEB9IEB7IEB2YXJ7Y29tbWFuZHN9IEB9Ci1SZXBlYXRlZGx5IGV2YWx1YXRlIEB2YXJ7 Y29tbWFuZHN9IHNvIGxvbmcgYXMgQHZhcntjb25kaXRpb25hbH0KLXJldHVybnMgc3VjY2Vz cy4KLQotQGl0ZW0gdW50aWwgQHsgQHZhcntjb25kaXRpb25hbH0gQH0gQHsgQHZhcntjb21t YW5kc30gQH0KLVJlcGVhdGVkbHkgZXZhbHVhdGUgQHZhcntjb21tYW5kc30gc28gbG9uZyBh cyBAdmFye2NvbmRpdGlvbmFsfQotcmV0dXJucyBmYWlsdXJlLgorQGl0ZW0gaWYgQHZhcntj b25kaXRpb25hbH0gQHsgQHZhcnt0cnVlLWNvbW1hbmRzfSBAfQorQGl0ZW14IGlmIEB2YXJ7 Y29uZGl0aW9uYWx9IEB7IEB2YXJ7dHJ1ZS1jb21tYW5kc30gQH0gQHsgQHZhcntmYWxzZS1j b21tYW5kc30gQH0KK0V2YWx1YXRlIEB2YXJ7dHJ1ZS1jb21tYW5kc30gaWYgQHZhcntjb25k aXRpb25hbH0gaXMgc2F0aXNmaWVkOworb3RoZXJ3aXNlLCBldmFsdWF0ZSBAdmFye2ZhbHNl LWNvbW1hbmRzfS4KKworQGl0ZW0gdW5sZXNzIEB2YXJ7Y29uZGl0aW9uYWx9IEB7IEB2YXJ7 ZmFsc2UtY29tbWFuZHN9IEB9CitAaXRlbXggdW5sZXNzIEB2YXJ7Y29uZGl0aW9uYWx9IEB7 IEB2YXJ7ZmFsc2UtY29tbWFuZHN9IEB9IEB7IEB2YXJ7dHJ1ZS1jb21tYW5kc30gQH0KK0V2 YWx1YXRlIEB2YXJ7ZmFsc2UtY29tbWFuZHN9IGlmIEB2YXJ7Y29uZGl0aW9uYWx9IGlzIG5v dCBzYXRpc2ZpZWQ7CitvdGhlcndpc2UsIGV2YWx1YXRlIEB2YXJ7dHJ1ZS1jb21tYW5kc30u CisKK0BpdGVtIHdoaWxlIEB2YXJ7Y29uZGl0aW9uYWx9IEB7IEB2YXJ7Y29tbWFuZHN9IEB9 CitSZXBlYXRlZGx5IGV2YWx1YXRlIEB2YXJ7Y29tbWFuZHN9IHNvIGxvbmcgYXMgQHZhcntj b25kaXRpb25hbH0gaXMKK3NhdGlzZmllZC4KKworQGl0ZW0gdW50aWwgQHZhcntjb25kaXRp b25hbH0gQHsgQHZhcntjb21tYW5kc30gQH0KK1JlcGVhdGVkbHkgZXZhbHVhdGUgQHZhcntj b21tYW5kc30gdW50aWwgQHZhcntjb25kaXRpb25hbH0gaXMKK3NhdGlzZmllZC4KIAogQGl0 ZW0gZm9yIEB2YXJ7dmFyfSBpbiBAdmFye2xpc3R9QGRvdHN7fSBAeyBAdmFye2NvbW1hbmRz fSBAfQogSXRlcmF0ZSBvdmVyIGVhY2ggZWxlbWVudCBvZiBvZiBAdmFye2xpc3R9LCBzdG9y aW5nIHRoZSBlbGVtZW50IGluCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtY21kLmVs IGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAppbmRleCA5NjI3MmNhMWEzLi40NTRhOTBlOTFk IDEwMDY0NAotLS0gYS9saXNwL2VzaGVsbC9lc2gtY21kLmVsCisrKyBiL2xpc3AvZXNoZWxs L2VzaC1jbWQuZWwKQEAgLTU0OSwxMCArNTQ5LDExIEBAIGVzaGVsbC1zdHJ1Y3R1cmUtYmFz aWMtY29tbWFuZAogVGhlIGZpcnN0IG9mIE5BTUVTIHNob3VsZCBiZSB0aGUgcG9zaXRpdmUg Zm9ybSwgYW5kIHRoZSBzZWNvbmQgdGhlCiBuZWdhdGl2ZS4gIEl0J3Mgbm90IGxpa2VseSB0 aGF0IHVzZXJzIHNob3VsZCBldmVyIG5lZWQgdG8gY2FsbCB0aGlzCiBmdW5jdGlvbi4iCi0g IDs7IElmIHRoZSB0ZXN0IGZvcm0gYmVnaW5zIHdpdGggYGVzaGVsbC1jb252ZXJ0JywgaXQg bWVhbnMKLSAgOzsgc29tZXRoaW5nIGRhdGEtd2lzZSB3aWxsIGJlIHJldHVybmVkLCBhbmQg d2Ugc2hvdWxkIGxldAotICA7OyB0aGF0IGRldGVybWluZSB0aGUgdHJ1dGggb2YgdGhlIHN0 YXRlbWVudC4KLSAgKHVubGVzcyAoZXEgKGNhciB0ZXN0KSAnZXNoZWxsLWNvbnZlcnQpCisg IDs7IElmIHRoZSB0ZXN0IGZvcm0gYmVnaW5zIHdpdGggYGVzaGVsbC1jb252ZXJ0JyBvcgor ICA7OyBgZXNoZWxsLWVzY2FwZS1hcmcnLCBpdCBtZWFucyBzb21ldGhpbmcgZGF0YS13aXNl IHdpbGwgYmUKKyAgOzsgcmV0dXJuZWQsIGFuZCB3ZSBzaG91bGQgbGV0IHRoYXQgZGV0ZXJt aW5lIHRoZSB0cnV0aCBvZiB0aGUKKyAgOzsgc3RhdGVtZW50LgorICAodW5sZXNzIChtZW1x IChjYXIgdGVzdCkgJyhlc2hlbGwtY29udmVydCBlc2hlbGwtZXNjYXBlLWFyZykpCiAgICAg KHNldHEgdGVzdAogCSAgYChwcm9nbiAsdGVzdAogICAgICAgICAgICAgICAgICAgKGVzaGVs bC1leGl0LXN1Y2Nlc3MtcCkpKSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNo LWNtZC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAppbmRl eCAxZDVjZDI5ZDdjLi5iMzExNTlhMWE4IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZXNoZWxs L2VzaC1jbWQtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtY21kLXRlc3Rz LmVsCkBAIC0xMzIsNiArMTMyLDE1IEBAIGVzaC1jbWQtdGVzdC9mb3ItbmFtZS1zaGFkb3ct bG9vcAogCiAoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3doaWxlLWxvb3AgKCkKICAgIlRl c3QgaW52b2NhdGlvbiBvZiBhIHdoaWxlIGxvb3AuIgorICAod2l0aC10ZW1wLWVzaGVsbAor ICAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlICcoMCAxIDIpKSkKKyAgICAgKGVzaGVsbC1j b21tYW5kLXJlc3VsdC1wCisgICAgICAoY29uY2F0ICJ3aGlsZSAkZXNoZWxsLXRlc3QtdmFs dWUgIgorICAgICAgICAgICAgICAieyBzZXRxIGVzaGVsbC10ZXN0LXZhbHVlIChjZHIgZXNo ZWxsLXRlc3QtdmFsdWUpIH0iKQorICAgICAgIigxIDIpXG4oMilcbiIpKSkpCisKKyhlcnQt ZGVmdGVzdCBlc2gtY21kLXRlc3Qvd2hpbGUtbG9vcC1leHQtY21kICgpCisgICJUZXN0IGlu dm9jYXRpb24gb2YgYSB3aGlsZSBsb29wIHVzaW5nIGFuIGV4dGVybmFsIGNvbW1hbmQuIgog ICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiWyIpKQogICAod2l0aC10ZW1wLWVz aGVsbAogICAgKGxldCAoKGVzaGVsbC10ZXN0LXZhbHVlIDApKQpAQCAtMTQyLDYgKzE1MSwx NSBAQCBlc2gtY21kLXRlc3Qvd2hpbGUtbG9vcAogCiAoZXJ0LWRlZnRlc3QgZXNoLWNtZC10 ZXN0L3VudGlsLWxvb3AgKCkKICAgIlRlc3QgaW52b2NhdGlvbiBvZiBhbiB1bnRpbCBsb29w LiIKKyAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSBu aWwpKQorICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAKKyAgICAgIChjb25jYXQgInVu dGlsICRlc2hlbGwtdGVzdC12YWx1ZSAiCisgICAgICAgICAgICAgICJ7IHNldHEgZXNoZWxs LXRlc3QtdmFsdWUgdCB9IikKKyAgICAgICJ0XG4iKSkpKQorCisoZXJ0LWRlZnRlc3QgZXNo LWNtZC10ZXN0L3VudGlsLWxvb3AtZXh0LWNtZCAoKQorICAiVGVzdCBpbnZvY2F0aW9uIG9m IGFuIHVudGlsIGxvb3AgdXNpbmcgYW4gZXh0ZXJuYWwgY29tbWFuZC4iCiAgIChza2lwLXVu bGVzcyAoZXhlY3V0YWJsZS1maW5kICJbIikpCiAgICh3aXRoLXRlbXAtZXNoZWxsCiAgICAo bGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgMCkpCkBAIC0xNTIsMTUgKzE3MCwyNiBAQCBlc2gt Y21kLXRlc3QvdW50aWwtbG9vcAogCiAoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L2lmLXN0 YXRlbWVudCAoKQogICAiVGVzdCBpbnZvY2F0aW9uIG9mIGFuIGlmIHN0YXRlbWVudC4iCi0g IChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJbIikpCiAgICh3aXRoLXRlbXAtZXNo ZWxsCi0gICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImlmIHtbIGZvbyA9IGZvbyBdfSB7 ZWNobyB5ZXN9IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5ZXNcbiIpCi0gICAo ZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImlmIHtbIGZvbyA9IGJhciBdfSB7ZWNobyB5ZXN9 IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXCciKSkpCisgICAobGV0ICgo ZXNoZWxsLXRlc3QtdmFsdWUgdCkpCisgICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAi aWYgJGVzaGVsbC10ZXN0LXZhbHVlIHtlY2hvIHllc30iCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAieWVzXG4iKSkKKyAgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSBuaWwp KQorICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImlmICRlc2hlbGwtdGVzdC12YWx1 ZSB7ZWNobyB5ZXN9IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcYFxcJyIp KSkpCiAKIChlcnQtZGVmdGVzdCBlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1lbnQgKCkK ICAgIlRlc3QgaW52b2NhdGlvbiBvZiBhbiBpZi9lbHNlIHN0YXRlbWVudC4iCisgICh3aXRo LXRlbXAtZXNoZWxsCisgICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgdCkpCisgICAgIChl c2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiaWYgJGVzaGVsbC10ZXN0LXZhbHVlIHtlY2hvIHll c30ge2VjaG8gbm99IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInllc1xuIikp CisgICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgbmlsKSkKKyAgICAgKGVzaGVsbC1jb21t YW5kLXJlc3VsdC1wICJpZiAkZXNoZWxsLXRlc3QtdmFsdWUge2VjaG8geWVzfSB7ZWNobyBu b30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9cbiIpKSkpCisKKyhlcnQt ZGVmdGVzdCBlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1lbnQtZXh0LWNtZCAoKQorICAi VGVzdCBpbnZvY2F0aW9uIG9mIGFuIGlmL2Vsc2Ugc3RhdGVtZW50IHVzaW5nIGFuIGV4dGVy bmFsIGNvbW1hbmQuIgogICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiWyIpKQog ICAod2l0aC10ZW1wLWVzaGVsbAogICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJpZiB7 WyBmb28gPSBmb28gXX0ge2VjaG8geWVzfSB7ZWNobyBub30iCkBAIC0xNzAsMTUgKzE5OSwy NiBAQCBlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1lbnQKIAogKGVydC1kZWZ0ZXN0IGVz aC1jbWQtdGVzdC91bmxlc3Mtc3RhdGVtZW50ICgpCiAgICJUZXN0IGludm9jYXRpb24gb2Yg YW4gdW5sZXNzIHN0YXRlbWVudC4iCi0gIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5k ICJbIikpCiAgICh3aXRoLXRlbXAtZXNoZWxsCi0gICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0 LXAgInVubGVzcyB7WyBmb28gPSBmb28gXX0ge2VjaG8gbm99IgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJcXGBcXCciKQotICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1 bmxlc3Mge1sgZm9vID0gYmFyIF19IHtlY2hvIG5vfSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAibm9cbiIpKSkKKyAgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSB0KSkKKyAg ICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1bmxlc3MgJGVzaGVsbC10ZXN0LXZhbHVl IHtlY2hvIG5vfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXGBcXCciKSkK KyAgIChsZXQgKChlc2hlbGwtdGVzdC12YWx1ZSBuaWwpKQorICAgICAoZXNoZWxsLWNvbW1h bmQtcmVzdWx0LXAgInVubGVzcyAkZXNoZWxsLXRlc3QtdmFsdWUge2VjaG8gbm99IgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vXG4iKSkpKQogCiAoZXJ0LWRlZnRlc3Qg ZXNoLWNtZC10ZXN0L3VubGVzcy1lbHNlLXN0YXRlbWVudCAoKQogICAiVGVzdCBpbnZvY2F0 aW9uIG9mIGFuIHVubGVzcy9lbHNlIHN0YXRlbWVudC4iCisgICh3aXRoLXRlbXAtZXNoZWxs CisgICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgdCkpCisgICAgIChlc2hlbGwtY29tbWFu ZC1yZXN1bHQtcCAidW5sZXNzICRlc2hlbGwtdGVzdC12YWx1ZSB7ZWNobyBub30ge2VjaG8g eWVzfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5ZXNcbiIpKQorICAgKGxl dCAoKGVzaGVsbC10ZXN0LXZhbHVlIG5pbCkpCisgICAgIChlc2hlbGwtY29tbWFuZC1yZXN1 bHQtcCAidW5sZXNzICRlc2hlbGwtdGVzdC12YWx1ZSB7ZWNobyBub30ge2VjaG8geWVzfSIK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub1xuIikpKSkKKworKGVydC1kZWZ0 ZXN0IGVzaC1jbWQtdGVzdC91bmxlc3MtZWxzZS1zdGF0ZW1lbnQtZXh0LWNtZCAoKQorICAi VGVzdCBpbnZvY2F0aW9uIG9mIGFuIHVubGVzcy9lbHNlIHN0YXRlbWVudCB1c2luZyBhbiBl eHRlcm5hbCBjb21tYW5kLiIKICAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxlLWZpbmQgIlsi KSkKICAgKHdpdGgtdGVtcC1lc2hlbGwKICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAi dW5sZXNzIHtbIGZvbyA9IGZvbyBdfSB7ZWNobyBub30ge2VjaG8geWVzfSIKLS0gCjIuMjUu MQoK --------------FB610A9ACD38E16937EFA651 Content-Type: text/plain; charset=UTF-8; name="0003-Make-and-variables-more-consistent-in-Eshell.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Make-and-variables-more-consistent-in-Eshell.patch" RnJvbSA4MjMzYzZmNDE0MTVlN2I0Mzc5YzY1MmJkNmI2YmEyNmM1MTRkZDYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFR1ZSwgOSBBdWcgMjAyMiAyMDowOTo1NyAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBNYWtlICckPycgYW5kICckJCcgdmFyaWFibGVzIG1vcmUgY29uc2lzdGVudCBp biBFc2hlbGwKClByZXZpb3VzbHksICckPycgKGxhc3QgZXhpdCBjb2RlKSB3YXMgb25seSB1 c2VmdWwgZm9yIGV4dGVybmFsCmNvbW1hbmRzLCBhbmQgJyQkJyAobGFzdCByZXN1bHQpIHdh cyBvbmx5IHVzZWZ1bCBmb3IgTGlzcCBjb21tYW5kcy4KCiogbGlzcC9lc2hlbGwvZXNoLWNt ZC5lbCAoZXNoZWxsLWxpc3AtZm9ybS1uaWwtaXMtZmFpbHVyZSk6IE5ldwpvcHRpb24uCihl c2hlbGwtbGlzcC1jb21tYW5kKTogU2V0IGxhc3QgZXhpdCBjb2RlIHRvIDEgd2hlbiB0aGUg Y29tbWFuZApzaWduYWxzIGFuIGVycm9yLCBhbmQgMiBpZiBpdCByZXR1cm5zIG5pbCAoZm9y IExpc3AgZm9ybXMgb25seSkuCgoqIGxpc3AvZXNoZWxsL2VzaC1wcm9jLmVsIChlc2hlbGwt c2VudGluZWwpOiBTZXQgbGFzdCByZXN1bHQgdG8gdCBpZgp0aGUgY29tbWFuZCBzdWNjZWVk ZWQuCgoqIHRlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAooZXNoLWNtZC10ZXN0 L3doaWxlLWxvb3AtbGlzcC1mb3JtLCBlc2gtY21kLXRlc3QvdW50aWwtbG9vcC1saXNwLWZv cm0pCihlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1lbnQtbGlzcC1mb3JtKQooZXNoLWNt ZC10ZXN0L2lmLWVsc2Utc3RhdGVtZW50LWxpc3AtZm9ybS0yKQooZXNoLWNtZC10ZXN0L3Vu bGVzcy1lbHNlLXN0YXRlbWVudC1saXNwLWZvcm0pOiBOZXcgdGVzdHMuCgoqIHRlc3QvbGlz cC9lc2hlbGwvZXNoLXZhci10ZXN0cy5lbAooZXNoLXZhci10ZXN0L2xhc3Qtc3RhdHVzLXZh ci1saXNwLWNvbW1hbmQpCihlc2gtdmFyLXRlc3QvbGFzdC1zdGF0dXMtdmFyLWxpc3AtZm9y bSkKKGVzaC12YXItdGVzdC9sYXN0LXN0YXR1cy12YXItbGlzcC1mb3JtLTIpCihlc2gtdmFy LXRlc3QvbGFzdC1zdGF0dXMtdmFyLWV4dC1jbWQpCihlc2gtdmFyLXRlc3QvbGFzdC1zdGF0 dXMtdmFyLWV4dC1jbWQpOiBOZXcgdGVzdHMuCihlc2gtdmFyLXRlc3QvbGFzdC1yZXN1bHQt dmFyMik6IFJlbmFtZSBmcm9tIHRoaXMuLi4KKCBlc2gtdmFyLXRlc3QvbGFzdC1yZXN1bHQt dmFyLXR3aWNlKTogLi4uIHRvIHRoaXMuCgoqIGRvYy9taXNjL2VzaGVsbC50ZXhpIChWYXJp YWJsZXMpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbiBhYm91dCAnJD8nCmFuZCAnJCQnLgooQ29u dHJvbCBGbG93KTogTWVudGlvbiB0aGF0ICcobGlzcCBmb3JtcyknIGNhbiBiZSB1c2VkIGFz CmNvbmRpdGlvbmFscy4KCiogZXRjL05FV1M6IEFubm91bmNlIHRoaXMgY2hhbmdlIChidWcj NTcxMjkpLgotLS0KIGRvYy9taXNjL2VzaGVsbC50ZXhpICAgICAgICAgICAgICB8IDE0ICsr KystLS0KIGV0Yy9ORVdTICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKysKIGxp c3AvZXNoZWxsL2VzaC1jbWQuZWwgICAgICAgICAgICB8IDY4ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIGxpc3AvZXNoZWxsL2VzaC1wcm9jLmVsICAgICAgICAgICB8IDY4 ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC9lc2hlbGwvZXNo LWNtZC10ZXN0cy5lbCB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdC9saXNw L2VzaGVsbC9lc2gtdmFyLXRlc3RzLmVsIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysr LQogNiBmaWxlcyBjaGFuZ2VkLCAxOTkgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvZXNoZWxsLnRleGkgYi9kb2MvbWlzYy9lc2hlbGwu dGV4aQppbmRleCAxNDFjMzBhZTliLi5hYWU3Nzk1NzVkIDEwMDY0NAotLS0gYS9kb2MvbWlz Yy9lc2hlbGwudGV4aQorKysgYi9kb2MvbWlzYy9lc2hlbGwudGV4aQpAQCAtODkwLDE0ICs4 OTAsMTggQEAgVmFyaWFibGVzCiAKIEB2aW5kZXggJCQKIEBpdGVtICQkCi1UaGlzIGlzIHRo ZSByZXN1bHQgb2YgdGhlIGxhc3QgY29tbWFuZC4gIEluIGNhc2Ugb2YgYW4gZXh0ZXJuYWwK LWNvbW1hbmQsIGl0IGlzIEBjb2Rle3R9IG9yIEBjb2Rle25pbH0uCitUaGlzIGlzIHRoZSBy ZXN1bHQgb2YgdGhlIGxhc3QgY29tbWFuZC4gIEZvciBleHRlcm5hbCBjb21tYW5kcywgaXQg aXMKK0Bjb2Rle3R9IGlmIHRoZSBleGl0IGNvZGUgd2FzIDAgb3IgQGNvZGV7bmlsfSBvdGhl cndpc2UuCiAKK0B2aW5kZXggZXNoZWxsLWxpc3AtZm9ybS1uaWwtaXMtZmFpbHVyZQogQHZp bmRleCAkPwogQGl0ZW0gJD8KIFRoaXMgdmFyaWFibGUgY29udGFpbnMgdGhlIGV4aXQgY29k ZSBvZiB0aGUgbGFzdCBjb21tYW5kLiAgSWYgdGhlIGxhc3QKIGNvbW1hbmQgd2FzIGEgTGlz cCBmdW5jdGlvbiwgaXQgaXMgMCBmb3Igc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIG9yIDEKLW90 aGVyd2lzZS4KK290aGVyd2lzZS4gIElmIEBjb2Rle2VzaGVsbC1saXNwLWZvcm0tbmlsLWlz LWZhaWx1cmV9IGlzCitub24tQGNvZGV7bmlsfSwgdGhlbiBhIGNvbW1hbmQgd2l0aCBhIExp c3AgZm9ybSwgbGlrZQorQHNhbXB7KEB2YXJ7Y29tbWFuZH0gQHZhcnthcmdzfUBkb3Rze30p fSwgdGhhdCByZXR1cm5zIEBjb2Rle25pbH0gd2lsbAorc2V0IHRoaXMgdmFyaWFibGUgdG8g Mi4KIAogQHZpbmRleCAkQ09MVU1OUwogQHZpbmRleCAkTElORVMKQEAgLTEwMjQsOCArMTAy OCw4IEBAIENvbnRyb2wgRmxvdwogVGhpcyBjYW4gdGFrZSBhIGZldyBkaWZmZXJlbnQgZm9y bXMuICBJZiBAdmFye2NvbmRpdGlvbmFsfSBpcyBhIGRvbGxhcgogZXhwYW5zaW9uLCB0aGUg Y29uZGl0aW9uIGlzIHNhdGlzZmllZCBpZiB0aGUgcmVzdWx0IGlzIGEKIG5vbi1AY29kZXtu aWx9IHZhbHVlLiAgSWYgQHZhcntjb25kaXRpb25hbH0gaXMgYSBAc2FtcHtAewotQHZhcntz dWJjb21tYW5kfSBAfX0sIHRoZSBjb25kaXRpb24gaXMgc2F0aXNmaWVkIGlmIHRoZQotQHZh cntzdWJjb21tYW5kfSdzIGV4aXQgc3RhdHVzIGlzIDAuCitAdmFye3N1YmNvbW1hbmR9IEB9 fSBvciBAc2FtcHsoQHZhcntsaXNwIGZvcm19KX0sIHRoZSBjb25kaXRpb24gaXMKK3NhdGlz ZmllZCBpZiB0aGUgY29tbWFuZCdzIGV4aXQgc3RhdHVzIGlzIDAuCiAKIEB0YWJsZSBAY29k ZQogCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IDhkNTRjY2MwZGMu LjIxYmYxY2MwNTAgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC0y MTQ5LDYgKzIxNDksMTMgQEAgQWRkaXRpb25hbGx5LCBnbG9icyBlbmRpbmcgd2l0aCAnKiov JyBvciAnKioqLycgbm8gbG9uZ2VyIHJhaXNlIGFuCiBlcnJvciwgYW5kIG5vdyBleHBhbmQg dG8gYWxsIGRpcmVjdG9yaWVzIHJlY3Vyc2l2ZWx5IChmb2xsb3dpbmcKIHN5bWxpbmtzIGlu IHRoZSBsYXR0ZXIgY2FzZSkuCiAKKysrKworKioqIExpc3AgZm9ybXMgaW4gRXNoZWxsIG5v dyB0cmVhdCBhICduaWwnIHJlc3VsdCBhcyBhIGZhaWxlZCBleGl0IHN0YXR1cy4KK1doZW4g ZXhlY3V0aW5nIGEgY29tbWFuZCB0aGF0IGxvb2tzIGxpa2UgJyhsaXNwIGZvcm0pJywgRXNo ZWxsIHdpbGwKK3NldCB0aGUgZXhpdCBzdGF0dXMgKGF2YWlsYWJsZSBpbiB0aGUgJyQ/JyB2 YXJpYWJsZSkgdG8gMi4gIFRoaXMKK2FsbG93cyBjb21tYW5kcyBsaWtlIHRoYXQgdG8gYmUg dXNlZCBhcyBjb25kaXRpb25hbHMuICBUbyBjaGFuZ2UgdGhpcworYmVoYXZpb3IsIGN1c3Rv bWl6ZSB0aGUgbmV3ICdlc2hlbGwtbGlzcC1mb3JtLW5pbC1pcy1mYWlsdXJlJyBvcHRpb24u CisKICoqIFNoZWxsCiAKIC0tLQpkaWZmIC0tZ2l0IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5l bCBiL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKaW5kZXggNDU0YTkwZTkxZC4uNjJjOTUwNTZm ZCAxMDA2NDQKLS0tIGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAorKysgYi9saXNwL2VzaGVs bC9lc2gtY21kLmVsCkBAIC0xMzMsNiArMTMzLDEwIEBAIGVzaGVsbC1saXNwLXJlZ2V4cAog U3VjaCBhcmd1bWVudHMgd2lsbCBiZSBwYXNzZWQgdG8gYHJlYWQnLCBhbmQgdGhlbiBldmFs dWF0ZWQuIgogICA6dHlwZSAncmVnZXhwKQogCisoZGVmY3VzdG9tIGVzaGVsbC1saXNwLWZv cm0tbmlsLWlzLWZhaWx1cmUgdAorICAiSWYgbm9uLW5pbCwgTGlzcCBmb3JtcyBsaWtlIChD T01NQU5EIEFSR1MpIHRyZWF0IGEgbmlsIHJlc3VsdCBhcyBmYWlsdXJlLiIKKyAgOnR5cGUg J2Jvb2xlYW4pCisKIChkZWZjdXN0b20gZXNoZWxsLXByZS1jb21tYW5kLWhvb2sgbmlsCiAg ICJBIGhvb2sgcnVuIGJlZm9yZSBlYWNoIGludGVyYWN0aXZlIGNvbW1hbmQgaXMgaW52b2tl ZC4iCiAgIDp0eXBlICdob29rKQpAQCAtMTQxMiw0MyArMTQxNiw1MyBAQCBlc2hlbGwtbGFz dC1vdXRwdXQtZW5kCiAoZGVmdW4gZXNoZWxsLWxpc3AtY29tbWFuZCAob2JqZWN0ICZvcHRp b25hbCBhcmdzKQogICAiSW5zZXJ0IExpc3AgT0JKRUNULCB1c2luZyBBUkdTIGlmIGEgZnVu Y3Rpb24uIgogICAoY2F0Y2ggJ2VzaGVsbC1leHRlcm5hbCAgICAgICAgICAgICAgIDsgZGVm ZXJyZWQgdG8gYW4gZXh0ZXJuYWwgY29tbWFuZAorICAgIChzZXRxIGVzaGVsbC1sYXN0LWNv bW1hbmQtc3RhdHVzIDAKKyAgICAgICAgICBlc2hlbGwtbGFzdC1hcmd1bWVudHMgYXJncykK ICAgICAobGV0KiAoKGVzaGVsbC1lbnN1cmUtbmV3bGluZS1wIChlc2hlbGwtaW50ZXJhY3Rp dmUtb3V0cHV0LXApKQorICAgICAgICAgICAoY29tbWFuZC1mb3JtLXAgKGZ1bmN0aW9ucCBv YmplY3QpKQogICAgICAgICAgICAocmVzdWx0Ci0gICAgICAgICAgICAoaWYgKGZ1bmN0aW9u cCBvYmplY3QpCi0gICAgICAgICAgICAgICAgKHByb2duCi0gICAgICAgICAgICAgICAgICAo c2V0cSBlc2hlbGwtbGFzdC1hcmd1bWVudHMgYXJncwotICAgICAgICAgICAgICAgICAgICAg ICAgZXNoZWxsLWxhc3QtY29tbWFuZC1uYW1lCisgICAgICAgICAgICAoaWYgY29tbWFuZC1m b3JtLXAKKyAgICAgICAgICAgICAgICAobGV0ICgobnVtZXJpYyAobm90IChnZXQgb2JqZWN0 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2hlbGwtbm8t bnVtZXJpYy1jb252ZXJzaW9ucykpKQorICAgICAgICAgICAgICAgICAgICAgIChmbmFtZS1h cmdzIChnZXQgb2JqZWN0ICdlc2hlbGwtZmlsZW5hbWUtYXJndW1lbnRzKSkpCisgICAgICAg ICAgICAgICAgICAod2hlbiAob3IgbnVtZXJpYyBmbmFtZS1hcmdzKQorICAgICAgICAgICAg ICAgICAgICAod2hpbGUgYXJncworICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChhcmcg KGNhciBhcmdzKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAoY29uZAorICAgICAgICAg ICAgICAgICAgICAgICAgICgoYW5kIG51bWVyaWMgKHN0cmluZ3AgYXJnKSAoPiAobGVuZ3Ro IGFyZykgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGV4dC1wcm9wZXJ0 eS1hbnkgMCAobGVuZ3RoIGFyZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ251bWJlciB0IGFyZykpCisgICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IElmIGFueSBvZiB0aGUgYXJndW1lbnRzIGFyZSBmbGFnZ2VkIGFzCisgICAg ICAgICAgICAgICAgICAgICAgICAgIDs7IG51bWJlcnMgd2FpdGluZyBmb3IgY29udmVyc2lv biwgY29udmVydAorICAgICAgICAgICAgICAgICAgICAgICAgICA7OyB0aGVtIG5vdy4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKHNldGNhciBhcmdzIChzdHJpbmctdG8tbnVtYmVy IGFyZykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICgoYW5kIGZuYW1lLWFyZ3MgKHN0 cmluZ3AgYXJnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctZXF1 YWwgYXJnICJ+IikpCisgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IElmIGFueSBvZiB0 aGUgYXJndW1lbnRzIG1hdGNoICJ+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg cHJlcGVuZCAiLi8iIHRvIHRyZWF0IGl0IGFzIGEgcmVndWxhcgorICAgICAgICAgICAgICAg ICAgICAgICAgICA7OyBmaWxlIG5hbWUuCisgICAgICAgICAgICAgICAgICAgICAgICAgIChz ZXRjYXIgYXJncyAoY29uY2F0ICIuLyIgYXJnKSkpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAoc2V0cSBhcmdzIChjZHIgYXJncykpKSkKKyAgICAgICAgICAgICAgICAgIChzZXRxIGVz aGVsbC1sYXN0LWNvbW1hbmQtbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNh dCAiIzxmdW5jdGlvbiAiIChzeW1ib2wtbmFtZSBvYmplY3QpICI+IikpCi0gICAgICAgICAg ICAgICAgICAobGV0ICgobnVtZXJpYyAobm90IChnZXQgb2JqZWN0Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VzaGVsbC1uby1udW1lcmljLWNvbnZl cnNpb25zKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAoZm5hbWUtYXJncyAoZ2V0IG9i amVjdCAnZXNoZWxsLWZpbGVuYW1lLWFyZ3VtZW50cykpKQotICAgICAgICAgICAgICAgICAg ICAod2hlbiAob3IgbnVtZXJpYyBmbmFtZS1hcmdzKQotICAgICAgICAgICAgICAgICAgICAg ICh3aGlsZSBhcmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoYXJnIChjYXIg YXJncykpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uZCAoKGFuZCBudW1lcmlj IChzdHJpbmdwIGFyZykgKD4gKGxlbmd0aCBhcmcpIDApCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICh0ZXh0LXByb3BlcnR5LWFueSAwIChsZW5ndGggYXJnKQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ251bWJlciB0IGFyZykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7 OyBJZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBhcmUKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDs7IGZsYWdnZWQgYXMgbnVtYmVycyB3YWl0aW5nIGZvcgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOzsgY29udmVyc2lvbiwgY29udmVydCB0aGVtIG5v dy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRjYXIgYXJncyAoc3Ry aW5nLXRvLW51bWJlciBhcmcpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KChhbmQgZm5hbWUtYXJncyAoc3RyaW5ncCBhcmcpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdHJpbmctZXF1YWwgYXJnICJ+IikpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA7OyBJZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBtYXRjaCAi fiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBwcmVwZW5kICIuLyIg dG8gdHJlYXQgaXQgYXMgYQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg cmVndWxhciBmaWxlIG5hbWUuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c2V0Y2FyIGFyZ3MgKGNvbmNhdCAiLi8iIGFyZykpKSkpCi0gICAgICAgICAgICAgICAgICAg ICAgICAoc2V0cSBhcmdzIChjZHIgYXJncykpKSkpCiAgICAgICAgICAgICAgICAgICAoZXNo ZWxsLWFwcGx5IG9iamVjdCBlc2hlbGwtbGFzdC1hcmd1bWVudHMpKQotICAgICAgICAgICAg ICAoc2V0cSBlc2hlbGwtbGFzdC1hcmd1bWVudHMgYXJncwotICAgICAgICAgICAgICAgICAg ICBlc2hlbGwtbGFzdC1jb21tYW5kLW5hbWUgIiM8TGlzcCBvYmplY3Q+IikKKyAgICAgICAg ICAgICAgKHNldHEgZXNoZWxsLWxhc3QtY29tbWFuZC1uYW1lICIjPExpc3Agb2JqZWN0PiIp CiAgICAgICAgICAgICAgIChlc2hlbGwtZXZhbCBvYmplY3QpKSkpCiAgICAgICAoaWYgKGFu ZCBlc2hlbGwtZW5zdXJlLW5ld2xpbmUtcAogCSAgICAgICAoc2F2ZS1leGN1cnNpb24KIAkJ IChnb3RvLWNoYXIgZXNoZWxsLWxhc3Qtb3V0cHV0LWVuZCkKIAkJIChub3QgKGJvbHApKSkp CiAJICAoZXNoZWxsLXByaW50ICJcbiIpKQotICAgICAgKGVzaGVsbC1jbG9zZS1oYW5kbGVz IDAgKGxpc3QgJ3F1b3RlIHJlc3VsdCkpKSkpCisgICAgICAoZXNoZWxsLWNsb3NlLWhhbmRs ZXMKKyAgICAgICA7OyBJZiBgZXNoZWxsLWxpc3AtZm9ybS1uaWwtaXMtZmFpbHVyZScgaXMg bm9uLW5pbCwgTGlzcCBmb3JtcworICAgICAgIDs7IHRoYXQgc3VjY2VlZGVkIGJ1dCBoYXZl IGEgbmlsIHJlc3VsdCBzaG91bGQgaGF2ZSBhbiBleGl0CisgICAgICAgOzsgc3RhdHVzIG9m IDIuCisgICAgICAgKHdoZW4gKGFuZCBlc2hlbGwtbGlzcC1mb3JtLW5pbC1pcy1mYWlsdXJl CisgICAgICAgICAgICAgICAgICAobm90IGNvbW1hbmQtZm9ybS1wKQorICAgICAgICAgICAg ICAgICAgKD0gZXNoZWxsLWxhc3QtY29tbWFuZC1zdGF0dXMgMCkKKyAgICAgICAgICAgICAg ICAgIChub3QgcmVzdWx0KSkKKyAgICAgICAgIDIpCisgICAgICAgKGxpc3QgJ3F1b3RlIHJl c3VsdCkpKSkpCiAKIChkZWZhbGlhcyAnZXNoZWxsLWxpc3AtY29tbWFuZCogIydlc2hlbGwt bGlzcC1jb21tYW5kKQogCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtcHJvYy5lbCBi L2xpc3AvZXNoZWxsL2VzaC1wcm9jLmVsCmluZGV4IDk5YjQzNjYxZjIuLmMzNjdiNWNkNjQg MTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1wcm9jLmVsCisrKyBiL2xpc3AvZXNoZWxs L2VzaC1wcm9jLmVsCkBAIC0zNDYsNyArMzQ2LDkgQEAgZXNoZWxsLWdhdGhlci1wcm9jZXNz LW91dHB1dAogICAgICAgICAoZGVmdmFyIGVzaGVsbC1sYXN0LW91dHB1dC1lbmQpICAgICAg ICAgO0RlZmluZWQgaW4gZXNoLW1vZGUuZWwuCiAJKGVzaGVsbC11cGRhdGUtbWFya2VycyBl c2hlbGwtbGFzdC1vdXRwdXQtZW5kKQogCTs7IFNpbXVsYXRlIHRoZSBlZmZlY3Qgb2YgZXNo ZWxsLXNlbnRpbmVsLgotCShlc2hlbGwtY2xvc2UtaGFuZGxlcyAoaWYgKG51bWJlcnAgZXhp dC1zdGF0dXMpIGV4aXQtc3RhdHVzIC0xKSkKKwkoZXNoZWxsLWNsb3NlLWhhbmRsZXMKKyAg ICAgICAgIChpZiAobnVtYmVycCBleGl0LXN0YXR1cykgZXhpdC1zdGF0dXMgLTEpCisgICAg ICAgICAobGlzdCAncXVvdGUgKGFuZCAobnVtYmVycCBleGl0LXN0YXR1cykgKD0gZXhpdC1z dGF0dXMgMCkpKSkKIAkoZXNoZWxsLWtpbGwtcHJvY2Vzcy1mdW5jdGlvbiBjb21tYW5kIGV4 aXQtc3RhdHVzKQogCShvciAoYm91bmQtYW5kLXRydWUtcCBlc2hlbGwtaW4tcGlwZWxpbmUt cCkKIAkgICAgKHNldHEgZXNoZWxsLWxhc3Qtc3luYy1vdXRwdXQtc3RhcnQgbmlsKSkKQEAg LTM5OCw0MCArNDAwLDM2IEBAIGVzaGVsbC1zZW50aW5lbAogICAod2hlbiAoYnVmZmVyLWxp dmUtcCAocHJvY2Vzcy1idWZmZXIgcHJvYykpCiAgICAgKHdpdGgtY3VycmVudC1idWZmZXIg KHByb2Nlc3MtYnVmZmVyIHByb2MpCiAgICAgICAodW53aW5kLXByb3RlY3QKLSAgICAgICAg ICAobGV0ICgoZW50cnkgKGFzc3EgcHJvYyBlc2hlbGwtcHJvY2Vzcy1saXN0KSkpCi07CSAg ICAoaWYgKG5vdCBlbnRyeSkKLTsJCShlcnJvciAiU2VudGluZWwgY2FsbGVkIGZvciB1bm93 bmVkIHByb2Nlc3MgYCVzJyIKLTsJCSAgICAgICAocHJvY2Vzcy1uYW1lIHByb2MpKQotCSAg ICAod2hlbiBlbnRyeQotCSAgICAgICh1bndpbmQtcHJvdGVjdAotCQkgIChwcm9nbgotCQkg ICAgKHVubGVzcyAoc3RyaW5nPSBzdHJpbmcgInJ1biIpCi0gICAgICAgICAgICAgICAgICAg ICAgOzsgV3JpdGUgdGhlIGV4aXQgbWVzc2FnZSBpZiB0aGUgc3RhdHVzIGlzCi0gICAgICAg ICAgICAgICAgICAgICAgOzsgYWJub3JtYWwgYW5kIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkg d3JpdGluZwotICAgICAgICAgICAgICAgICAgICAgIDs7IHRvIHRoZSB0ZXJtaW5hbC4KLSAg ICAgICAgICAgICAgICAgICAgICAod2hlbiAoYW5kIChlcSBwcm9jIChlc2hlbGwtdGFpbC1w cm9jZXNzKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHN0cmlu Zy1tYXRjaCAiXlxcKGZpbmlzaGVkXFx8ZXhpdGVkXFwpIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZykpKQotICAgICAgICAg ICAgICAgICAgICAgICAgKGZ1bmNhbGwgKHByb2Nlc3MtZmlsdGVyIHByb2MpIHByb2Mgc3Ry aW5nKSkKLSAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoaGFuZGxlcyAobnRoIDEgZW50 cnkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIgKHByb2cxIChudGggMyBl bnRyeSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldGYgKG50aCAz IGVudHJ5KSBuaWwpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdHVzIChw cm9jZXNzLWV4aXQtc3RhdHVzIHByb2MpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIDs7 IElmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgaGFuZGxpbmcgb3V0cHV0Ci0gICAgICAgICAg ICAgICAgICAgICAgICA7OyBmcm9tIHRoaXMgcHJvY2VzcyB0aGVuIHNjaGVkdWxlIHRoZSBF T0YgZm9yCi0gICAgICAgICAgICAgICAgICAgICAgICA7OyBsYXRlci4KLSAgICAgICAgICAg ICAgICAgICAgICAgIChsZXRyZWMgKChmaW5pc2gtaW8KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGFtYmRhICgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoaWYgKG50aCA0IGVudHJ5KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChydW4tYXQtdGltZSAwIG5pbCBmaW5pc2gtaW8pCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuIHN0cgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChpZ25vcmUtZXJyb3IgJ2VzaGVsbC1waXBlLWJy b2tlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVzaGVs bC1vdXRwdXQtb2JqZWN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyIG5pbCBoYW5kbGVzKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChlc2hlbGwtY2xvc2UtaGFuZGxlcwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzICduaWwgaGFuZGxlcykpKSkpCi0gICAgICAgICAg ICAgICAgICAgICAgICAgIChmdW5jYWxsIGZpbmlzaC1pbykpKSkpCi0JCShlc2hlbGwtcmVt b3ZlLXByb2Nlc3MtZW50cnkgZW50cnkpKSkpCisgICAgICAgICAgKHdoZW4tbGV0ICgoZW50 cnkgKGFzc3EgcHJvYyBlc2hlbGwtcHJvY2Vzcy1saXN0KSkpCisJICAgICh1bndpbmQtcHJv dGVjdAorCQkodW5sZXNzIChzdHJpbmc9IHN0cmluZyAicnVuIikKKyAgICAgICAgICAgICAg ICAgIDs7IFdyaXRlIHRoZSBleGl0IG1lc3NhZ2UgaWYgdGhlIHN0YXR1cyBpcworICAgICAg ICAgICAgICAgICAgOzsgYWJub3JtYWwgYW5kIHRoZSBwcm9jZXNzIGlzIGFscmVhZHkgd3Jp dGluZworICAgICAgICAgICAgICAgICAgOzsgdG8gdGhlIHRlcm1pbmFsLgorICAgICAgICAg ICAgICAgICAgKHdoZW4gKGFuZCAoZXEgcHJvYyAoZXNoZWxsLXRhaWwtcHJvY2VzcykpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHN0cmluZy1tYXRjaCAiXlxcKGZp bmlzaGVkXFx8ZXhpdGVkXFwpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyaW5nKSkpCisgICAgICAgICAgICAgICAgICAgIChmdW5jYWxs IChwcm9jZXNzLWZpbHRlciBwcm9jKSBwcm9jIHN0cmluZykpCisgICAgICAgICAgICAgICAg ICAobGV0ICgoaGFuZGxlcyAobnRoIDEgZW50cnkpKQorICAgICAgICAgICAgICAgICAgICAg ICAgKHN0ciAocHJvZzEgKG50aCAzIGVudHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzZXRmIChudGggMyBlbnRyeSkgbmlsKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAoc3RhdHVzIChwcm9jZXNzLWV4aXQtc3RhdHVzIHByb2MpKSkKKyAgICAgICAgICAg ICAgICAgICAgOzsgSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBoYW5kbGluZyBvdXRwdXQK KyAgICAgICAgICAgICAgICAgICAgOzsgZnJvbSB0aGlzIHByb2Nlc3MgdGhlbiBzY2hlZHVs ZSB0aGUgRU9GIGZvcgorICAgICAgICAgICAgICAgICAgICA7OyBsYXRlci4KKyAgICAgICAg ICAgICAgICAgICAgKGxldHJlYyAoKGZpbmlzaC1pbworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxhbWJkYSAoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo aWYgKG50aCA0IGVudHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHJ1bi1hdC10aW1lIDAgbmlsIGZpbmlzaC1pbykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAod2hlbiBzdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChpZ25vcmUtZXJyb3IgJ2VzaGVsbC1waXBlLWJyb2tlbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZXNoZWxsLW91dHB1dC1vYmplY3QKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciBuaWwgaGFuZGxlcykpKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlc2hlbGwtY2xvc2UtaGFuZGxlcwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgKGxpc3QgJ3F1b3Rl ICg9IHN0YXR1cyAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu ZGxlcykpKSkpCisgICAgICAgICAgICAgICAgICAgICAgKGZ1bmNhbGwgZmluaXNoLWlvKSkp KQorCSAgICAgIChlc2hlbGwtcmVtb3ZlLXByb2Nlc3MtZW50cnkgZW50cnkpKSkKIAkoZXNo ZWxsLWtpbGwtcHJvY2Vzcy1mdW5jdGlvbiBwcm9jIHN0cmluZykpKSkpCiAKIChkZWZ1biBl c2hlbGwtcHJvY2Vzcy1pbnRlcmFjdCAoZnVuYyAmb3B0aW9uYWwgYWxsIHF1ZXJ5KQpkaWZm IC0tZ2l0IGEvdGVzdC9saXNwL2VzaGVsbC9lc2gtY21kLXRlc3RzLmVsIGIvdGVzdC9saXNw L2VzaGVsbC9lc2gtY21kLXRlc3RzLmVsCmluZGV4IGIzMTE1OWExYTguLmU4Njk4NWVjNzEg MTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLWNtZC10ZXN0cy5lbAorKysgYi90 ZXN0L2xpc3AvZXNoZWxsL2VzaC1jbWQtdGVzdHMuZWwKQEAgLTEzOSw2ICsxMzksMTUgQEAg ZXNoLWNtZC10ZXN0L3doaWxlLWxvb3AKICAgICAgICAgICAgICAgInsgc2V0cSBlc2hlbGwt dGVzdC12YWx1ZSAoY2RyIGVzaGVsbC10ZXN0LXZhbHVlKSB9IikKICAgICAgICIoMSAyKVxu KDIpXG4iKSkpKQogCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3doaWxlLWxvb3AtbGlz cC1mb3JtICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYSB3aGlsZSBsb29wIHVzaW5nIGEg TGlzcCBmb3JtLiIKKyAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgIChsZXQgKChlc2hlbGwtdGVz dC12YWx1ZSAwKSkKKyAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wCisgICAgICAoY29u Y2F0ICJ3aGlsZSAoLz0gZXNoZWxsLXRlc3QtdmFsdWUgMykgIgorICAgICAgICAgICAgICAi eyBzZXRxIGVzaGVsbC10ZXN0LXZhbHVlICgxKyBlc2hlbGwtdGVzdC12YWx1ZSkgfSIpCisg ICAgICAiMVxuMlxuM1xuIikpKSkKKwogKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC93aGls ZS1sb29wLWV4dC1jbWQgKCkKICAgIlRlc3QgaW52b2NhdGlvbiBvZiBhIHdoaWxlIGxvb3Ag dXNpbmcgYW4gZXh0ZXJuYWwgY29tbWFuZC4iCiAgIChza2lwLXVubGVzcyAoZXhlY3V0YWJs ZS1maW5kICJbIikpCkBAIC0xNTgsNiArMTY3LDE2IEBAIGVzaC1jbWQtdGVzdC91bnRpbC1s b29wCiAgICAgICAgICAgICAgICJ7IHNldHEgZXNoZWxsLXRlc3QtdmFsdWUgdCB9IikKICAg ICAgICJ0XG4iKSkpKQogCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3VudGlsLWxvb3At bGlzcC1mb3JtICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYW4gdW50aWwgbG9vcCB1c2lu ZyBhIExpc3AgZm9ybS4iCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJbIikp CisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAobGV0ICgoZXNoZWxsLXRlc3QtdmFsdWUgMCkp CisgICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcAorICAgICAgKGNvbmNhdCAidW50aWwg KD0gZXNoZWxsLXRlc3QtdmFsdWUgMykgIgorICAgICAgICAgICAgICAieyBzZXRxIGVzaGVs bC10ZXN0LXZhbHVlICgxKyBlc2hlbGwtdGVzdC12YWx1ZSkgfSIpCisgICAgICAiMVxuMlxu M1xuIikpKSkKKwogKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC91bnRpbC1sb29wLWV4dC1j bWQgKCkKICAgIlRlc3QgaW52b2NhdGlvbiBvZiBhbiB1bnRpbCBsb29wIHVzaW5nIGFuIGV4 dGVybmFsIGNvbW1hbmQuIgogICAoc2tpcC11bmxlc3MgKGV4ZWN1dGFibGUtZmluZCAiWyIp KQpAQCAtMTg4LDYgKzIwNywzMCBAQCBlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1lbnQK ICAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJpZiAkZXNoZWxsLXRlc3QtdmFsdWUg e2VjaG8geWVzfSB7ZWNobyBub30iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi bm9cbiIpKSkpCiAKKyhlcnQtZGVmdGVzdCBlc2gtY21kLXRlc3QvaWYtZWxzZS1zdGF0ZW1l bnQtbGlzcC1mb3JtICgpCisgICJUZXN0IGludm9jYXRpb24gb2YgYW4gaWYvZWxzZSBzdGF0 ZW1lbnQgdXNpbmcgYSBMaXNwIGZvcm0uIgorICAod2l0aC10ZW1wLWVzaGVsbAorICAgKGVz aGVsbC1jb21tYW5kLXJlc3VsdC1wICJpZiAoemVyb3AgMCkge2VjaG8geWVzfSB7ZWNobyBu b30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInllc1xuIikKKyAgIChlc2hlbGwt Y29tbWFuZC1yZXN1bHQtcCAiaWYgKHplcm9wIDEpIHtlY2hvIHllc30ge2VjaG8gbm99Igor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub1xuIikKKyAgIChsZXQgKChkZWJ1Zy1v bi1lcnJvciBuaWwpKQorICAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImlmICh6ZXJv cCBcImZvb1wiKSB7ZWNobyB5ZXN9IHtlY2hvIG5vfSIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJub1xuIikpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9pZi1l bHNlLXN0YXRlbWVudC1saXNwLWZvcm0tMiAoKQorICAiVGVzdCBpbnZvY2F0aW9uIG9mIGFu IGlmL2Vsc2Ugc3RhdGVtZW50IHVzaW5nIGEgTGlzcCBmb3JtLgorVGhpcyB0ZXN0cyB3aGVu IGBlc2hlbGwtbGlzcC1mb3JtLW5pbC1pcy1mYWlsdXJlJyBpcyBuaWwuIgorICAobGV0ICgo ZXNoZWxsLWxpc3AtZm9ybS1uaWwtaXMtZmFpbHVyZSBuaWwpKQorICAgICh3aXRoLXRlbXAt ZXNoZWxsCisgICAgIChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiaWYgKHplcm9wIDApIHtl Y2hvIHllc30ge2VjaG8gbm99IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInll c1xuIikKKyAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJpZiAoemVyb3AgMSkge2Vj aG8geWVzfSB7ZWNobyBub30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieWVz XG4iKQorICAgICAobGV0ICgoZGVidWctb24tZXJyb3IgbmlsKSkKKyAgICAgICAoZXNoZWxs LWNvbW1hbmQtcmVzdWx0LXAgImlmICh6ZXJvcCBcImZvb1wiKSB7ZWNobyB5ZXN9IHtlY2hv IG5vfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vXG4iKSkpKSkKKwog KGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC9pZi1lbHNlLXN0YXRlbWVudC1leHQtY21kICgp CiAgICJUZXN0IGludm9jYXRpb24gb2YgYW4gaWYvZWxzZSBzdGF0ZW1lbnQgdXNpbmcgYW4g ZXh0ZXJuYWwgY29tbWFuZC4iCiAgIChza2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJb IikpCkBAIC0yMTcsNiArMjYwLDE3IEBAIGVzaC1jbWQtdGVzdC91bmxlc3MtZWxzZS1zdGF0 ZW1lbnQKICAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1bmxlc3MgJGVzaGVsbC10 ZXN0LXZhbHVlIHtlY2hvIG5vfSB7ZWNobyB5ZXN9IgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm5vXG4iKSkpKQogCisoZXJ0LWRlZnRlc3QgZXNoLWNtZC10ZXN0L3VubGVz cy1lbHNlLXN0YXRlbWVudC1saXNwLWZvcm0gKCkKKyAgIlRlc3QgaW52b2NhdGlvbiBvZiBh biB1bmxlc3MvZWxzZSBzdGF0ZW1lbnQgdXNpbmcgYSBMaXNwIGZvcm0uIgorICAod2l0aC10 ZW1wLWVzaGVsbAorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ1bmxlc3MgKHplcm9w IDApIHtlY2hvIG5vfSB7ZWNobyB5ZXN9IgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ5ZXNcbiIpCisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgInVubGVzcyAoemVyb3Ag MSkge2VjaG8gbm99IHtlY2hvIHllc30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im5vXG4iKQorICAgKGxldCAoKGRlYnVnLW9uLWVycm9yIG5pbCkpCisgICAgIChlc2hlbGwt Y29tbWFuZC1yZXN1bHQtcCAidW5sZXNzICh6ZXJvcCBcImZvb1wiKSB7ZWNobyBub30ge2Vj aG8geWVzfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub1xuIikpKSkKKwog KGVydC1kZWZ0ZXN0IGVzaC1jbWQtdGVzdC91bmxlc3MtZWxzZS1zdGF0ZW1lbnQtZXh0LWNt ZCAoKQogICAiVGVzdCBpbnZvY2F0aW9uIG9mIGFuIHVubGVzcy9lbHNlIHN0YXRlbWVudCB1 c2luZyBhbiBleHRlcm5hbCBjb21tYW5kLiIKICAgKHNraXAtdW5sZXNzIChleGVjdXRhYmxl LWZpbmQgIlsiKSkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLXZhci10ZXN0 cy5lbCBiL3Rlc3QvbGlzcC9lc2hlbGwvZXNoLXZhci10ZXN0cy5lbAppbmRleCA1NGU3MDFh NmFhLi42NmRhYmQ0MjRiIDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvZXNoZWxsL2VzaC12YXIt dGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VzaGVsbC9lc2gtdmFyLXRlc3RzLmVsCkBAIC01 MDAsMTggKzUwMCw3MiBAQCBlc2gtdmFyLXRlc3QvaW5zaWRlLWVtYWNzLXZhci1zcGxpdC1p bmRpY2VzCiAgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgImVjaG8gJElOU0lERV9FTUFD U1ssIDFdIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlc2hlbGwiKSkpCiAKKyhl cnQtZGVmdGVzdCBlc2gtdmFyLXRlc3QvbGFzdC1zdGF0dXMtdmFyLWxpc3AtY29tbWFuZCAo KQorICAiVGVzdCB1c2luZyB0aGUgXCJsYXN0IGV4aXQgc3RhdHVzXCIgKCQ/KSB2YXJpYWJs ZSB3aXRoIGEgTGlzcCBjb21tYW5kIgorICAod2l0aC10ZW1wLWVzaGVsbAorICAgKGVzaGVs bC1jb21tYW5kLXJlc3VsdC1wICJ6ZXJvcCAwOyBlY2hvICQ/IgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ0XG4wXG4iKQorICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICJ6 ZXJvcCAxOyBlY2hvICQ/IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIwXG4iKQor ICAgKGxldCAoKGRlYnVnLW9uLWVycm9yIG5pbCkpCisgICAgIChlc2hlbGwtY29tbWFuZC1y ZXN1bHQtcCAiemVyb3AgZm9vOyBlY2hvICQ/IgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIjFcbiIpKSkpCisKKyhlcnQtZGVmdGVzdCBlc2gtdmFyLXRlc3QvbGFzdC1zdGF0 dXMtdmFyLWxpc3AtZm9ybSAoKQorICAiVGVzdCB1c2luZyB0aGUgXCJsYXN0IGV4aXQgc3Rh dHVzXCIgKCQ/KSB2YXJpYWJsZSB3aXRoIGEgTGlzcCBmb3JtIgorICAobGV0ICgoZXNoZWxs LWxpc3AtZm9ybS1uaWwtaXMtZmFpbHVyZSB0KSkKKyAgKHdpdGgtdGVtcC1lc2hlbGwKKyAg IChlc2hlbGwtY29tbWFuZC1yZXN1bHQtcCAiKHplcm9wIDApOyBlY2hvICQ/IgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJ0XG4wXG4iKQorICAgKGVzaGVsbC1jb21tYW5kLXJl c3VsdC1wICIoemVyb3AgMSk7IGVjaG8gJD8iCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIjJcbiIpCisgICAobGV0ICgoZGVidWctb24tZXJyb3IgbmlsKSkKKyAgICAgKGVzaGVs bC1jb21tYW5kLXJlc3VsdC1wICIoemVyb3AgXCJmb29cIik7IGVjaG8gJD8iCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiMVxuIikpKSkpCisKKyhlcnQtZGVmdGVzdCBlc2gt dmFyLXRlc3QvbGFzdC1zdGF0dXMtdmFyLWxpc3AtZm9ybS0yICgpCisgICJUZXN0IHVzaW5n IHRoZSBcImxhc3QgZXhpdCBzdGF0dXNcIiAoJD8pIHZhcmlhYmxlIHdpdGggYSBMaXNwIGZv cm0uCitUaGlzIHRlc3RzIHdoZW4gYGVzaGVsbC1saXNwLWZvcm0tbmlsLWlzLWZhaWx1cmUn IGlzIG5pbC4iCisgIChsZXQgKChlc2hlbGwtbGlzcC1mb3JtLW5pbC1pcy1mYWlsdXJlIG5p bCkpCisgICAgKHdpdGgtdGVtcC1lc2hlbGwKKyAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3Vs dC1wICIoemVyb3AgMCk7IGVjaG8gJD8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiMFxuIikKKyAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1wICIoemVyb3AgMCk7IGVj aG8gJD8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMFxuIikKKyAgICAgKGxl dCAoKGRlYnVnLW9uLWVycm9yIG5pbCkpCisgICAgICAgKGVzaGVsbC1jb21tYW5kLXJlc3Vs dC1wICIoemVyb3AgXCJmb29cIik7IGVjaG8gJD8iCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIxXG4iKSkpKSkKKworKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9sYXN0 LXN0YXR1cy12YXItZXh0LWNtZCAoKQorICAiVGVzdCB1c2luZyB0aGUgXCJsYXN0IGV4aXQg c3RhdHVzXCIgKCQ/KSB2YXJpYWJsZSB3aXRoIGFuIGV4dGVybmFsIGNvbW1hbmQiCisgIChz a2lwLXVubGVzcyAoZXhlY3V0YWJsZS1maW5kICJbIikpCisgICh3aXRoLXRlbXAtZXNoZWxs CisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAgIlsgZm9vID0gZm9vIF07IGVjaG8gJD8i CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjBcbiIpCisgICAoZXNoZWxsLWNvbW1h bmQtcmVzdWx0LXAgIlsgZm9vID0gYmFyIF07IGVjaG8gJD8iCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIjFcbiIpKSkKKwogKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9sYXN0 LXJlc3VsdC12YXIgKCkKICAgIlRlc3QgdXNpbmcgdGhlIFwibGFzdCByZXN1bHRcIiAoJCQp IHZhcmlhYmxlIgogICAod2l0aC10ZW1wLWVzaGVsbAogICAgKGVzaGVsbC1jb21tYW5kLXJl c3VsdC1wICIrIDEgMjsgKyAkJCAyIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICIz XG41XG4iKSkpCiAKLShlcnQtZGVmdGVzdCBlc2gtdmFyLXRlc3QvbGFzdC1yZXN1bHQtdmFy MiAoKQorKGVydC1kZWZ0ZXN0IGVzaC12YXItdGVzdC9sYXN0LXJlc3VsdC12YXItdHdpY2Ug KCkKICAgIlRlc3QgdXNpbmcgdGhlIFwibGFzdCByZXN1bHRcIiAoJCQpIHZhcmlhYmxlIHR3 aWNlIgogICAod2l0aC10ZW1wLWVzaGVsbAogICAgKGVzaGVsbC1jb21tYW5kLXJlc3VsdC1w ICIrIDEgMjsgKyAkJCAkJCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiM1xuNlxu IikpKQogCisoZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2xhc3QtcmVzdWx0LXZhci1leHQt Y21kICgpCisgICJUZXN0IHVzaW5nIHRoZSBcImxhc3QgcmVzdWx0XCIgKCQkKSB2YXJpYWJs ZSB3aXRoIGFuIGV4dGVybmFsIGNvbW1hbmQiCisgIChza2lwLXVubGVzcyAoZXhlY3V0YWJs ZS1maW5kICJbIikpCisgICh3aXRoLXRlbXAtZXNoZWxsCisgICAoZXNoZWxsLWNvbW1hbmQt cmVzdWx0LXAgIlsgZm9vID0gZm9vIF07IGZvcm1hdCBcIiVzXCIgJCQiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInRcbiIpCisgICAoZXNoZWxsLWNvbW1hbmQtcmVzdWx0LXAg IlsgZm9vID0gYmFyIF07IGZvcm1hdCBcIiVzXCIgJCQiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIm5pbFxuIikpKQorCiAoZXJ0LWRlZnRlc3QgZXNoLXZhci10ZXN0L2xhc3Qt cmVzdWx0LXZhci1zcGxpdC1pbmRpY2VzICgpCiAgICJUZXN0IHVzaW5nIHRoZSBcImxhc3Qg cmVzdWx0XCIgKCQkKSB2YXJpYWJsZSB3aXRoIHNwbGl0IGluZGljZXMiCiAgICh3aXRoLXRl bXAtZXNoZWxsCi0tIAoyLjI1LjEKCg== --------------FB610A9ACD38E16937EFA651-- From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 12 11:22:43 2022 Received: (at 57129) by debbugs.gnu.org; 12 Aug 2022 15:22:43 +0000 Received: from localhost ([127.0.0.1]:58624 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMWUl-0008Ht-Dv for submit@debbugs.gnu.org; Fri, 12 Aug 2022 11:22:43 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55808) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMWUj-0008He-2e for 57129@debbugs.gnu.org; Fri, 12 Aug 2022 11:22:41 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=yNxIzmVvDGsiqj461H893hbC2deOlgsgNcqBfvPOQHc=; b=Ey4ewCTtqZHGiDzIZJxbR1jiBL c2KUyIziYgGF1S0djQveqnWlxyDqOpx/VXZE6xQ/TnfMbsY+ifMsMU/YzpdMQ3yIke1/m2Yil7eE5 kUZzxivLmR9485lUDwlAHb7tbCVK8uw0N5tdso+FhhDm3P5gJECJwYtZnYASASuQs+Y4=; Received: from [84.212.220.105] (helo=joga) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oMWUa-0006Sj-W7; Fri, 12 Aug 2022 17:22:35 +0200 From: Lars Ingebrigtsen To: Jim Porter Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> (Jim Porter's message of "Wed, 10 Aug 2022 19:46:41 -0700") References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> X-Now-Playing: Joni Mitchell's _Clouds_: "Chelsea Morning" Date: Fri, 12 Aug 2022 17:22:32 +0200 Message-ID: <87mtc9o5af.fsf@gnus.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Report: Spam detection software, running on the system "quimby.gnus.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 @@CONTACT_ADDRESS@@ for details. Content preview: Jim Porter writes: > Here are some patches to fix this. I haven't tested the patches, but reading them, they make sense to me, so please go ahead and push. Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: 57129@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 (---) Jim Porter writes: > Here are some patches to fix this. I haven't tested the patches, but reading them, they make sense to me, so please go ahead and push. From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 13 01:14:13 2022 Received: (at 57129) by debbugs.gnu.org; 13 Aug 2022 05:14:13 +0000 Received: from localhost ([127.0.0.1]:59387 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMjTR-0001z1-5n for submit@debbugs.gnu.org; Sat, 13 Aug 2022 01:14:13 -0400 Received: from mail-pg1-f170.google.com ([209.85.215.170]:33739) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMjTN-0001ym-Ew for 57129@debbugs.gnu.org; Sat, 13 Aug 2022 01:14:11 -0400 Received: by mail-pg1-f170.google.com with SMTP id l64so2405080pge.0 for <57129@debbugs.gnu.org>; Fri, 12 Aug 2022 22:14:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=IF/br+MxOUq7I8VJ5tMAs7v+o318hNW7zuML9ivwx3c=; b=ewRa/bljlds3r8rGl23SD68a1N94CmDsi3BW63UJDYAZKAuWOhJvfR8/uhi+UmbrjH qvD+3bECwxwSbS04RaDImdGbwh5da94rIWZ0F/2YQo5wDFz/MPFqt8WNC5FLBWp65dhK 2I+2IaAJqNBHJq/AP6jW3zojF7cLx7lIQ9VE28e4jrqQ0yJZ/Es8ZIa1Oo6A+M3gKQnR b/7CsKv8bXVR2hIWxUqQzTiRGcUqTEkSoy0x1+qgtattmPcKl6ihx0tZYEijFzKbS+Uh edtJT7VLIWgq7jcS39PRi5Cobe5qri7c9IFN6+y2bhW3E8pg+nVXkU8+ytSE3OMhIAhW tXdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=IF/br+MxOUq7I8VJ5tMAs7v+o318hNW7zuML9ivwx3c=; b=ovhirAnAsC/XlXSwUex3ADR762hV0LRQh1sK2wBYJOXhNcbK/Hta2Qd+fXbUwLloFF 77BfltriZHqsIb7YYU9CmxFGlpOGpGuDmNMftbk/5Yo7Ug9/MNMJxr8abmikwQZxZHsa qPcTED41zcECqpPGkDARgnvzx5dcEtAaMgT18SfhGmyyuJLpNMiYRfGnwC4rcGpY+Wol l2/CuiJMiFXNFh7bVjxFvkUnmS0l5U7phbB9kPCuttnmwFUzdNpv5mg+RYA+Iq0i6g0h bCfweBR3xYEswQQXLzJ29iCNWTYkO4+g5lHCEPiw9R/iKYUrbil7/YbpmA4xmGgJBJq6 gjuA== X-Gm-Message-State: ACgBeo2+E1Cq1NhV/WeySOM8BCGCGZRTmgvGVMNfL3txbAmU130i7oUh CbLlLzafziLinqH//0YR9aJN2k+fbQE= X-Google-Smtp-Source: AA6agR7BtBZ+UruTwthRHVx/8kO3kLNYB9qJu9pDxuDlGMpFXRuHmDBJ/cm+E/JQRrDu1bu6YSVPUw== X-Received: by 2002:a63:e217:0:b0:41a:69b1:a68e with SMTP id q23-20020a63e217000000b0041a69b1a68emr5510151pgh.428.1660367643566; Fri, 12 Aug 2022 22:14:03 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id z18-20020aa79492000000b0052d6ad246a4sm2627921pfk.144.2022.08.12.22.14.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 Aug 2022 22:14:02 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Lars Ingebrigtsen References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> From: Jim Porter Message-ID: Date: Fri, 12 Aug 2022 22:14:02 -0700 MIME-Version: 1.0 In-Reply-To: <87mtc9o5af.fsf@gnus.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: 57129@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 8/12/2022 8:22 AM, Lars Ingebrigtsen wrote: > Jim Porter writes: > >> Here are some patches to fix this. > > I haven't tested the patches, but reading them, they make sense to me, > so please go ahead and push. Thanks for taking a look. Merged as f3408af0a3251a744cb0b55b5e153565bfd57ea3. From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 13 03:01:33 2022 Received: (at 57129) by debbugs.gnu.org; 13 Aug 2022 07:01:33 +0000 Received: from localhost ([127.0.0.1]:59544 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMl9J-00072F-8p for submit@debbugs.gnu.org; Sat, 13 Aug 2022 03:01:33 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33504) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMl9G-000722-QV for 57129@debbugs.gnu.org; Sat, 13 Aug 2022 03:01:31 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44390) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMl9B-0007ck-Fz; Sat, 13 Aug 2022 03:01:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=0za/p4bW66vvCfDhe/VTfduRwj3jlWzxG0ZH/WiL+bA=; b=YettXuTIZML7 YOOmk+majt9vtkTroQARpLGiIwtm7a7TDfpWYwVQObsUeW7bmH2nxRbWQZsCEoenwE18m07QGEC4+ s8sGh4Dc3DeR4H9D/gsXxaNdSv8xlsM4+JC7b2ipoT8Yivsh41YH0IiiWA3BVmMHsnbhMlm53Qbiw 0a2OeEc3uRa1orHPaGz42NwJPevaH11HeeM1TyVVnE5sIw5B1zAhvwStVe6CQsl6Zkon+6qjfmy/c FhqMvhOcfnwybc07JvZH4QtcX88aiX2GKBhCRnSj1IgOQKA2sSLN6pURBTMoy80X4qU080DaY0S+H h9ik2a8qk6Txc0EkvV/xkw==; Received: from [87.69.77.57] (port=1075 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oMl9A-0004UO-Tk; Sat, 13 Aug 2022 03:01:25 -0400 Date: Sat, 13 Aug 2022 10:01:21 +0300 Message-Id: <83h72gmxtq.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: (message from Jim Porter on Fri, 12 Aug 2022 22:14:02 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: 57129@debbugs.gnu.org > From: Jim Porter > Date: Fri, 12 Aug 2022 22:14:02 -0700 > > On 8/12/2022 8:22 AM, Lars Ingebrigtsen wrote: > > Jim Porter writes: > > > >> Here are some patches to fix this. > > > > I haven't tested the patches, but reading them, they make sense to me, > > so please go ahead and push. > > Thanks for taking a look. Merged as > f3408af0a3251a744cb0b55b5e153565bfd57ea3. One of the tests in esh-var-tests.el failed on MS-Windows; I fixed it, although I'm not sure it's a correct fix, because the Eshell manual seems to say that a built-in implementation of a command should be preferred by default? One of the tests in eshell-tests.el also fails on MS-Windows, but I have no idea how to fix it, nor even what are the details of the test. Are the 'echo' commands in that test supposed to be external shell commands or internal Eshell commands? If the former, it could be a problem on MS-Windows. (This is a good example of my gripes about the test suite, which I described in bug#57150 yesterday: debugging a failure is unnecessarily hard and tedious. There's no information about the specific intent of the test and its inner workings and assumptions, except the general idea described in the doc string.) Here's the failure I get: Test eshell-test/subcommand-reset-in-pipeline backtrace: signal(ert-test-failed (((should (equal (eshell-test-command-result ert-fail(((should (equal (eshell-test-command-result (format templat (if (unwind-protect (setq value-38 (apply fn-36 args-37)) (setq form (let (form-description-40) (if (unwind-protect (setq value-38 (apply (let ((value-38 'ert-form-evaluation-aborted-39)) (let (form-descrip (let* ((fn-36 #'equal) (args-37 (condition-case err (let ((signal-ho (let ((template (car --dolist-tail--))) (let* ((fn-26 #'equal) (args (while --dolist-tail-- (let ((template (car --dolist-tail--))) (let* (let ((--dolist-tail-- '("echo {%s} | *cat" "echo ${%s} | *cat" "*ca (closure (t) nil (let* ((fn-21 #'executable-find) (args-22 (conditio ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name eshell-test/subcommand-reset-in-pipel ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp)))) ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n command-line-1(("-L" ";." "-l" "ert" "-l" "lisp/eshell/eshell-tests. command-line() normal-top-level() Test eshell-test/subcommand-reset-in-pipeline condition: (ert-test-failed ((should (equal (eshell-test-command-result ...) "first")) :form (equal nil "first") :value nil :explanation (different-types nil "first"))) FAILED 18/18 eshell-test/subcommand-reset-in-pipeline (1.873920 sec) at lisp/eshell/eshell-tests.el:80 From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 13 14:56:31 2022 Received: (at 57129) by debbugs.gnu.org; 13 Aug 2022 18:56:31 +0000 Received: from localhost ([127.0.0.1]:35101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMwJD-0000sQ-Dw for submit@debbugs.gnu.org; Sat, 13 Aug 2022 14:56:31 -0400 Received: from mail-pl1-f180.google.com ([209.85.214.180]:47005) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oMwJB-0000sC-Dq for 57129@debbugs.gnu.org; Sat, 13 Aug 2022 14:56:29 -0400 Received: by mail-pl1-f180.google.com with SMTP id jm11so1093509plb.13 for <57129@debbugs.gnu.org>; Sat, 13 Aug 2022 11:56:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=nd4O7bcDJhEIRyTVDAR7SqGynpKMwDeux89I3OiKZas=; b=U8okBEMFvngnhnBHUOWlOrxaQaJ41IuNhskKhPIvXPQxM6AQ/BI7n8d2OqUCQOnYc+ 5AEX8LfcFJPLbxx4ZkllxCKocsKMN5Bqh/SK9sOWq7FJ7/FO7VdG4iLdCnKDFBMwFcaH knJqmpEttqcMwt1thkKG9qKY/y1kyTZjR84K6Ms2M0gfidoXhSZfqx9Sb60smAY9i6u3 0lRuxMksh50J2T2/bbhy6zx88Eg8VZv/0e9nHSXERd8MMhg6snhX2xqXRIrBBwKCTXM8 Q+iiJC8FHiXpq/sW8Yus6Eq3Cb49B6SjgfAYm6UL/couGFtiyQ6rK28xdpsxez4W+EMh 5YEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=nd4O7bcDJhEIRyTVDAR7SqGynpKMwDeux89I3OiKZas=; b=13ZQo6RGn6Qe3tpoN5p1P3qihtSy3Gy28qmesaejIYHXwcfXtGQOrCO8PXofRHC3Ob 2NFax8TJf4no8aOTD80Q/0YhJyaki7IMdav3csnUkD+4s/kWVbf3FPkpzDeZMKWdaKxX E04nlK5QINleYprBSbXrHEtSp/tFkjQIPY4h+sbw7Khz0iPMqf0UCO7EsZs026bQxDIH WJJWB+jdw1Uxdcs6upsH3IuXJeLMMtMLnt0Qq8idocMZ50l2j8M79qGWJSrzLdl0t6xX +NacpXnKYqxrdqj5wJrPF08Ie/6ZmOBuZ85yTNusYZL2Ombs9Xu8SfEFm8sxGFwBDOdN 2paA== X-Gm-Message-State: ACgBeo1LuB8BgS3XyPxF+lOdrmu/FEg4d6Fqqr6NMLFJPSJ15tzTvO3O 6jEwJLnBfgRf5pzyGUp34yTl1OFx3wU= X-Google-Smtp-Source: AA6agR7ec/dS7nGDjOzB9aN1M6V5hLbzWbBaWcjwaP7pRLPznYzWk1k7yQ2I7hywdrosKL8B2xpiQw== X-Received: by 2002:a17:902:cf0e:b0:172:60b7:777c with SMTP id i14-20020a170902cf0e00b0017260b7777cmr2266076plg.132.1660416983328; Sat, 13 Aug 2022 11:56:23 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id fv20-20020a17090b0e9400b001f2fbf2c42esm1934541pjb.26.2022.08.13.11.56.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Aug 2022 11:56:22 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> From: Jim Porter Message-ID: <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> Date: Sat, 13 Aug 2022 11:56:20 -0700 MIME-Version: 1.0 In-Reply-To: <83h72gmxtq.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/13/2022 12:01 AM, Eli Zaretskii wrote: > One of the tests in esh-var-tests.el failed on MS-Windows; I fixed it, > although I'm not sure it's a correct fix, because the Eshell manual > seems to say that a built-in implementation of a command should be > preferred by default? Sorry about that. I think that's the right fix for that case. Maybe it would make sense to set 'eshell-prefer-lisp-functions' to t for most of the Eshell tests to improve reproducibility on various platforms; tests that want an external command can just put a "*" in front of the command name. > One of the tests in eshell-tests.el also fails on MS-Windows, but I > have no idea how to fix it, nor even what are the details of the > test. Are the 'echo' commands in that test supposed to be external > shell commands or internal Eshell commands? If the former, it could > be a problem on MS-Windows. The echo commands should be internal Eshell commands (since there's an 'eshell/echo' Lisp function, that one should always be preferred by Eshell). I'm surprised that test fails on MS Windows, since it *should* be testing internal Eshell logic that's not platform-specific. Based on the failure, it looks like one of the following commands is returning the wrong value: echo {echo $eshell-in-pipeline-p | echo} | *cat echo ${echo $eshell-in-pipeline-p | echo} | *cat *cat $ | *cat All of these should return 'first'. That test is just checking that, when you're in a subcommand ({...}, ${...}, or $<...>), the value of 'eshell-in-pipeline-p' shouldn't be influenced by the pipeline in the "super-command". Some built-in Eshell commands consult 'eshell-in-pipeline-p', and if it had the wrong value, they might do the wrong thing. If nothing else, it would probably be helpful to set up ERT explainers so that the error messages are easier to understand. As it is now, they're not very explanatory. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 01:03:59 2022 Received: (at 57129) by debbugs.gnu.org; 14 Aug 2022 05:03:59 +0000 Received: from localhost ([127.0.0.1]:35599 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN5n5-0005Ov-0j for submit@debbugs.gnu.org; Sun, 14 Aug 2022 01:03:59 -0400 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]:56219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN5n0-0005Oe-GX for 57129@debbugs.gnu.org; Sun, 14 Aug 2022 01:03:57 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 2E43032001FF; Sun, 14 Aug 2022 01:03:48 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sun, 14 Aug 2022 01:03:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=spwhitton.name; h=cc:cc:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm3; t=1660453427; x=1660539827; bh=zG YKT0EGjuubXAUAW6KGeI8aYmem3qpc+gh80bXiazk=; b=ho5BPFHUdOPoa3uQ3d 7egbu3y3HzyvyFvZK4ycabhmGamCueLjNety+MbJyLRW0lLvN/GflrSk4uSzoy3F QnHSFMbYBLuvPv3fhtbq3gJyPwkAzYRwqp9fr/DkiPvqx3FcOcdwzDVxwNY1qVCE jrRcqqWfr4daP8zAbeCxqZsr8ByB0Tyip/fjvzFreh4kO5i1W3OokhR0I/BOQ8jp NrRSUenNkjUCpc5yYk7OjJvoaqsZJoT5ORm0e85RzwXBVz/G4jon72spZr7tUeb7 pCjjPqeFH5MNzx+tQ3pRyvVEcmpiNovTfzTKHzh26KdGXwrilH8cEBsBCqZpI1Rz 47tQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1660453427; x=1660539827; bh=zGYKT0EGjuubXAUAW6KGeI8aYmem 3qpc+gh80bXiazk=; b=2x2jNXb4+JN88YRicWRgrLR9+2fiHtx0y1azOmbLvNUj NJwnUFdOxXyOWmD50BLRyNNlOrY7SQf803ZOm+Abpso12hA6WcPPoT1045A7rNzA bBVmPZg8R2tUEVpepwPgwiy+2XRiCieuPVNntPDnfYTRVh/HddTV7/LnK5CvrOgT 1TRBY1hTIgBpjb7JP7aVgJtVsPPxpRDW/hB0qSRWRR++H4OT+uAo7ASuyGdTi34G rvKN80aGa5XYqo8vBWa/R5envBamMS4OPgOovjF0rFameGEVf7yPlFLdF3N/Vqbd rWky2hkWBP0o0hc9HWHgFZWgJgy9tqV4PmolRlrj8g== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdegledgleefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvfevufgjfhffkfgfgggtsehttd dttddtredtnecuhfhrohhmpefuvggrnhcuhghhihhtthhonhcuoehsphifhhhithhtohhn sehsphifhhhithhtohhnrdhnrghmvgeqnecuggftrfgrthhtvghrnheptdffvdffueelue dvteekvdevhefghedvgeevgffhvedukeeggeelveegjeekteeknecuvehluhhsthgvrhfu ihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshhpfihhihhtthhonhesshhpfi hhihhtthhonhdrnhgrmhgv X-ME-Proxy: Feedback-ID: i23c04076:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 14 Aug 2022 01:03:47 -0400 (EDT) Received: by melete.silentflame.com (Postfix, from userid 1000) id 2AF077EDB9A; Sat, 13 Aug 2022 22:03:46 -0700 (MST) From: Sean Whitton To: Jim Porter Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: (Jim Porter's message of "Fri, 12 Aug 2022 22:14:02 -0700") References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> Date: Sat, 13 Aug 2022 22:03:46 -0700 Message-ID: <87mtc7wh59.fsf@melete.silentflame.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 57129 Cc: 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hello, On Fri 12 Aug 2022 at 10:14PM -07, Jim Porter wrote: > On 8/12/2022 8:22 AM, Lars Ingebrigtsen wrote: >> Jim Porter writes: >> >>> Here are some patches to fix this. >> I haven't tested the patches, but reading them, they make sense to me, >> so please go ahead and push. > > Thanks for taking a look. Merged as f3408af0a3251a744cb0b55b5e153565bfd57ea3. Thanks for working on this, pretty cool. -- Sean Whitton From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 01:08:16 2022 Received: (at 57129) by debbugs.gnu.org; 14 Aug 2022 05:08:16 +0000 Received: from localhost ([127.0.0.1]:35608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN5rD-0005bn-MH for submit@debbugs.gnu.org; Sun, 14 Aug 2022 01:08:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53844) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN5rA-0005bX-Mt for 57129@debbugs.gnu.org; Sun, 14 Aug 2022 01:08:13 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38212) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oN5r5-0000Ex-BG; Sun, 14 Aug 2022 01:08:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=wwj8iPp1pw6US8Cnw4BfPlkkjS8/4kvB+P7BwyHYDjw=; b=rHZfBj9GX5ja 2/uiwysZbge1PZELxHEe3GKyHryUjMN6lraZeAqr6eHUj8vW53SkwV3oWW6P+4FcO2gDN7/6p3JnC Uo10RMNzdZwNCNazhNxQuF9WKsGfmBzqXe7Hy4ls2Lsybzqu4k9jUESNyu++YmRIkxyS3/fR8ZsQm McEZ2VY6O2V1OgAJ3ckJDAlduVUn10ARxf1BTg4XPnUnkSnnc4jZUu6YqQA/1GAJdEaxz1jgitzaU fwkHxOhIdJbftVUeCMnMy2wY7xrbsVyWgnSRZhoZ8zQkA4KSiqa10yuWvX8oTllZtz5bw0WjAsdY1 jUJLKOHwziJAzzzP3hSbmw==; Received: from [87.69.77.57] (port=2444 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oN5r4-0000lX-M6; Sun, 14 Aug 2022 01:08:07 -0400 Date: Sun, 14 Aug 2022 08:07:49 +0300 Message-Id: <83pmh3l8ey.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> (message from Jim Porter on Sat, 13 Aug 2022 11:56:20 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Sat, 13 Aug 2022 11:56:20 -0700 > > On 8/13/2022 12:01 AM, Eli Zaretskii wrote: > > One of the tests in esh-var-tests.el failed on MS-Windows; I fixed it, > > although I'm not sure it's a correct fix, because the Eshell manual > > seems to say that a built-in implementation of a command should be > > preferred by default? > > Sorry about that. I think that's the right fix for that case. Maybe it > would make sense to set 'eshell-prefer-lisp-functions' to t for most of > the Eshell tests to improve reproducibility on various platforms; tests > that want an external command can just put a "*" in front of the command > name. But then this fragment from the Eshell manual: The command can be either an Elisp function or an external command. Eshell looks first for an alias (*note Aliases::) with the same name as the command, then a built-in (*note Built-ins::) or a function with the same name; if there is no match, it then tries to execute it as an external command. seems to be inaccurate? Since 'format' exists as a built-in command, why did Eshell in this case invoke the external command instead? > I'm surprised that test fails on MS Windows, since it *should* be > testing internal Eshell logic that's not platform-specific. Based on the > failure, it looks like one of the following commands is returning the > wrong value: > > echo {echo $eshell-in-pipeline-p | echo} | *cat > echo ${echo $eshell-in-pipeline-p | echo} | *cat > *cat $ | *cat > > All of these should return 'first'. The first two do; the last one returns nothing. > That test is just checking that, > when you're in a subcommand ({...}, ${...}, or $<...>), the value of > 'eshell-in-pipeline-p' shouldn't be influenced by the pipeline in the > "super-command". Some built-in Eshell commands consult > 'eshell-in-pipeline-p', and if it had the wrong value, they might do the > wrong thing. So how to investigate this failure further? > If nothing else, it would probably be helpful to set up ERT explainers > so that the error messages are easier to understand. As it is now, > they're not very explanatory. Indeed, more explanations in this and other tests will be most welcome. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 01:37:27 2022 Received: (at 57129) by debbugs.gnu.org; 14 Aug 2022 05:37:27 +0000 Received: from localhost ([127.0.0.1]:35645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN6JR-0006QL-9j for submit@debbugs.gnu.org; Sun, 14 Aug 2022 01:37:27 -0400 Received: from mail-pl1-f172.google.com ([209.85.214.172]:40905) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN6JL-0006Q3-E5 for 57129@debbugs.gnu.org; Sun, 14 Aug 2022 01:37:23 -0400 Received: by mail-pl1-f172.google.com with SMTP id x23so3944816pll.7 for <57129@debbugs.gnu.org>; Sat, 13 Aug 2022 22:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id:from :references:cc:to:subject:from:to:cc; bh=HocWahDv5Qht2tm0dREWw201fk24lC4CZutx97AdDHA=; b=YISQGFBDqpDi2YC4fuCgVVvaPWb0bnUNCj6/gQrHY5lA4BUfisyvoPDG8y00itTZJS Br5t/wIFQXtkFMlZgZ3ntRd+NCmHso/FNtZOF22T64bGchwai3m++fk/skhCafwXjv44 inChUZn1CZwwCMSC9Doz8kaCqPLNtSLhiH3mL/BfS/0bi090dR2ukFq7zICwdH7EM/mS ICZu5AUMKqkNXgI2tLK13d8QajLjAnvcg1MTbRqs06tgDnWg6S0GsRIvZgdBi3ct19K3 V814By+CATMQDbiudfMbqxptLEcd6DN4XiqeZcmrktKX4YUgCQ8s3BeSca0yVfKaVUA6 MW1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id:from :references:cc:to:subject:x-gm-message-state:from:to:cc; bh=HocWahDv5Qht2tm0dREWw201fk24lC4CZutx97AdDHA=; b=AHRg+P2Hl0uOueJzLKJdg5WLMmkTwC27N8XMAU2cpNpPNyuSB1kOeamP69AcrQyAoe quGKvTdv18UrI4C/UkeG3hvsX4YDiCQRSvUly0a7ujd0FJWkde/4Z1w31ITBAGUaBpXZ g9pt45/vIHdiqZgkAKkU2BJvUBd7jN2ZWGW3ttStMCMPu9BwcoIUskI01NaymWDMg5kC mwntWh5EutOz3de8dPRNrI5DeoP1zNGPSsxhqxzMJKYqE/Fkf4NqQqn4bNb/Xm8UmJWW 3j7jhBMYcSAuDgFc2R+igfvdb8ttEeuSovoHo7QgWWw0gO8ACVxbVqBLclxh72KyXuLa giXw== X-Gm-Message-State: ACgBeo3SkqMKnkllMg1KeZ2K9LNQfM8t0UWPq16zVot6sMNRCxDGvf0R zgNFGToqOz56EN/fbraL9q2G2MtXH5A= X-Google-Smtp-Source: AA6agR4VVaJaquNprAfA5LHHQ7JqjlEItZc97k4NAMEC3LJUHBObfOyqEmou3JnOn/IErYT0cV4gUw== X-Received: by 2002:a17:902:d144:b0:170:cabe:a719 with SMTP id t4-20020a170902d14400b00170cabea719mr11265335plt.76.1660455433407; Sat, 13 Aug 2022 22:37:13 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id b14-20020a170902d50e00b0016dc1df9bf7sm4685617plg.27.2022.08.13.22.37.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 13 Aug 2022 22:37:12 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> From: Jim Porter Message-ID: <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> Date: Sat, 13 Aug 2022 22:37:12 -0700 MIME-Version: 1.0 In-Reply-To: <83pmh3l8ey.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------1679FDC9C3768559027CA3F9" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------1679FDC9C3768559027CA3F9 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 8/13/2022 10:07 PM, Eli Zaretskii wrote: >> Cc: larsi@gnus.org, 57129@debbugs.gnu.org >> From: Jim Porter >> Date: Sat, 13 Aug 2022 11:56:20 -0700 >> >> Sorry about that. I think that's the right fix for that case. Maybe it >> would make sense to set 'eshell-prefer-lisp-functions' to t for most of >> the Eshell tests to improve reproducibility on various platforms; tests >> that want an external command can just put a "*" in front of the command >> name. > > But then this fragment from the Eshell manual: > > The command can be either an Elisp function or an external command. > Eshell looks first for an alias (*note Aliases::) with the same name as > the command, then a built-in (*note Built-ins::) or a function with the > same name; if there is no match, it then tries to execute it as an > external command. > > seems to be inaccurate? Since 'format' exists as a built-in command, > why did Eshell in this case invoke the external command instead? "Built-in" in that part of the manual refers to a function named 'eshell/FOO'. If you run "FOO" as an Eshell command, it will check for 'eshell/FOO' before an external command on your system. The manual could probably stand to be improved here. >> I'm surprised that test fails on MS Windows, since it *should* be >> testing internal Eshell logic that's not platform-specific. Based on the >> failure, it looks like one of the following commands is returning the >> wrong value: >> >> echo {echo $eshell-in-pipeline-p | echo} | *cat >> echo ${echo $eshell-in-pipeline-p | echo} | *cat >> *cat $ | *cat >> >> All of these should return 'first'. > > The first two do; the last one returns nothing. [snip] > So how to investigate this failure further? I have access to an MS Windows system (but don't have a build environment set up for native MS Windows builds), so I can try to reproduce this using the Emacs 29 pretest binaries in the next few days. Hopefully that works. If you'd like to dig into this further yourself, you could try running this command in Eshell: eshell-parse-command '*cat $ | *cat' That will print the Lisp form that the command gets converted to. I've attached the result that I get in a recent Emacs 29 build on GNU/Linux. The two functions that set 'eshell-in-pipeline-p' in there are: * 'eshell-as-subcommand', which resets it to nil so that the outer command's pipeline state doesn't interfere with the subcommand. * 'eshell-execute-pipeline', which calls 'eshell-do-pipelines' (except on MS-DOS, I think) and should set 'eshell-in-pipeline-p' to 'first' in the above case. >> If nothing else, it would probably be helpful to set up ERT explainers >> so that the error messages are easier to understand. As it is now, >> they're not very explanatory. > > Indeed, more explanations in this and other tests will be most > welcome. Yeah, this test in particular is high up on the list of tests that needs more explanation. It's pretty subtle, and the test doesn't really serve as a good example of why someone would care that this behavior works the way the test demands it. --------------1679FDC9C3768559027CA3F9 Content-Type: text/plain; charset=UTF-8; name="parsed-command.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="parsed-command.el" KGVzaGVsbC10cmFwLWVycm9ycwogKGVzaGVsbC1leGVjdXRlLXBpcGVsaW5lCiAgJygoZXNo ZWxsLW5hbWVkLWNvbW1hbmQKICAgICAoZXNoZWxsLWNvbmNhdCBuaWwgIioiICJjYXQiKQog ICAgIChsaXN0CiAgICAgIChlc2hlbGwtZXNjYXBlLWFyZwogICAgICAgKGxldAogICAgICAg ICAgICgoaW5kaWNlcwogICAgICAgICAgICAgKGVzaGVsbC1ldmFsLWluZGljZXMgJ25pbCkp KQogICAgICAgICAobGV0CiAgICAgICAgICAgICAoKGVzaGVsbC1jdXJyZW50LWhhbmRsZXMK ICAgICAgICAgICAgICAgKGVzaGVsbC1jcmVhdGUtaGFuZGxlcyAiL3RtcC9RcVBGd28iICdv dmVyd3JpdGUpKSkKICAgICAgICAgICAocHJvZ24KICAgICAgICAgICAgIChlc2hlbGwtYXMt c3ViY29tbWFuZAogICAgICAgICAgICAgIChlc2hlbGwtdHJhcC1lcnJvcnMKICAgICAgICAg ICAgICAgKGVzaGVsbC1leGVjdXRlLXBpcGVsaW5lCiAgICAgICAgICAgICAgICAnKChlc2hl bGwtbmFtZWQtY29tbWFuZCAiZWNobyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsaXN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVzaGVsbC1lc2NhcGUtYXJnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChsZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoaW5kaWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZXNoZWxsLWV2YWwtaW5kaWNlcyAnbmlsKSkpCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVzaGVsbC1nZXQtdmFyaWFibGUKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIygiZXNoZWxsLWlu LXBpcGVsaW5lLXAiIDAgMjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoZXNjYXBlZCB0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5kaWNlcyBuaWwpKSkpKQogICAgICAgICAgICAgICAgICAocHJv Z24KICAgICAgICAgICAgICAgICAgICAoaWdub3JlCiAgICAgICAgICAgICAgICAgICAgIChl c2hlbGwtc2V0LW91dHB1dC1oYW5kbGUgMSAnb3ZlcndyaXRlICIvdG1wL1FxUEZ3byIpKQog ICAgICAgICAgICAgICAgICAgIChlc2hlbGwtbmFtZWQtY29tbWFuZCAiZWNobyIpKSkpKSkK ICAgICAgICAgICAgIChpZ25vcmUKICAgICAgICAgICAgICAobmNvbmMgZXNoZWxsLXRoaXMt Y29tbWFuZC1ob29rCiAgICAgICAgICAgICAgICAgICAgIChsaXN0CiAgICAgICAgICAgICAg ICAgICAgICAjJyhsYW1iZGEgbmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGV0 ZS1maWxlICIvdG1wL1FxUEZ3byIpKSkpKQogICAgICAgICAgICAgKGVzaGVsbC1hcHBseS1p bmRpY2VzICIvdG1wL1FxUEZ3byIgaW5kaWNlcyBuaWwpKSkpKSkpCiAgICAoZXNoZWxsLW5h bWVkLWNvbW1hbmQKICAgICAoZXNoZWxsLWNvbmNhdCBuaWwgIioiICJjYXQiKSkpKSkK --------------1679FDC9C3768559027CA3F9-- From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 03:30:27 2022 Received: (at 57129) by debbugs.gnu.org; 14 Aug 2022 07:30:27 +0000 Received: from localhost ([127.0.0.1]:35719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN84p-00014r-DZ for submit@debbugs.gnu.org; Sun, 14 Aug 2022 03:30:27 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oN84m-00014Z-QX for 57129@debbugs.gnu.org; Sun, 14 Aug 2022 03:30:25 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:41256) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oN84h-0001je-Cs; Sun, 14 Aug 2022 03:30:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=hTx1+YY9mnnSi2UQLyjmHsrq5eQSJaRSMMpS3QoY3Nk=; b=M0OmwcWm++w0Xrd9G0F4 8hokq02LmY8cfuQNxXRTJcdwZuuAchPVTw53yAhuGvZU9nfYHIkSciuK2BBzk0KIP98F55wGJjrr8 afVO+k+6S0e6gzZlu1736cyhD/nPlmUxzIqTZ2aiKlTJutK4WLvnocaSuEGflEervycugsshmhKWE qoaIajeNmNgcm56nHvK8fFgA2ECxaRpwrWRzHHU5AzcrphldoVqaAiZta8PmnJ6/gCNEVCVynxiB9 Pj8lwYL4mGHIzCdOp/XMrKPtKPgyqkzs5seFbfF42I6QEOiNoz4Y9Kpkepcc3cAyrK7q//0zeJZwS GXs9LgmOQTHntw==; Received: from [87.69.77.57] (port=3169 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oN84g-00060B-SS; Sun, 14 Aug 2022 03:30:19 -0400 Date: Sun, 14 Aug 2022 10:30:02 +0300 Message-Id: <837d3bl1tx.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> (message from Jim Porter on Sat, 13 Aug 2022 22:37:12 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Sat, 13 Aug 2022 22:37:12 -0700 > > > But then this fragment from the Eshell manual: > > > > The command can be either an Elisp function or an external command. > > Eshell looks first for an alias (*note Aliases::) with the same name as > > the command, then a built-in (*note Built-ins::) or a function with the > > same name; if there is no match, it then tries to execute it as an > > external command. > > > > seems to be inaccurate? Since 'format' exists as a built-in command, > > why did Eshell in this case invoke the external command instead? > > "Built-in" in that part of the manual refers to a function named > 'eshell/FOO'. If you run "FOO" as an Eshell command, it will check for > 'eshell/FOO' before an external command on your system. The manual could > probably stand to be improved here. The manual definitely should be clarified in that matter, because: d:/gnu/git/emacs/trunk/src $ which format format is a built-in function in ‘C source code’. To me this says that 'format' is a built-in command, and the manual says such commands should be invoked in preference to external commands. The "eshell/" part is not mentioned anywhere. > If you'd like to dig into this further yourself, you could try running > this command in Eshell: > > eshell-parse-command '*cat $ | *cat' > > That will print the Lisp form that the command gets converted to. I've > attached the result that I get in a recent Emacs 29 build on GNU/Linux. I get the same output, with 2 exceptions: . the name of the temporary file is different . instead of a simple string here: (eshell-set-output-handle 1 'overwrite "/tmp/QqPFwo")) I get a file name split into several parts, which are then concatenated by eshell-concat: (eshell-set-output-handle 1 'overwrite (eshell-extended-glob (eshell-concat nil "c:/DOCUME" "~" "1/Zaretzky/LOCALS" "~" "1/Temp/OIi8Wd"))) Any chance that the "~" parts here somehow get in the way? If not, any other thoughts? My main worry is that there's something here specific to how we invoke subprocesses, which you lately changed. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 14 17:40:18 2022 Received: (at 57129) by debbugs.gnu.org; 14 Aug 2022 21:40:18 +0000 Received: from localhost ([127.0.0.1]:40003 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNLLF-00052n-KK for submit@debbugs.gnu.org; Sun, 14 Aug 2022 17:40:17 -0400 Received: from mail-pg1-f170.google.com ([209.85.215.170]:46686) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNLLC-00052U-8v for 57129@debbugs.gnu.org; Sun, 14 Aug 2022 17:40:16 -0400 Received: by mail-pg1-f170.google.com with SMTP id d71so5120034pgc.13 for <57129@debbugs.gnu.org>; Sun, 14 Aug 2022 14:40:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=A7I56gc1B07T9YfRdFMxylcCVPj9jdFOrpU0dl4IB5Q=; b=HyBHc/HGNR2tdas7NsO5MoDPY+hVA3zns7M8xwkokytqCAGrxCVl8v2P6kAno+AYYH cSM3s2Q0qck9U6rleM1vwI/0kQUNq1/FbTMwBbs0lz02ICL9SLy8ludAX5KqpFrQIBFd hW7YdMr/tRlkoYCl2dMbYvqNpSBRcQ5bsK91ITXQkEcK+MuHbwvphOlr6z3fspsZE3Ta FZ0XZ3x5zJm9EiRKFGS3oOen9wK1Z427UJNkArJzkQp6w0LBvItYgf7MehddhBmyVs9b yEUf5IRH48nsPoXwuN0VA4pjAvdsXd+wPQMCywYYpb/GbO9vaGOCYThhbM7CstaArkf5 1ZTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=A7I56gc1B07T9YfRdFMxylcCVPj9jdFOrpU0dl4IB5Q=; b=IEgxcyohjtxyFmUKRbZjyQhsHuMmK0RIn0Z773TbqG6FaSRWC5RODdxr3TfEcsn5Q8 YQDghtLvy3QOQxn1e8b+rM46acbRq23UpgTZQ7zFe0hDxMexYQbPO52Df47QkdIMuaA1 xBmMe5AuadrhoEvYUZobtY4DyXNZCqq6rIe6RZE9WhRTuQWtH3JCKmZ3w2ovj7rlGssI p49GCwiMoBcImymhnUFk5SAhSDMA6WPQZQE5bJIGztyy6Zm6oWPgnTIjBgFcX1s2DK3k 2okQtCjpLGWVrJAqMU/X2XpmVsWMTdzKKtcXrwRpB54k5GU/Ybho74tIERLq9ZWvfRUY jsqA== X-Gm-Message-State: ACgBeo1r3LnCoXEIqgQwAEjU0Rl2dlwQKurrFqZwZb1xBCNvp0+2m65V 2Lfpqnq7GRWsUa0RhBWBFPXw31gwXf8= X-Google-Smtp-Source: AA6agR4bnQoMmIw93LqmOiRu4LxApIivU213FpKYFvdMJTUZkDRcr5Mw7UIp7eJ1SureCXaq92lUYQ== X-Received: by 2002:a05:6a00:22c6:b0:52f:4d67:b370 with SMTP id f6-20020a056a0022c600b0052f4d67b370mr13465479pfj.58.1660513208403; Sun, 14 Aug 2022 14:40:08 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id lk9-20020a17090b33c900b001df264610c4sm10762883pjb.0.2022.08.14.14.40.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Aug 2022 14:40:07 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> From: Jim Porter Message-ID: <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> Date: Sun, 14 Aug 2022 14:40:06 -0700 MIME-Version: 1.0 In-Reply-To: <837d3bl1tx.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/14/2022 12:30 AM, Eli Zaretskii wrote: > The manual definitely should be clarified in that matter, because: > > d:/gnu/git/emacs/trunk/src $ which format > format is a built-in function in ‘C source code’. > > To me this says that 'format' is a built-in command, and the manual > says such commands should be invoked in preference to external > commands. The "eshell/" part is not mentioned anywhere. I'll work on a fix for that. This is a little more complex than immediately apparent though, since Eshell also unfortunately uses the term "alias" to refer to two kinds of entities: 1) Command abbreviations created by the user using the 'alias' command, e.g. "alias ll 'ls -l'". These are sometimes called "command aliases", and are implemented in em-alias.el. 2) Lisp functions with names like 'eshell/FOO'. These are sometimes called "alias functions", and are implemented in esh-cmd.el. For example, see 'eshell-find-alias-function', which checks if 'eshell/FOO' exists. It would probably be good to fix all this terminology for once and for all. > I get the same output, with 2 exceptions: > > . the name of the temporary file is different > . instead of a simple string here: > > (eshell-set-output-handle 1 'overwrite "/tmp/QqPFwo")) > > I get a file name split into several parts, which are then > concatenated by eshell-concat: > > (eshell-set-output-handle 1 'overwrite > (eshell-extended-glob > (eshell-concat nil "c:/DOCUME" "~" "1/Zaretzky/LOCALS" "~" "1/Temp/OIi8Wd"))) > > Any chance that the "~" parts here somehow get in the way? It's possible. I think Eshell is trying to ensure that the "~" doesn't get parsed as "home directory" here. But it could be doing something wrong there. I did also touch 'eshell-concat' not too long ago, so I might have broken something there. > If not, any other thoughts? My main worry is that there's something > here specific to how we invoke subprocesses, which you lately changed. You could try some Eshell commands that don't use subprocesses to see if that changes anything. For example, these should only use Lisp functions: ;; Should print "first" in the Eshell buffer: eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} | eshell/echo ;; Should open a temp file containing "first" in a new buffer: find-file $ find-file $ | eshell/echo The "eshell/" prefix probably isn't necessary, but I figured it's worth being extra-careful here while diagnosing the issue. I'm particularly interested in whether the third and fourth commands work. If they work, that would definitely point towards a bug in Eshell's subprocess handling; if not, then that would point to a bug in the "$" handling. I also filed bug#57216 to add ERT explainers that will print better error messages for most of the Eshell tests. That doesn't address the sometimes-vague documentation of the tests, but I'll do that separately. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 08:14:19 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 12:14:19 +0000 Received: from localhost ([127.0.0.1]:41147 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNYz4-0007eo-LH for submit@debbugs.gnu.org; Mon, 15 Aug 2022 08:14:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53282) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNYz0-0007ea-Ts for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 08:14:16 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:37722) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNYyu-0006fW-ST; Mon, 15 Aug 2022 08:14:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=tOZ1cU/d2Nc9bCi3YhX/8saTAdIO9H2VCRWEdMPCYIY=; b=a8HRQgHOTlE2l9g2Z2zR S0cHB+MA8KMedilhj+Jt0bO2GfTsS3XfYSFbj1vBFNfrpld5wz8SsIpsR8hOr/XKb+PLjs9i9Zegs X4j1/6rqEi6v7uscdOkMgxjjPP1u/HhpkL5ZSoSDwsi4fcKiWEYKmu+2oyi/QXF5N0C86bd6rlQ68 42lNcU6qgPOyqNBYMzsG9B1RezKsBKi6GDhioti+FIku0cI5v0S1nIZh61XOYkicUwn+/qGS14nh0 Uk1C8+6TUeoY5XEEepM84L9hPR+njnqO/N62BFp4gVBF/U7HohBvWcaWlDzuKlxAR8hxio3w2jxFN dndFaTsye4Ui6w==; Received: from [87.69.77.57] (port=1688 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNYyu-0004e1-Cq; Mon, 15 Aug 2022 08:14:08 -0400 Date: Mon, 15 Aug 2022 15:13:55 +0300 Message-Id: <831qthiu0s.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> (message from Jim Porter on Sun, 14 Aug 2022 14:40:06 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Sun, 14 Aug 2022 14:40:06 -0700 > > On 8/14/2022 12:30 AM, Eli Zaretskii wrote: > > The manual definitely should be clarified in that matter, because: > > > > d:/gnu/git/emacs/trunk/src $ which format > > format is a built-in function in ‘C source code’. > > > > To me this says that 'format' is a built-in command, and the manual > > says such commands should be invoked in preference to external > > commands. The "eshell/" part is not mentioned anywhere. > > I'll work on a fix for that. This is a little more complex than > immediately apparent though, since Eshell also unfortunately uses the > term "alias" to refer to two kinds of entities: > > 1) Command abbreviations created by the user using the 'alias' command, > e.g. "alias ll 'ls -l'". These are sometimes called "command > aliases", and are implemented in em-alias.el. > > 2) Lisp functions with names like 'eshell/FOO'. These are sometimes > called "alias functions", and are implemented in esh-cmd.el. For > example, see 'eshell-find-alias-function', which checks if > 'eshell/FOO' exists. > > It would probably be good to fix all this terminology for once and for all. Yes, that could well be a source of a lot of confusion. > You could try some Eshell commands that don't use subprocesses to see if > that changes anything. For example, these should only use Lisp functions: > > ;; Should print "first" in the Eshell buffer: > eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} > eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} | > eshell/echo > > ;; Should open a temp file containing "first" in a new buffer: > find-file $ > find-file $ | > eshell/echo > > The "eshell/" prefix probably isn't necessary, but I figured it's worth > being extra-careful here while diagnosing the issue. I'm particularly > interested in whether the third and fourth commands work. If they work, > that would definitely point towards a bug in Eshell's subprocess > handling; if not, then that would point to a bug in the "$" > handling. All the 4 commands do what you say they should do. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 12:14:13 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 16:14:13 +0000 Received: from localhost ([127.0.0.1]:43926 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNcjF-0008Is-A1 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 12:14:13 -0400 Received: from mail-pf1-f180.google.com ([209.85.210.180]:42976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNcjD-0008Id-62 for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 12:14:11 -0400 Received: by mail-pf1-f180.google.com with SMTP id f192so6981819pfa.9 for <57129@debbugs.gnu.org>; Mon, 15 Aug 2022 09:14:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=xWezpF9ofczCp9MQkHmEpZq5/AbdlIsYu/Q7fGVCvkw=; b=BJ9t5sz/yjYSF4Gu2rl/SkajoPb1i17tFULt6To2RjXB41pofj9K0wNxDg5BwcGivg 9vGiKRYuj4Af/jSMnQ+Tud27n9kHBdtVpTDMpnQcw1BZORaUnZD+zCkFixcrRQ2us4/c ld0izj1jfL0ZMI9T/DBvjjCRFlkhaYYic2VSGQWpXgOJ92L0ARMzvHhqbn8XtbNUcuz4 9P5xjXXUO0K4Hndo+rsREAod+Rrn3S6vW3kcev4oicvbY0ZqcdJa6wySIm92cmLRtVcW 9IjS7C3YR/miS5k/tvtjWhWqVy33PL8ak6eQz9kOHxbnvycSeYwty32+1rm500HZ8qjr mbEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=xWezpF9ofczCp9MQkHmEpZq5/AbdlIsYu/Q7fGVCvkw=; b=C9/KHHd5vdQLgB5foQlEvAAW8pV2tm7vsGKzHTGFRA/kryRN1xNtOPFzrkqA5vbtih iImpoUXyT3pHN/atDgj1XONNR3WZUQ9Vp6OHfMI6Z/EZ8JBRxjJbZgi1k//S2NPLPhL+ 5oY9RiBP6YZmCh+7P/ThWR6VZu0oK8gIiVaQVTDYmzqmpzxLD5cwNnlI9CszLlFOZybR 8JKcpFyKDJnzUZAXj8kStnTxWK53QPwHrOeQw3TPxBp+co6zLgzXHrIcJwGL0SJaYZ5O 2+DGvm/pu+HU9A6qqW6lQPado+RWQIAZvfConUU8m8G/PguaXjM9w6pR2wBCNzLVglHs WKGQ== X-Gm-Message-State: ACgBeo25JD43ZFYTn/zBUHjkzLtLQ1HUh/B2Ja1DJApveGbi3UcLKWJC HXrPS4V4gR6+ikpLjj/B3PjiWzmD36A= X-Google-Smtp-Source: AA6agR4XCaMIioUibg2bvlSU3v81bk+t9YWnJ7t/3VC9oYmWumsKpjF14Tqo37/tFSD0dvv9+8WvCA== X-Received: by 2002:a05:6a00:158b:b0:52e:6fe3:537d with SMTP id u11-20020a056a00158b00b0052e6fe3537dmr16868881pfk.51.1660580045215; Mon, 15 Aug 2022 09:14:05 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id a85-20020a621a58000000b0052abfc4b4a4sm6962182pfa.12.2022.08.15.09.14.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Aug 2022 09:14:04 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> From: Jim Porter Message-ID: <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> Date: Mon, 15 Aug 2022 09:14:04 -0700 MIME-Version: 1.0 In-Reply-To: <831qthiu0s.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/15/2022 5:13 AM, Eli Zaretskii wrote: >> Cc: larsi@gnus.org, 57129@debbugs.gnu.org >> From: Jim Porter >> Date: Sun, 14 Aug 2022 14:40:06 -0700 >> >> You could try some Eshell commands that don't use subprocesses to see if >> that changes anything. For example, these should only use Lisp functions: >> >> ;; Should print "first" in the Eshell buffer: >> eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} >> eshell/echo ${eshell/echo $eshell-in-pipeline-p | eshell/echo} | >> eshell/echo >> >> ;; Should open a temp file containing "first" in a new buffer: >> find-file $ >> find-file $ | >> eshell/echo >> >> The "eshell/" prefix probably isn't necessary, but I figured it's worth >> being extra-careful here while diagnosing the issue. I'm particularly >> interested in whether the third and fourth commands work. If they work, >> that would definitely point towards a bug in Eshell's subprocess >> handling; if not, then that would point to a bug in the "$" >> handling. > > All the 4 commands do what you say they should do. Hm, and I can't reproduce this on the prebuilt Emacs 29 snapshot from July 18, which is from just before I merged the changes to 'make-process', so it's definitely possible that this is due to those commits. Does reverting 4e59830bc0ab17cdbd85748b133c97837bed99e3 and d7b89ea4077d4fe677ba0577245328819ee79cdc fix the issue? I checked locally, and they should revert cleanly at least. It might also be interesting to revert just the changes from d7b89ea in lisp/eshell/esh-proc.el. I don't think any of the changes I made to the C sources should impact this, since a) I was careful to keep the logic as close to before as I could, and b) it just changes the logic for creating a PTY, which doesn't work on MS Windows anyway. I did notice one weird issue though, and maybe this has something to do with the problem: on MS Windows, if I run any command with a $, the second and subsequent times, it warns me about changing the temp file, e.g.: 3Zz80A has changed since visited or saved. Save anyway? (yes or no) This probably shouldn't do that, and it could definitely cause issues in the tests, which can't prompt the user for things like that. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 12:49:26 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 16:49:26 +0000 Received: from localhost ([127.0.0.1]:43952 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNdHJ-0000oc-Qo for submit@debbugs.gnu.org; Mon, 15 Aug 2022 12:49:26 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53466) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNdHF-0000oM-HO for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 12:49:24 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39314) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNdHA-0001H6-14; Mon, 15 Aug 2022 12:49:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=s8vBEmJuz4w4qYkEUqhyjEaMg2Iq2W9XO8ltl59fGYU=; b=oWrMpT9ndt08 HaDEo2TVTfTRVB9zI72/QcX1YdxCkg5eIEFEtI7r9Nzvtg3dX/GZJwyluomKr5Qab84QFbbJc2gyp SGDtjOW3+uOajWhY0U8/WaELhl5B3dYKxH2+BAJYE2/BJw56ZbZDHZ/uassqY+YI/yHzHztABou7I OqviPsSTVzd812VcTqqC8k+Bvgr3TKZevwOYHttYZNa0iszL1bSLqBIL4takZIY8CmW1CSamGVqMp axcOHcSwgIs9G+e3AGduagIQ2dR7YFpMg6h6NXOp5SJyR+A4xxyI2dI/Se+SRXdqrj72+Gy1Oqgbm Q3J8SgLB51eAKdGGCu38mQ==; Received: from [87.69.77.57] (port=2747 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNdH9-0005lQ-DA; Mon, 15 Aug 2022 12:49:15 -0400 Date: Mon, 15 Aug 2022 19:49:00 +0300 Message-Id: <83pmh1h2pv.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> (message from Jim Porter on Mon, 15 Aug 2022 09:14:04 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Mon, 15 Aug 2022 09:14:04 -0700 > > > All the 4 commands do what you say they should do. > > Hm, and I can't reproduce this on the prebuilt Emacs 29 snapshot from > July 18, which is from just before I merged the changes to > 'make-process', so it's definitely possible that this is due to those > commits. > > Does reverting 4e59830bc0ab17cdbd85748b133c97837bed99e3 and > d7b89ea4077d4fe677ba0577245328819ee79cdc fix the issue? I checked > locally, and they should revert cleanly at least. > > It might also be interesting to revert just the changes from d7b89ea in > lisp/eshell/esh-proc.el. I don't think any of the changes I made to the > C sources should impact this, since a) I was careful to keep the logic > as close to before as I could, and b) it just changes the logic for > creating a PTY, which doesn't work on MS Windows anyway. None of these reverts fixes the issue. I tried both the tests in eshell-tests.el and the problematic command: *cat $ | *cat > I did notice one weird issue though, and maybe this has something to do > with the problem: on MS Windows, if I run any command with a > $, the second and subsequent times, it warns me about > changing the temp file, e.g.: > > 3Zz80A has changed since visited or saved. Save anyway? (yes or no) > > This probably shouldn't do that, and it could definitely cause issues in > the tests, which can't prompt the user for things like that. I guess this means you somehow reuse the same temporary file on MS-Windows? Maybe change the test a bit so that the file name definitely differs? From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:09:00 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 18:09:00 +0000 Received: from localhost ([127.0.0.1]:44017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeWJ-0002mI-V3 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 14:09:00 -0400 Received: from mail-pf1-f175.google.com ([209.85.210.175]:36717) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeWE-0002lw-2P for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 14:08:58 -0400 Received: by mail-pf1-f175.google.com with SMTP id a22so6656903pfg.3 for <57129@debbugs.gnu.org>; Mon, 15 Aug 2022 11:08:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=QwF5+71Fr54YILFVnFOUDs1tU7J+xO3wGJJcT+AJs60=; b=ZRZHboGq9eGtjP/AIIFOqSzdEkRiiZAu70kh761zQ7l0pxfUTpkLim613a+7Fbc8yU 3jhaDyOJm1fcwurcI4Sn2d7GNDaMmtAxuwHRU2bHlmBYC8P+iQuJEkfxbHjWAyU5F00R gi1cWxm5cWBkR6SSoMfXaz/49z+ghsVkoLVsVjlwkrHf9EYCXoNqYoOXX5cqV7IfRpxQ krGlxIWkv4y+NEPeeSBWUFW9ZaYM/2lcXwD0O8DJtVXt9S+rwpZy0XL9nav873+zh6Df 8KYEbaXfDpAOSPQhiKVkNFBcGRLyIgxGnHzPnqs0leMr0D+RnfqNU1ExH0Lari4lGIOm AYfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=QwF5+71Fr54YILFVnFOUDs1tU7J+xO3wGJJcT+AJs60=; b=7olAVCFY+YwTAn0sk+xOMsWcakB1fI3/00lwSDIexC9FkY3J+OWo0mCxnzOU2KTEKP /Y+SN9qBC33dPj9b2YRrXIx/Tgq0bRExkO24ishnNMS2XwEPN7ZOLl1g8708C4ivbPij S7Z6X1+jrtGeu69uEOesh9jR6TeXiLmDZzXed8DijSMSpb71ArSlA9VuRPTAOi3MnIY3 nr+lEkL6Ohv6AknnUFOfC2hhq1tYsAVB4ajt7OOwSYH0hyIYGnoAi/Zdzx+73DH0G79u NhJZSrcGmEt6kGvmltvRTKuuGPpBNLyuowu58O28kZb/Y8gqbBqaTrSeQ2ueeD9NCluU jRFg== X-Gm-Message-State: ACgBeo3GVqjZrnGqsmyZnvWHNgQ5OyiFN5fECt2so+VkWT5Ye+8uzJBh rV6MGGrX7jDgpRyRF8QhMqn1Q7g9pOw= X-Google-Smtp-Source: AA6agR4olejpgnJ/QqRfsYwkROVw0BXTt/ZCVXv0f7D0zjNnJdbKAwr3wn8VnHyLpfGHcJTY0nMIiA== X-Received: by 2002:a63:80c7:0:b0:41c:62dd:2109 with SMTP id j190-20020a6380c7000000b0041c62dd2109mr14427834pgd.449.1660586928101; Mon, 15 Aug 2022 11:08:48 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id p23-20020a63e657000000b0041d02809facsm6101001pgj.79.2022.08.15.11.08.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Aug 2022 11:08:46 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> From: Jim Porter Message-ID: Date: Mon, 15 Aug 2022 11:08:45 -0700 MIME-Version: 1.0 In-Reply-To: <83pmh1h2pv.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/15/2022 9:49 AM, Eli Zaretskii wrote: > None of these reverts fixes the issue. I tried both the tests in > eshell-tests.el and the problematic command: > > *cat $ | *cat Thanks for testing. I might have to get an MS-Windows dev environment set up to dig into this further. I'm a bit worried that this is related to bug#55590, where I had to jump through some awkward hoops to fix a somewhat-related issue with Eshell subcommands. I think that's due to 'eshell-do-eval' being written before lexical binding existed, and so the variable scoping doesn't work quite as expected. It could be that you only see this failure when using external commands due to some differences in timing. If that's the problem here too, it would be a pain to fix (but it would likely also mean that this bug has been present for a long time, and my tests/fixes have just brought it to the surface). As mentioned in bug#55590, I think it'd be nice to rip out 'eshell-do-eval' and replace it with the generator.el machinery, since they're conceptually pretty similar. That's easier said than done though... >> I did notice one weird issue though, and maybe this has something to do >> with the problem: on MS Windows, if I run any command with a >> $, the second and subsequent times, it warns me about >> changing the temp file, e.g.: >> >> 3Zz80A has changed since visited or saved. Save anyway? (yes or no) >> >> This probably shouldn't do that, and it could definitely cause issues in >> the tests, which can't prompt the user for things like that. > > I guess this means you somehow reuse the same temporary file on > MS-Windows? Maybe change the test a bit so that the file name > definitely differs? I need to investigate this a bit further, since on GNU/Linux, I get a new temp file every time. I think that's the behavior we want, or failing that, we could at least kill the temp file's buffer after we're done with it. I don't think there's much value in leaving it around. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:21:38 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 18:21:38 +0000 Received: from localhost ([127.0.0.1]:44040 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeiY-00036U-50 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 14:21:38 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45530) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeiW-00036G-3V for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 14:21:36 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46538) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNeiQ-000892-Ok; Mon, 15 Aug 2022 14:21:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=hYTrStJEMsp4EL75X3T6vSi6DafPjyJbg0FyYAsmp2g=; b=TX9cQKt0ySxi JZIsqXQiihgspt31mo/9A5qsXgTre7ZHvkEbS/i7HDAGtlZXdb4L6laAuDPmPJN+KxfKv6pxbgTTX Yj0BKqaEqjgivblUOOyFW7a0xXmK6hoAQoqlwrY0wL2y+qp2Zf9tCKStGoMe/Wlci+jtLuZ0aCAIN Evp0yTnFJo82y5u4EO8C4hvnLtelJV0y5JFinisGPP6uFu53M7xfxvPLFfqKUy4PpLAVcQqJGBTyy U6zU5Led+lAicWpHvCy7sLGGbmcqOSyNLS5tURSSvXKn6MXWHOVQPtKyCMvJ6TcGDG5JLk4grOrE6 fMWXkp4z0dBpYK/7vWYP4A==; Received: from [87.69.77.57] (port=4408 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNeiQ-0006KI-80; Mon, 15 Aug 2022 14:21:30 -0400 Date: Mon, 15 Aug 2022 21:21:16 +0300 Message-Id: <83lerpgyg3.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: (message from Jim Porter on Mon, 15 Aug 2022 11:08:45 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Mon, 15 Aug 2022 11:08:45 -0700 > > >> I did notice one weird issue though, and maybe this has something to do > >> with the problem: on MS Windows, if I run any command with a > >> $, the second and subsequent times, it warns me about > >> changing the temp file, e.g.: > >> > >> 3Zz80A has changed since visited or saved. Save anyway? (yes or no) > >> > >> This probably shouldn't do that, and it could definitely cause issues in > >> the tests, which can't prompt the user for things like that. > > > > I guess this means you somehow reuse the same temporary file on > > MS-Windows? Maybe change the test a bit so that the file name > > definitely differs? > > I need to investigate this a bit further, since on GNU/Linux, I get a > new temp file every time. Can you tell how you create these temporary files? Or point me to the code which does that? From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:30:17 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 18:30:17 +0000 Received: from localhost ([127.0.0.1]:44057 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeqv-0003Kt-B8 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 14:30:17 -0400 Received: from mail-pg1-f172.google.com ([209.85.215.172]:35418) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNeqt-0003Kb-5P for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 14:30:15 -0400 Received: by mail-pg1-f172.google.com with SMTP id r69so7187843pgr.2 for <57129@debbugs.gnu.org>; Mon, 15 Aug 2022 11:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=tu/Onxd1QMPEsB+4U6ws53Uxk/EVvZWRxmk4NCq/i60=; b=HDHJp2rN5Z2hJov+e/ELvjkvz82Nlzc9cNBd8hMdVkmrUT5NuDbxMVUohK2HqUkqlL HhTrgMnUNrkLU3PX+DO6z4pKrT3efmTYUivIpiUEGn9OF2osOuYXLEZNIdkraAOJTesz YIQA/a6eWDxRejigASnKIsQUqRhLAEMKoHAvhQgZqElezFBwOnHIlFGm544nmxJqa+gE stAvysHdaPpoqJgqSgEBMv/wSHWO+R6yvJTk5h6RTK606b+MfAtC9mjm67WLc6Uy3/zs sZL0RzIHO92HcVy2k43W2BP9H3oagz5yAgpKD+FX+0MDUjvtljikCNhIVGh319belJ6D +EDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=tu/Onxd1QMPEsB+4U6ws53Uxk/EVvZWRxmk4NCq/i60=; b=rnb6WoOUhmEsN3tU9bri9mS16GcOGlXaFsnilAxvxZnSBUuHna/OV9ZSKKKo90kO94 NNDQuPyCWwNZQ8u986boC6T+JC84D57pXAsxe4P6QsAwX3LTUBP2XKdQEkkwdUaIhi5W MK/nRievyIZpviolNMePCozj67Nw2hItqB2H0YnWJLUKwr6q5BVbt0TpUcNDHFU48CYg grFwJGaEkd3LJi1OrPFLq4G18gAGkKkA8bqs3O5q4AczYhi8z2APPZa8H5Cs30YvuJTM UUAh4M1PHB1+gaQwyp4+ba58eJ95mZyPL6/aF5Uvviak41i2yg2kTmLRbPrms45crg+j 4Utg== X-Gm-Message-State: ACgBeo2UEey+VF2y3n+jKqlic7f56G3N8/fElz/wm4mQbehPpt2rM8J5 X8h2creqnjLNpWAeqHWvoScZFErgn3g= X-Google-Smtp-Source: AA6agR68CUcnnaMWmw4a7Pd1TqgSWE4Z1KY8XVNJRyS9/KZfw9jDnZ4dZem/8IG3TjREVnR79VPRLA== X-Received: by 2002:a05:6a00:a81:b0:530:2967:dc48 with SMTP id b1-20020a056a000a8100b005302967dc48mr17459320pfl.38.1660588209412; Mon, 15 Aug 2022 11:30:09 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id k15-20020a170902c40f00b0016dd6929af5sm7326395plk.206.2022.08.15.11.30.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Aug 2022 11:30:08 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> From: Jim Porter Message-ID: Date: Mon, 15 Aug 2022 11:30:07 -0700 MIME-Version: 1.0 In-Reply-To: <83lerpgyg3.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/15/2022 11:21 AM, Eli Zaretskii wrote: >> Cc: larsi@gnus.org, 57129@debbugs.gnu.org >> From: Jim Porter >> Date: Mon, 15 Aug 2022 11:08:45 -0700 >> >> I need to investigate this a bit further, since on GNU/Linux, I get a >> new temp file every time. > > Can you tell how you create these temporary files? Or point me to the > code which does that? The temp files are created by Eshell in lisp/eshell/esh-var.el in the function 'eshell-parse-variable-ref', specifically in the part starting with: (eq (char-after) ?\<) From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 14:58:54 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 18:58:54 +0000 Received: from localhost ([127.0.0.1]:44079 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNfIb-00042X-W9 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 14:58:54 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52678) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNfIX-00042G-Ne for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 14:58:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:38904) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNfIQ-0005dP-Ss; Mon, 15 Aug 2022 14:58:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=hlOkUqVn5sTK7azbt1XdJNamQtr4iN+/0M+q8pMCImI=; b=Wei+1D+Jeeza 7787bDaW9/mDpMTlsYQcxhBfkosE5AjAyQSfC0BDBJTP77/cd3LLm2M8dcx80pkiwpBELuG2cYUvn mnf2LCfjU7jY2SU/vKhx3lBgTwAf24OiThulf7FTHEvEoXxtMwFoFV3MpNWplt0Mw1MIa4VETxWOm sV+Xt769PH/3ucAZa3tYteihIsqsNUhRkWLVsLROj812nGh03T9qZms8olIJSXYjJJR4atZvPyLiw 1Z58kthHIfd5kNOeKaEdnkMi5aMT2zvGSZO2pdyD9AyfAraBs0rZSndav7XePebRu0NH031MF91bj C6r3dGZzcadOgYDQu+vynA==; Received: from [87.69.77.57] (port=2701 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNfIQ-0008O6-8D; Mon, 15 Aug 2022 14:58:42 -0400 Date: Mon, 15 Aug 2022 21:58:28 +0300 Message-Id: <83ilmtgwq3.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter , Paul Eggert In-Reply-To: (message from Jim Porter on Mon, 15 Aug 2022 11:30:07 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Mon, 15 Aug 2022 11:30:07 -0700 > > >> I need to investigate this a bit further, since on GNU/Linux, I get a > >> new temp file every time. > > > > Can you tell how you create these temporary files? Or point me to the > > code which does that? > > The temp files are created by Eshell in lisp/eshell/esh-var.el in the > function 'eshell-parse-variable-ref', specifically in the part starting > with: > > (eq (char-after) ?\<) Ah, okay. It's a (mis)feature of Gnulib's gen_tempname function (which is the guts of make-temp-file) in its implementation for MS-Windows (and maybe other platforms?): it always begins from the same "random" characters in the file name, and only generates other random characters if there's already a file by that name. So if you are careful and delete the temporary file each time after usage, and never need more than one temporary file at the same time, you will get the same name every call. From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 16:55:50 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 20:55:50 +0000 Received: from localhost ([127.0.0.1]:44202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNh7l-00070c-6K for submit@debbugs.gnu.org; Mon, 15 Aug 2022 16:55:50 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:36318) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNh7f-00070L-Gs for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 16:55:47 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3D80A160149; Mon, 15 Aug 2022 13:55:37 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id iz8g08aNcE6e; Mon, 15 Aug 2022 13:55:35 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BD060160139; Mon, 15 Aug 2022 13:55:35 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4OIYDawA6Uhx; Mon, 15 Aug 2022 13:55:35 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 7FCE2160129; Mon, 15 Aug 2022 13:55:35 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------z02mCF0yqnIghhs3seMwKK6j" Message-ID: Date: Mon, 15 Aug 2022 13:55:35 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <83ilmtgwq3.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: Jim Porter , larsi@gnus.org, Gnulib bugs , 57129@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 (---) This is a multi-part message in MIME format. --------------z02mCF0yqnIghhs3seMwKK6j Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/15/22 11:58, Eli Zaretskii wrote: > Ah, okay. It's a (mis)feature of Gnulib's gen_tempname function > (which is the guts of make-temp-file) in its implementation for > MS-Windows (and maybe other platforms?): it always begins from the > same "random" characters in the file name, and only generates other > random characters if there's already a file by that name. Not sure I'd call it a misfeature, as gen_tempname is generating a uniquely-named file that is exclusive to Emacs, which is all it's supposed to do. I do see a comment saying that gen_tempname generates "hard-to-predict" names, which as you note is not correct on MS-DOS, nor even strictly speaking on all POSIX platforms. I installed the first attached patch into Gnulib to fix that comment. I'm not sure I'm entirely understanding the Emacs problem, but it appears to be that Emacs has its own set of filenames that it thinks it knows about, and Emacs wants the new temporary file's name to not be a member of that set. If I'm right, does the second attached patch (this patch is to Emacs) address the problem? I haven't tested or installed it. --------------z02mCF0yqnIghhs3seMwKK6j Content-Type: text/x-patch; charset=UTF-8; name="0001-tempname-remove-incorrect-comment.patch" Content-Disposition: attachment; filename="0001-tempname-remove-incorrect-comment.patch" Content-Transfer-Encoding: base64 RnJvbSBhN2VmMjFiZjM0N2RhNWUzYThiNTQ5MmI4NDlkNjMzZWYzMjUyZDYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE1IEF1ZyAyMDIyIDEzOjA0OjA4IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gdGVtcG5hbWU6IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudAoKKiBsaWIvdGVtcG5hbWUu YywgbGliL3RlbXBuYW1lLmg6IFJlbW92ZSBpbmNvcnJlY3QgY29tbWVudCwKYXMgdGhlIG5h bWVzIGFyZSBub3QgbmVjZXNzYXJpbHkgaGFyZCB0byBwcmVkaWN0IChCdWcjNTcxMjkpLgot LS0KIENoYW5nZUxvZyAgICAgIHwgNiArKysrKysKIGxpYi90ZW1wbmFtZS5jIHwgMiArLQog bGliL3RlbXBuYW1lLmggfCAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK aW5kZXggYmExNmI1MzhmNS4uMWUyMGRiN2UzNyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkgQEAKKzIwMjItMDgtMTUgIFBhdWwgRWdnZXJ0 ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJdGVtcG5hbWU6IHJlbW92ZSBpbmNvcnJlY3Qg Y29tbWVudAorCSogbGliL3RlbXBuYW1lLmMsIGxpYi90ZW1wbmFtZS5oOiBSZW1vdmUgaW5j b3JyZWN0IGNvbW1lbnQsCisJYXMgdGhlIG5hbWVzIGFyZSBub3QgbmVjZXNzYXJpbHkgaGFy ZCB0byBwcmVkaWN0IChCdWcjNTcxMjkpLgorCiAyMDIyLTA4LTE0ICBTaW1vbiBKb3NlZnNz b24gIDxzaW1vbkBqb3NlZnNzb24ub3JnPgogCiAJYm9vdHN0cmFwLmNvbmY6IFVzZSBwcm9w ZXIgc2hlbGwgbWFya2VyIGZvciBFbWFjcy4KZGlmZiAtLWdpdCBhL2xpYi90ZW1wbmFtZS5j IGIvbGliL3RlbXBuYW1lLmMKaW5kZXggNWZjNWVmZTAzMS4uNzVhOTM5ZTU3MSAxMDA2NDQK LS0tIGEvbGliL3RlbXBuYW1lLmMKKysrIGIvbGliL3RlbXBuYW1lLmMKQEAgLTIxMyw3ICsy MTMsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBsZXR0ZXJzW10gPQogICAgICAgICAgICAgICAg ICAgICAgICAgYW5kIHJldHVybiBhIHJlYWQtd3JpdGUgZmQuICBUaGUgZmlsZSBpcyBtb2Rl IDA2MDAuCiAgICBfX0dUX0RJUjogICAgICAgICAgICBjcmVhdGUgYSBkaXJlY3RvcnksIHdo aWNoIHdpbGwgYmUgbW9kZSAwNzAwLgogCi0gICBXZSB1c2UgYSBjbGV2ZXIgYWxnb3JpdGht IHRvIGdldCBoYXJkLXRvLXByZWRpY3QgbmFtZXMuICovCisgICAqLwogI2lmZGVmIF9MSUJD CiBzdGF0aWMKICNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliL3RlbXBuYW1lLmggYi9saWIvdGVt cG5hbWUuaAppbmRleCBjMTcyODIwZjdmLi41ZTNjNWUxNTUwIDEwMDY0NAotLS0gYS9saWIv dGVtcG5hbWUuaAorKysgYi9saWIvdGVtcG5hbWUuaApAQCAtNDgsNyArNDgsNyBAQCBleHRl cm4gIkMiIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCByZXR1cm4gYSByZWFkLXdy aXRlIGZkLiAgVGhlIGZpbGUgaXMgbW9kZSAwNjAwLgogICAgR1RfRElSOiAgICAgICAgICAg ICAgY3JlYXRlIGEgZGlyZWN0b3J5LCB3aGljaCB3aWxsIGJlIG1vZGUgMDcwMC4KIAotICAg V2UgdXNlIGEgY2xldmVyIGFsZ29yaXRobSB0byBnZXQgaGFyZC10by1wcmVkaWN0IG5hbWVz LiAqLworICAgKi8KIGV4dGVybiBpbnQgZ2VuX3RlbXBuYW1lIChjaGFyICp0bXBsLCBpbnQg c3VmZml4bGVuLCBpbnQgZmxhZ3MsIGludCBraW5kKTsKIC8qIFNpbWlsYXIsIGV4Y2VwdCBY X1NVRkZJWF9MRU4gZ2l2ZXMgdGhlIG51bWJlciBvZiBYcy4gICovCiBleHRlcm4gaW50IGdl bl90ZW1wbmFtZV9sZW4gKGNoYXIgKnRtcGwsIGludCBzdWZmaXhsZW4sIGludCBmbGFncywg aW50IGtpbmQsCi0tIAoyLjM0LjEKCg== --------------z02mCF0yqnIghhs3seMwKK6j Content-Type: text/x-patch; charset=UTF-8; name="0001-Don-t-create-temp-file-with-same-name-as-visited.patch" Content-Disposition: attachment; filename*0="0001-Don-t-create-temp-file-with-same-name-as-visited.patch" Content-Transfer-Encoding: base64 RnJvbSBhMDc3Njk4NGJjMzYzMGM4YzBiZDU3YjNmZDFhY2NhMWYwYjhjYjVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDE1IEF1ZyAyMDIyIDEyOjU1OjQwIC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gPT9VVEYtOD9xP0Rvbj1FMj04MD05OXQ9MjBjcmVhdGU9MjB0ZW1wPTIwZmlsZT0yMHdp dGg9MjBzPz0KID0/VVRGLTg/cT9hbWU9MjBuYW1lPTIwYXM9MjB2aXNpdGVkPz0KTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNv bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClByb2JsZW0gcmVwb3J0ZWQgYnkgSmlt IFBvcnRlciAoQnVnIzU3MTI5IzQ3KS4KKiBzcmMvZmlsZWlvLmMgKGNyZWF0ZV90ZW1wbmFt ZSk6IE5ldyBmdW5jdGlvbi4KKEZtYWtlX3RlbXBfZmlsZV9pbnRlcm5hbCk6IFVzZSBpdC4K LS0tCiBzcmMvZmlsZWlvLmMgfCAyOSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQog MSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2ZpbGVpby5jIGIvc3JjL2ZpbGVpby5jCmluZGV4IDk2OTdmNmM4Y2Yu LjRmMTM0YmJmYTkgMTAwNjQ0Ci0tLSBhL3NyYy9maWxlaW8uYworKysgYi9zcmMvZmlsZWlv LmMKQEAgLTY3Nyw2ICs2NzcsMjcgQEAgREVGVU4gKCJkaXJlY3RvcnktZmlsZS1uYW1lIiwg RmRpcmVjdG9yeV9maWxlX25hbWUsIFNkaXJlY3RvcnlfZmlsZV9uYW1lLAogICByZXR1cm4g dmFsOwogfQogCisvKiBDcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZSB3aG9zZSBlbmNvZGVkIG5h bWUgaXMgRU5DT0RFRF9GSUxFTkFNRSwgYW5kCisgICB3aG9zZSBkZWNvZGVkIG5hbWUgaXMg KihMaXNwX09iamVjdCAqKSBGTEFHUy4gIFByZXRlbmQgdGhlIGZpbGUKKyAgIGFscmVhZHkg ZXhpc3RzIGlmIGEgbGl2ZSBidWZmZXIgaXMgdmlzaXRpbmcgaXQuICBSZXR1cm4gYSBmaWxl CisgICBkZXNjcmlwdG9yIGlmIHN1Y2Nlc3NmdWwsIC0xIChzZXR0aW5nIGVycm5vKSBvdGhl cndpc2UuICAqLworc3RhdGljIGludAorY3JlYXRlX3RlbXBuYW1lIChjaGFyICplbmNvZGVk X2ZpbGVuYW1lLCB2b2lkICpmbGFncykKK3sKKyAgTGlzcF9PYmplY3QgKmFkZHZhbCA9IGZs YWdzOworICBMaXNwX09iamVjdCBmaWxlbmFtZSA9ICphZGR2YWw7CisKKyAgaWYgKCFOSUxQ IChGZ2V0X2ZpbGVfYnVmZmVyIChmaWxlbmFtZSkpKQorICAgIHsKKyAgICAgIGVycm5vID0g RUVYSVNUOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICByZXR1cm4gb3BlbiAoZW5j b2RlZF9maWxlbmFtZSwKKwkgICAgICAgT19SRFdSIHwgT19CSU5BUlkgfCBPX0NMT0VYRUMg fCBPX0NSRUFUIHwgT19FWENMLAorCSAgICAgICBTX0lSVVNSIHwgU19JV1VTUik7Cit9CisK IERFRlVOICgibWFrZS10ZW1wLWZpbGUtaW50ZXJuYWwiLCBGbWFrZV90ZW1wX2ZpbGVfaW50 ZXJuYWwsCiAgICAgICAgU21ha2VfdGVtcF9maWxlX2ludGVybmFsLCA0LCA0LCAwLAogICAg ICAgIGRvYzogLyogR2VuZXJhdGUgYSBuZXcgZmlsZSB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRo IFBSRUZJWCwgYSBzdHJpbmcuCkBAIC03MDcsMTggKzcyOCwxOCBAQCBERUZVTiAoIm1ha2Ut dGVtcC1maWxlLWludGVybmFsIiwgRm1ha2VfdGVtcF9maWxlX2ludGVybmFsLAogICBtZW1j cHkgKGRhdGEsIFNTREFUQSAoZW5jb2RlZF9wcmVmaXgpLCBwcmVmaXhfbGVuKTsKICAgbWVt c2V0IChkYXRhICsgcHJlZml4X2xlbiwgJ1gnLCBuWCk7CiAgIG1lbWNweSAoZGF0YSArIHBy ZWZpeF9sZW4gKyBuWCwgU1NEQVRBIChlbmNvZGVkX3N1ZmZpeCksIHN1ZmZpeF9sZW4pOwor ICBMaXNwX09iamVjdCBkdmFsID0gREVDT0RFX0ZJTEUgKHZhbCksIGRkdmFsID0gZHZhbDsK ICAgaW50IGtpbmQgPSAoTklMUCAoZGlyX2ZsYWcpID8gR1RfRklMRQogCSAgICAgIDogQkFT RV9FUSAoZGlyX2ZsYWcsIG1ha2VfZml4bnVtICgwKSkgPyBHVF9OT0NSRUFURQogCSAgICAg IDogR1RfRElSKTsKLSAgaW50IGZkID0gZ2VuX3RlbXBuYW1lIChkYXRhLCBzdWZmaXhfbGVu LCBPX0JJTkFSWSB8IE9fQ0xPRVhFQywga2luZCk7CisgIGludCBmZCA9IHRyeV90ZW1wbmFt ZSAoZGF0YSwgc3VmZml4X2xlbiwgJmRkdmFsLCBjcmVhdGVfdGVtcG5hbWUpOwogICBib29s IGZhaWxlZCA9IGZkIDwgMDsKICAgaWYgKCFmYWlsZWQpCiAgICAgewogICAgICAgc3BlY3Bk bF9yZWYgY291bnQgPSBTUEVDUERMX0lOREVYICgpOwogICAgICAgcmVjb3JkX3Vud2luZF9w cm90ZWN0X2ludCAoY2xvc2VfZmlsZV91bndpbmQsIGZkKTsKLSAgICAgIHZhbCA9IERFQ09E RV9GSUxFICh2YWwpOwogICAgICAgaWYgKFNUUklOR1AgKHRleHQpICYmIFNCWVRFUyAodGV4 dCkgIT0gMCkKLQl3cml0ZV9yZWdpb24gKHRleHQsIFFuaWwsIHZhbCwgUW5pbCwgUW5pbCwg UW5pbCwgUW5pbCwgZmQpOworCXdyaXRlX3JlZ2lvbiAodGV4dCwgUW5pbCwgZHZhbCwgUW5p bCwgUW5pbCwgUW5pbCwgUW5pbCwgZmQpOwogICAgICAgZmFpbGVkID0gTklMUCAoZGlyX2Zs YWcpICYmIGVtYWNzX2Nsb3NlIChmZCkgIT0gMDsKICAgICAgIC8qIERpc2NhcmQgdGhlIHVu d2luZCBwcm90ZWN0LiAgKi8KICAgICAgIHNwZWNwZGxfcHRyID0gc3BlY3BkbF9yZWZfdG9f cHRyIChjb3VudCk7CkBAIC03MzMsNyArNzU0LDcgQEAgREVGVU4gKCJtYWtlLXRlbXAtZmls ZS1pbnRlcm5hbCIsIEZtYWtlX3RlbXBfZmlsZV9pbnRlcm5hbCwKIAl9OwogICAgICAgcmVw b3J0X2ZpbGVfZXJyb3IgKGtpbmRfbWVzc2FnZVtraW5kXSwgcHJlZml4KTsKICAgICB9Ci0g IHJldHVybiB2YWw7CisgIHJldHVybiBkdmFsOwogfQogCiAKLS0gCjIuMzcuMQoK --------------z02mCF0yqnIghhs3seMwKK6j-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 15 17:22:35 2022 Received: (at 57129) by debbugs.gnu.org; 15 Aug 2022 21:22:35 +0000 Received: from localhost ([127.0.0.1]:44240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNhXf-0007h2-A3 for submit@debbugs.gnu.org; Mon, 15 Aug 2022 17:22:35 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.161]:40145) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNhXc-0007gs-FL for 57129@debbugs.gnu.org; Mon, 15 Aug 2022 17:22:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660598548; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=NTVfemy3C7IP5WnmWxBSzjjMXOt1DHqe62oWQDHNrEY=; b=FRpB8j+3KXQnPilw7VzEAYeoO9Z6BV8m+1iYEeU+Q7qOCz8odzVVb2doBQVirUMouC X9QkbiCnpDtNGXiJ2m24Ix6SOSgTg/jKLY6Uhl+mojwBqledhWhCDNh/5faoGvCuj81x mrHAh2njk1K3x5gKUMocMC8vMc84U7la9FKq4qdGZfRglTn/ISEzu0MDQ5zsZIRAYbnG 5nQYEQfM6hbx6K/LVWSNMEU4Kqia98fWxvLl0/ArUf/duzkOA6rk4UZ4PDYB/Ox6qnB/ h73VZHOJehmkfDEPXYIq3oASAPYL1O9GXXL4+DAr41PKun5LlcSN/R02L55IJ4p2oFkT 9TRQ== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCQ0eN7ysCnnpESqlYuuWQ2Mis=" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7FLMRhAz (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Mon, 15 Aug 2022 23:22:27 +0200 (CEST) From: Bruno Haible To: bug-gnulib@gnu.org, Paul Eggert Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Mon, 15 Aug 2022 23:22:27 +0200 Message-ID: <6414919.G0QQBjFxQf@nimes> In-Reply-To: References: <83ilmtgwq3.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 57129 Cc: Jim Porter , Eli Zaretskii , larsi@gnus.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Paul Eggert wrote: > I do see a comment saying that gen_tempname generates "hard-to-predict" > names, which as you note is not correct on MS-DOS, nor even strictly > speaking on all POSIX platforms. I installed the first attached patch > into Gnulib to fix that comment. Another comment fix is as below. Note that both comment fixes need to be propagated to glibc. 2022-08-15 Bruno Haible tempname: Fix a comment. * lib/tempname.c (try_tempname_len): Use of entropy makes the function more, not less, secure. diff --git a/lib/tempname.c b/lib/tempname.c index 75a939e571..e6520191d7 100644 --- a/lib/tempname.c +++ b/lib/tempname.c @@ -273,7 +273,7 @@ try_tempname_len (char *tmpl, int suffixlen, void *args, /* Whether to consume entropy when acquiring random bits. On the first try it's worth the entropy cost with __GT_NOCREATE, which is inherently insecure and can use the entropy to make it a bit - less secure. On the (rare) second and later attempts it might + more secure. On the (rare) second and later attempts it might help against DoS attacks. */ bool use_getrandom = tryfunc == try_nocreate; From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 07:04:36 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 11:04:36 +0000 Received: from localhost ([127.0.0.1]:45085 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNuNA-0003qy-68 for submit@debbugs.gnu.org; Tue, 16 Aug 2022 07:04:36 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52230) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNuN5-0003qi-SW for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 07:04:34 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:56246) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNuMy-0005aO-EN; Tue, 16 Aug 2022 07:04:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=2s9bGlDfB2sYGgIyR4DFRmc6CJotEtUJADjIOPRzRLY=; b=aJF68mt328jv96AToipg Qc5wAKLHucjE95a52/to+7eiUzd/tV6It7nXHTHsGsc65HNFR4hgm/YpXUUi7fXFiVWcJgW2lcTPR i5zwRx/rTMzP125Pdm14abBVJlIqvigg+0nE5U28iksPVuRJaIK1MZJXzNWrGmuofd7+RdXvmg6Cq D+fpf1VRO0SgM4SX31Bor1b2jmlEEpfYwIwWm0nU8dwTp5vS4FQLiMcOh8OJpSjLVBUwhwDaoDKMv QIFTMIWwiCCSMkICe7v9ufQ1I343D4WFF96J6Lo3RrkghuqoJG2DbbWf4fPeKzsEkevz7sfExBtPO TJiIX9WzdRUv4g==; Received: from [87.69.77.57] (port=1712 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNuMx-0004Mw-0y; Tue, 16 Aug 2022 07:04:24 -0400 Date: Tue, 16 Aug 2022 14:04:10 +0300 Message-Id: <835yish2l1.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: (message from Paul Eggert on Mon, 15 Aug 2022 13:55:35 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Mon, 15 Aug 2022 13:55:35 -0700 > Cc: larsi@gnus.org, 57129@debbugs.gnu.org, Jim Porter > , Gnulib bugs > From: Paul Eggert > > On 8/15/22 11:58, Eli Zaretskii wrote: > > > Ah, okay. It's a (mis)feature of Gnulib's gen_tempname function > > (which is the guts of make-temp-file) in its implementation for > > MS-Windows (and maybe other platforms?): it always begins from the > > same "random" characters in the file name, and only generates other > > random characters if there's already a file by that name. > > Not sure I'd call it a misfeature I didn't say "misfeature". Evidently, for you and perhaps others it's a feature. > as gen_tempname is generating a uniquely-named file that is > exclusive to Emacs, which is all it's supposed to do. Then perhaps calling it from make-temp-file in Emacs is a mistake, because that function's doc string says Create a temporary file. The returned file name (created by appending some random characters at the end of PREFIX, and expanding against ‘temporary-file-directory’ if necessary), is guaranteed to point to a newly created file. When you tell someone that the file name will include "some random characters", they don't expect that they will be the same "random characters" every call, just like saying that some function generates random numbers doesn't imply it will be the same number every call. > I'm not sure I'm entirely understanding the Emacs problem, but it > appears to be that Emacs has its own set of filenames that it thinks it > knows about, and Emacs wants the new temporary file's name to not be a > member of that set. If I'm right, does the second attached patch (this > patch is to Emacs) address the problem? I haven't tested or installed it. I don't think that's the problem, no. The problem is that callers of make-temp-file reasonably expect it to return a new name every call. And evidently, it does that on GNU/Linux (not sure how, given that the tempname.c code is supposed to be in glibc?). So if there's no intention to change gen_tempname on non-glibc platforms so that it doesn't repeat the same "random characters" upon each call, I think Emacs should call a different function to generate "random" names of temporary files, for consistency across platforms if not for other reasons. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 09:35:25 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 13:35:25 +0000 Received: from localhost ([127.0.0.1]:45363 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNwj6-0003b7-U1 for submit@debbugs.gnu.org; Tue, 16 Aug 2022 09:35:25 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.163]:44239) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNwj3-0003ax-WE for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 09:35:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660656918; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=hMDRdLRVf5Cez6XjVbIQ4bUDT9wQZfYKdY/cWRTTzNI=; b=hKZjP7aHOBErbd6Yjh/syzgLgHm7pZu+o0boUGWDk8wA8mCDyO2HGL8pE5iPErfX7D iC7tYWH2OXSQm6gjdpWH/FArxkUeDGTUGW3gxiOjp7KeiYrmSCbnVphell1u7fmPqh5B l0Xy73MvgR0H6n0wOzoKNTMXS72Kw2dSrK5LnIuhrgkQ3za5Sx4gyVGfCYS8itxorsos /NR1sUPH2QmSCqfUTHpCoT3vr0slE/hh4LHAJdkY/AOKje4eKjSRspbRAz102fL3ODNE X2NjX82mOUvpmwyQq5q7tf4u01tXuOnzyGkXVru7V0DnnNp3lzrScCo/5ygP/lyts5Sp z0Ew== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GDZIlZn (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 15:35:18 +0200 (CEST) From: Bruno Haible To: Paul Eggert , bug-gnulib@gnu.org, Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 15:35:17 +0200 Message-ID: <1871347.6tgchFWduM@nimes> In-Reply-To: <835yish2l1.fsf@gnu.org> References: <835yish2l1.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: 2.0 (++) 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: Eli Zaretskii wrote: > The problem is that callers of > make-temp-file reasonably expect it to return a new name every call. > And evidently, it does that on GNU/Linux (not sure how, given that the > [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record 0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [81.169.146.163 listed in wl.mailspike.net] -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [81.169.146.163 listed in list.dnswl.org] 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: gl-temp-xxxxxx.xyz (xyz)] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, 57129@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 wrote: > The problem is that callers of > make-temp-file reasonably expect it to return a new name every call. > And evidently, it does that on GNU/Linux (not sure how, given that the > tempname.c code is supposed to be in glibc?). So if there's no > intention to change gen_tempname on non-glibc platforms so that it > doesn't repeat the same "random characters" upon each call, I think > Emacs should call a different function to generate "random" names of > temporary files, for consistency across platforms if not for other > reasons. You are making incorrect assumptions or hypotheses. I am adding the unit test below. It proves that (at least) on Linux, FreeBSD 11, NetBSD 7, OpenBSD 6.0, macOS, AIX 7.1, Solaris 10, Cygwin, and native Windows, gen_tempname *does* return a new file name on each call, with a very high probability. So, gen_tempname does *not* repeat the same "random characters" upon each call. 2022-08-16 Bruno Haible tempname: Add tests. * tests/test-tempname.c: New file. * modules/tempname-tests: New file. =========================== tests/test-tempname.c ========================== /* Test of creating a temporary file. Copyright (C) 2022 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2022. */ #include #include "tempname.h" #include #include #include "macros.h" int main () { /* Verify that two consecutive calls to gen_tempname return two different file names, with a high probability. */ const char *templ18 = "gl-temp-XXXXXX.xyz"; char filename1[18 + 1]; char filename2[18 + 1]; strcpy (filename1, templ18); int fd1 = gen_tempname (filename1, strlen (".xyz"), 0, GT_FILE); ASSERT (fd1 >= 0); strcpy (filename2, templ18); int fd2 = gen_tempname (filename2, strlen (".xyz"), 0, GT_FILE); ASSERT (fd2 >= 0); /* With 6 'X' and a good pseudo-random number generator behind the scenes, the probability of getting the same file name twice in a row should be 1/62^6 < 1/10^10. */ ASSERT (strcmp (filename1, filename2) != 0); /* Clean up. */ close (fd1); close (fd2); unlink (filename1); unlink (filename2); return 0; } =========================== modules/tempname-tests ========================= Files: tests/test-tempname.c tests/macros.h Depends-on: unlink configure.ac: Makefile.am: TESTS += test-tempname check_PROGRAMS += test-tempname test_tempname_LDADD = $(LDADD) $(LIB_GETRANDOM) $(LIB_CLOCK_GETTIME) ============================================================================ From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 09:51:30 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 13:51:30 +0000 Received: from localhost ([127.0.0.1]:45409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNwyf-00043c-Kw for submit@debbugs.gnu.org; Tue, 16 Aug 2022 09:51:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:56860) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNwya-00043M-RZ for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 09:51:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34416) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNwyU-0006m3-Ax; Tue, 16 Aug 2022 09:51:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=qTh2SrrgccwmooMEmjvaMRa8VOetjSi706dW5g+p7es=; b=qxuW3pGhxfRZ rjaMQ6lJoYRiWUFYVxTxYGX77RR7xoDOFxutCxFOrpEUenitT35BoDi0SqjETRva/kdY5wPyFOLwn iBxjirbgk96bkY441KdmH1Ujjqq96lz13mQIxVBYYLRt8BA7AtX7o9kt0K3knoMzSO7wvxgnckvL3 LXrLM9nQeCPXSxMBUxONXCB/C3hXvOJQZQR5vmy5zQPPSUPewyo/sEk+VtCnDq5fSIuh3Vl9dLR6s TVd+4n3RRezD7cBue+VhZ8VnZmy9hTAFOukHtoUuKwYT4zxzGmXPvFXXZRXqBL1bevCGIHZym3g1R 4KW0rLjaqQ0iLe0pO3Sh/g==; Received: from [87.69.77.57] (port=4103 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNwyT-0006fG-Qh; Tue, 16 Aug 2022 09:51:18 -0400 Date: Tue, 16 Aug 2022 16:51:06 +0300 Message-Id: <838rnofgad.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <1871347.6tgchFWduM@nimes> (message from Bruno Haible on Tue, 16 Aug 2022 15:35:17 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <835yish2l1.fsf@gnu.org> <1871347.6tgchFWduM@nimes> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 16 Aug 2022 15:35:17 +0200 > > Eli Zaretskii wrote: > > The problem is that callers of > > make-temp-file reasonably expect it to return a new name every call. > > And evidently, it does that on GNU/Linux (not sure how, given that the > > tempname.c code is supposed to be in glibc?). So if there's no > > intention to change gen_tempname on non-glibc platforms so that it > > doesn't repeat the same "random characters" upon each call, I think > > Emacs should call a different function to generate "random" names of > > temporary files, for consistency across platforms if not for other > > reasons. > > You are making incorrect assumptions or hypotheses. They are neither assumptions nor hypotheses. They are what I actually saw by stepping with a debugger into the code. > I am adding the unit test below. It proves that (at least) on Linux, > FreeBSD 11, NetBSD 7, OpenBSD 6.0, macOS, AIX 7.1, Solaris 10, > Cygwin, and native Windows, gen_tempname *does* return a new file > name on each call, with a very high probability. > > So, gen_tempname does *not* repeat the same "random characters" upon each call. Well, it does here, when called from Emacs in the particular scenario of the unit test I was looking into. Looking at your test program, I see that you generate the seconds file name without deleting the first one. When a file by the first generated name already exists, gen_tempname will indeed generate a different name. But in the scenario I described, Emacs creates one temporary file, uses it, then deletes it, and only after that creates another file. In terms of your test program, you need to move the first unlink call to before the second call to gen_tempname. Then your test program will faithfully reproduce what Emacs does in the case in point. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 10:40:23 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 14:40:23 +0000 Received: from localhost ([127.0.0.1]:47988 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNxjz-0005xZ-Bu for submit@debbugs.gnu.org; Tue, 16 Aug 2022 10:40:23 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.160]:40019) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNxjx-0005xL-1Z for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 10:40:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660660817; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=e1eJMRlQLSM2pax8WA9jBkugmTgyOJ2FZcycMNDDoFo=; b=rTnBP9U3MEgy2L/qSnE9NIA6eFhoqhV4NTDGFxZ5XtVGZBGRYRSuLeet591SDUg/yW igypYNPkBPs3osS3g5mBHXIozqXqgXqTJ14QZZVnZpKEI8tMPfb//fYj6WFdo4Zictgj U9oGIvPA7vErzYKJTescM18OBfC84388aen+q86IEy0W97/DzFlYTBLDoZk+U1WaSgHQ 95mzemyaLBqIP2M20CzDwl/SAePsqFUs3uO0P2hyZl28VVavzgQjzIycBoJZ++NFg5Dd R2Q/6s3meoTdEIECETZqvfsr4zR2cAWMqABJi1VrM+ye0JYHrRF83YqDESP2VjV0OmDa H31A== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GEeGm0L (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 16:40:16 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 16:40:16 +0200 Message-ID: <4165399.mogB4TqSGs@nimes> In-Reply-To: <838rnofgad.fsf@gnu.org> References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 wrote: > Looking at your test program, I see that you generate the seconds file > name without deleting the first one. When a file by the first > generated name already exists, gen_tempname will indeed generate a > different name. But in the scenario I described, Emacs creates one > temporary file, uses it, then deletes it, and only after that creates > another file. Why would it be important for the second temporary file to bear a different name, once the first one is gone? I mean, process IDs get reused over time; socket numbers get reused over time; what is wrong with reusing a file name, once the older file is gone? Maybe the problem is that the file gets deleted too early, when some parts of Emacs still reference it? Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 12:25:55 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 16:25:55 +0000 Received: from localhost ([127.0.0.1]:48119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNzO7-0000DW-4N for submit@debbugs.gnu.org; Tue, 16 Aug 2022 12:25:55 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37240) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNzO2-0000DD-0L for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 12:25:53 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:58256) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNzNu-0000AR-OY; Tue, 16 Aug 2022 12:25:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Ocgy09KkRCZm2wECFo11lo6yvo6Dv/oSVgkgpO6HE08=; b=NDZC0dtzQEv+ bR4n4JpRJ6G+FF0zvGLhXD7XMqgJQPfhzVp2c2kR8Z6TETYR4mZMZsYFtI0LbUmvO1zmmq3uCewgp 9kQxmL/2BOIvQdkwICCu1zKoTtdTL2/7BGMZoC6ZEEEVJdubQen6IpRS+nFCTQ8KfRAYiFv/ulTpE kZD1Q+62ZIhDFPfyMrDzRWaffmJ998bWwxLWkoxTwNrt+0NAa1GFctxY1B8gye9jcpUiVVhPpI+dg K/VTZFEaodcTDHGDZm6V9v1N8osJ2q9FgQLhiIkOWBcPATRWkVIFXoousVwTFL74NMbfEHVWcyRhn 1rP0CtZ4w+I3u6q4clOiSw==; Received: from [87.69.77.57] (port=1567 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNzNh-00007P-JC; Tue, 16 Aug 2022 12:25:41 -0400 Date: Tue, 16 Aug 2022 19:25:16 +0300 Message-Id: <83wnb8dukz.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <4165399.mogB4TqSGs@nimes> (message from Bruno Haible on Tue, 16 Aug 2022 16:40:16 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: eggert@cs.ucla.edu, bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 16 Aug 2022 16:40:16 +0200 > > Eli Zaretskii wrote: > > Looking at your test program, I see that you generate the seconds file > > name without deleting the first one. When a file by the first > > generated name already exists, gen_tempname will indeed generate a > > different name. But in the scenario I described, Emacs creates one > > temporary file, uses it, then deletes it, and only after that creates > > another file. > > Why would it be important for the second temporary file to bear a different > name, once the first one is gone? I mean, process IDs get reused over time; > socket numbers get reused over time; what is wrong with reusing a file name, > once the older file is gone? Because the Emacs Lisp program expected that, based on what make-temp-file in Emacs promises (see the "random characters" part), and because that's how it behaves on GNU/Linux. Then the same program behaved differently on MS-Windows, and the programmer was stumped. Sure, it's possible to write the same program somewhat differently, carefully working around this issue, but my point is that such functions should ideally present the same behavior traits on all systems, otherwise the portability is hampered. > Maybe the problem is that the file gets deleted too early, when some parts > of Emacs still reference it? The buffer which visited that file still exists, and still records the name of the file, yes. And then, when the program writes to another file created by another call to make-temp-file, it actually writes to a file that some buffer still visits, and in Emacs that triggers a prompt to the user to refresh the buffer. The programmer didn't expect that because it is natural to expect each call to a function that creates a temporary file to create a file under a new name, not reuse the same name. E.g., similar facilities in the Standard C library exhibit that behavior. So the program was written assuming that the second write was to an entirely different and unrelated file. And again, my main point is: why does this work differently on different platforms? If you consider it OK to return the same file name each time, provided that no such file exists, then why doesn't that function do it on GNU/Linux? From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 12:54:39 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 16:54:39 +0000 Received: from localhost ([127.0.0.1]:48153 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNzpu-0000yc-Vc for submit@debbugs.gnu.org; Tue, 16 Aug 2022 12:54:39 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:32962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oNzpp-0000yL-Uw for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 12:54:37 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 296CE160153; Tue, 16 Aug 2022 09:54:28 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id tnxyRXa6F2If; Tue, 16 Aug 2022 09:54:27 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 481B4160156; Tue, 16 Aug 2022 09:54:27 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id I7seefgBy73Q; Tue, 16 Aug 2022 09:54:27 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 143F1160153; Tue, 16 Aug 2022 09:54:27 -0700 (PDT) Message-ID: <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> Date: Tue, 16 Aug 2022 09:54:25 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: Eli Zaretskii References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <83wnb8dukz.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org, Bruno Haible 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 (---) On 8/16/22 09:25, Eli Zaretskii wrote: > The programmer didn't > expect that because it is natural to expect each call to a function > that creates a temporary file to create a file under a new name, not > reuse the same name. Regardless of whether the programmer expects a random name or a predictable-but-unique name, there are only a finite number of names to choose from so the programmer must take into account the possibility that the chosen name clashes with names that the programmer would prefer not to be chosen. This means an Emacs patch such as [1] is needed regardless of whether Gnulib's gen_tempname is changed to be more random than it is. Although it's true that the bug fixed by [1] is less likely if gen_tempname generates more-random names, the bug can occur no matter what we do about gen_tempname. [1] https://debbugs.gnu.org/cgi/bugreport.cgi?filename=0001-Don-t-create-temp-file-with-same-name-as-visited.patch;bug=57129;msg=59;att=2 From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:05:11 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:05:11 +0000 Received: from localhost ([127.0.0.1]:48167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO006-0001GY-QF for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:05:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO004-0001GI-OQ for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:05:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35700) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNzzy-0006FD-Ge; Tue, 16 Aug 2022 13:05:02 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=0K+5E/MZjkx6L76pLY1tsyafXk2V0HKi+RD5SuC7Gj4=; b=nfcXL2uAWrzR XcYUa6Y4hrXssGfeWCClD6+dbDlo/qI/3nIw2FXyD9ZI1DdM8aikNf/5k9Ez7cPNrYj9B8CPNFa7Q Swb3b2pIXcvXc1OywzJWXEobS8ugI24uaBeqbFG/7exUt5soR9h+zXshUfqLwRTq2l7Bt93YJ97MM piDZc95xx2UHWMa0w83sBwoH1ltLn1ZdXvD7Y6lwEeuszj9b0JW4WqFI44/ZFw/R4E+Uwhyo084dA zep8xNaB0z0Nl2wwhGPyu3SA7un6b9zDhw8ltLlaYdbs+18BroC0Pt3FWvDNbDhA8mpNsh9/4bYfu C5YgzUFr2PJmBVqMe8UAhA==; Received: from [87.69.77.57] (port=3989 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oNzzx-0006Xh-QA; Tue, 16 Aug 2022 13:05:02 -0400 Date: Tue, 16 Aug 2022 20:04:49 +0300 Message-Id: <83sflwdsr2.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> (message from Paul Eggert on Tue, 16 Aug 2022 09:54:25 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org, bruno@clisp.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 16 Aug 2022 09:54:25 -0700 > Cc: bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, > jporterbugs@gmail.com, Bruno Haible > From: Paul Eggert > > On 8/16/22 09:25, Eli Zaretskii wrote: > > The programmer didn't > > expect that because it is natural to expect each call to a function > > that creates a temporary file to create a file under a new name, not > > reuse the same name. > > Regardless of whether the programmer expects a random name or a > predictable-but-unique name, there are only a finite number of names to > choose from so the programmer must take into account the possibility > that the chosen name clashes with names that the programmer would prefer > not to be chosen. Then what is this comment and the following assertion in Bruno's code about? /* With 6 'X' and a good pseudo-random number generator behind the scenes, the probability of getting the same file name twice in a row should be 1/62^6 < 1/10^10. */ ASSERT (strcmp (filename1, filename2) != 0); That "finite number" of 62^6 sounds pretty close to infinity to me! > This means an Emacs patch such as [1] is needed regardless of whether > Gnulib's gen_tempname is changed to be more random than it is. Although > it's true that the bug fixed by [1] is less likely if gen_tempname > generates more-random names, the bug can occur no matter what we do > about gen_tempname. No, sorry. I object to this patch, because it hides the problem under the carpet. That there's a file-visiting buffer that records the name of a temporary file is just one case where this issue gets in the way. The general problem is still there. And it isn't an Emacs problem, so Emacs is not the place to solve it. Therefore, if there's no intention to fix this in Gnulib, I'm going to update the documentation of make-temp-file so that Emacs users and programmers will be informed about that and will be careful enough to side-step these issues in all the situations. (Not that I understand why won't Gnulib provide consistent behavior on all platforms, but I guess it's above my pay grade.) From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:26:10 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:26:11 +0000 Received: from localhost ([127.0.0.1]:48203 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0KQ-0001oa-LB for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:26:10 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:37490) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0KL-0001o1-2u for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:26:09 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4795C160157; Tue, 16 Aug 2022 10:25:59 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 4Mzz9JQxGaR0; Tue, 16 Aug 2022 10:25:58 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4CF18160158; Tue, 16 Aug 2022 10:25:58 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id cTC2_t8o45s0; Tue, 16 Aug 2022 10:25:58 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 119F4160157; Tue, 16 Aug 2022 10:25:58 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------vgbOtvgTFfN9LnNaetVKh9oz" Message-ID: Date: Tue, 16 Aug 2022 10:25:57 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: Eli Zaretskii , Bruno Haible References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <83wnb8dukz.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@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 (---) This is a multi-part message in MIME format. --------------vgbOtvgTFfN9LnNaetVKh9oz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/16/22 09:25, Eli Zaretskii wrote: > why does this work differently on > different platforms? Platforms that lack clock_gettime and CLOCK_MONOTONIC fall back on a deterministic algorithm. Presumably MS-DOS one of the few such platforms, which is why the problem is observed only on MS-DOS. How about something like the attached patch to Gnulib's lib/tempname.c? If I understand things correctly this should make the names random enough on MS-DOS, though Emacs itself still needs a patch as I mentioned a few minutes ago. If this patch isn't good enough for MS-DOS, what sort of random bits are easily available on that platform? We don't need anything cryptographically secure; a higher-res clock should suffice. --------------vgbOtvgTFfN9LnNaetVKh9oz Content-Type: text/x-patch; charset=UTF-8; name="rand.diff" Content-Disposition: attachment; filename="rand.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYi90ZW1wbmFtZS5jIGIvbGliL3RlbXBuYW1lLmMKaW5kZXggZTY1 MjAxOTFkNy4uZTNkMDlkOTYzZCAxMDA2NDQKLS0tIGEvbGliL3RlbXBuYW1lLmMKKysrIGIv bGliL3RlbXBuYW1lLmMKQEAgLTcxLDcgKzcxLDggQEAKIAogLyogVXNlIGdldHJhbmRvbSBp ZiBpdCB3b3JrcywgZmFsbGluZyBiYWNrIG9uIGEgNjQtYml0IGxpbmVhcgogICAgY29uZ3J1 ZW50aWFsIGdlbmVyYXRvciB0aGF0IHN0YXJ0cyB3aXRoIFZhcidzIHZhbHVlCi0gICBtaXhl ZCBpbiB3aXRoIGEgY2xvY2sncyBsb3ctb3JkZXIgYml0cyBpZiBhdmFpbGFibGUuICAqLwor ICAgbWl4ZWQgaW4gd2l0aCBhIGNsb2NrJ3MgbG93LW9yZGVyIGJpdHMgKG9yIHdpdGggc29t ZSBvdGhlcgorICAgcHNldWRvcmFuZG9tIG51bWJlcikgaWYgYXZhaWxhYmxlLiAgKi8KIHR5 cGVkZWYgdWludF9mYXN0NjRfdCByYW5kb21fdmFsdWU7CiAjZGVmaW5lIFJBTkRPTV9WQUxV RV9NQVggVUlOVF9GQVNUNjRfTUFYCiAjZGVmaW5lIEJBU0VfNjJfRElHSVRTIDEwIC8qIDYy KioxMCA8IFVJTlRfRkFTVDY0X01BWCAqLwpAQCAtODksNiArOTAsOSBAQCByYW5kb21fYml0 cyAocmFuZG9tX3ZhbHVlIHZhciwgYm9vbCB1c2VfZ2V0cmFuZG9tKQogICBzdHJ1Y3QgX190 aW1lc3BlYzY0IHR2OwogICBfX2Nsb2NrX2dldHRpbWU2NCAoQ0xPQ0tfTU9OT1RPTklDLCAm dHYpOwogICB2YXIgXj0gdHYudHZfbnNlYzsKKyNlbHNlCisgIC8qIEZhbGwgYmFjayBvbiBw c2V1ZG9yYW5kb20gbnVtYmVyIDxodHRwczovL2J1Z3MuZ251Lm9yZy81NzEyOT4uICAqLwor ICB2YXIgXj0gcmFuZCAoKTsKICNlbmRpZgogICByZXR1cm4gMjg2MjkzMzU1NTc3Nzk0MTc1 NyAqIHZhciArIDMwMzcwMDA0OTM7CiB9Cg== --------------vgbOtvgTFfN9LnNaetVKh9oz-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:29:40 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:29:40 +0000 Received: from localhost ([127.0.0.1]:48217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0Nn-0001u7-Vs for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:29:40 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.20]:39025) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0Nl-0001tx-FF for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:29:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660670974; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=y/FpYlIaG9c90SiPB8ozskZf3MFr5ouzwwXozvKZbDk=; b=rNzlXx18HdqH5cf9ipElaqEQ7ewes0jMibyHWu7DT8R0tILoxYF2YfPtHlJSFcv7at SdkD1/ux0SpJbXQ09T3oXR+ZPT+A7U0jhpVckiVweq0KcuP4mH9durV5goEHtJM5SYJR h4WsP1Nzm5j54s/YF1zq+SWMrs3aBQP/GzZas58jozXsttwlntTzExHQeNSkgC6Zi0kJ teaBPqTqWdxEitx6SnWECbETNP04AGC/Ri9sHPLecDUx1hqvR6Z7j4FR/vrmNquO/xfk mqg414tp9LdnzMX6YqJKotQaTI/GJBqHZxOaw4EqdTFuUp6tvsPXTqqUAo8j9Q0IjJb8 dnDw== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GHTYmYt (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 19:29:34 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 19:29:33 +0200 Message-ID: <2594092.Isy0gbHreE@nimes> In-Reply-To: <83wnb8dukz.fsf@gnu.org> References: <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Thanks for the explanations, Eli. Eli Zaretskii wrote: > > Maybe the problem is that the file gets deleted too early, when some pa= rts > > of Emacs still reference it? >=20 > The buffer which visited that file still exists, and still records the > name of the file, yes. And then, when the program writes to another > file created by another call to make-temp-file, it actually writes to > a file that some buffer still visits, and in Emacs that triggers a > prompt to the user to refresh the buffer. That is a reasonable behaviour for a text editor =E2=80=94 but only for file names that are explicitly controlled by some program or by the user, not for temporary files. > The programmer didn't > expect that because it is natural to expect each call to a function > that creates a temporary file to create a file under a new name, not > reuse the same name. This is an incorrect assumption. Just like socket numbers are randomly generated in some situations, temp file names are random, and you can't make assumptions about the resulting file name. How about storing, as an attribute of the buffer, a boolean that tells whether the underlying file name is randomly generated (i.e. a temp file), and query this boolean before prompting to the user to refresh the buffer? Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:31:02 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:31:02 +0000 Received: from localhost ([127.0.0.1]:48221 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0P8-00042k-At for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:31:02 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:38216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0P6-0003sK-Ii for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:31:01 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4205B160157; Tue, 16 Aug 2022 10:30:55 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id yKzRiERpHmFl; Tue, 16 Aug 2022 10:30:54 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 7F19D160158; Tue, 16 Aug 2022 10:30:54 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id J5TIbtCeIbsR; Tue, 16 Aug 2022 10:30:54 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 47B84160157; Tue, 16 Aug 2022 10:30:54 -0700 (PDT) Message-ID: Date: Tue, 16 Aug 2022 10:30:54 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Content-Language: en-US To: Eli Zaretskii References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> <83sflwdsr2.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <83sflwdsr2.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org, bruno@clisp.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 (---) On 8/16/22 10:04, Eli Zaretskii wrote: > That "finite number" of 62^6 sounds pretty close to infinity to me! It's only 57 billion or so. That's not infinity, considering all the Emacs sessions out there. If Emacs's success grows, almost surely someone will run into this unlikely bug. Since we have the patch to prevent it, why not install it? From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:41:30 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:41:30 +0000 Received: from localhost ([127.0.0.1]:48226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0ZF-0004Ma-Ic for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:41:29 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52710) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0ZC-0004ML-5D for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:41:28 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55566) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0Z5-0003Mt-1c; Tue, 16 Aug 2022 13:41:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=gQkGVMKUOCWrl0Dw8UOu9+jKbB/Ycss6QcuJ+vbWhhw=; b=PJeXgQnAq2cU S6Cw5bfGk1Ozbjjh03DwIQl3yznMrpr6xLbSTwURLMr+guyZS4S/IqjEU5W2dVRkaoIxZjCEFik2Z Q2xfu2gFfGh5JvUIi/cJBcdOCUZiifD48RV1ML3pqcNHxDXGWitSpka4P25qBjT50RoXcCPwkByWc TJ0g2vJP4kl//2z4Z7AJqpI5OVH0qMVIq1a93NZkDHhFyDVxDcReOatLLcYhQG1pVQISHZYkKQX1n MYRCzUV6X02AJSByo5G8YHNsCL1H6Zs3qx6attqaNksvNphusUd/MQM2vuxh1Fl3MYsVl995xpHuV +ac6GXFUc+ixYrKsHSsDgg==; Received: from [87.69.77.57] (port=2417 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0Z4-0007I4-Ld; Tue, 16 Aug 2022 13:41:18 -0400 Date: Tue, 16 Aug 2022 20:41:06 +0300 Message-Id: <83pmh0dr2l.fsf@gnu.org> From: Eli Zaretskii To: eggert@cs.ucla.edu, bruno@clisp.org In-Reply-To: <83sflwdsr2.fsf@gnu.org> (message from Eli Zaretskii on Tue, 16 Aug 2022 20:04:49 +0300) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> <83sflwdsr2.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@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 (---) > Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, > 57129@debbugs.gnu.org, bruno@clisp.org > Date: Tue, 16 Aug 2022 20:04:49 +0300 > From: Eli Zaretskii > > Therefore, if there's no intention to fix this in Gnulib, I'm going to > update the documentation of make-temp-file so that Emacs users and > programmers will be informed about that and will be careful enough to > side-step these issues in all the situations. (Not that I understand > why won't Gnulib provide consistent behavior on all platforms, but I > guess it's above my pay grade.) And btw, looking closer, I see that this is a regression in Emacs 28, which was caused by a change in Gnulib: the versions of tempname.c that we used up to and including Emacs 27.2 used gettimeofday and the PID to generate the file name, so it was more random than the code in current Gnulib, and in particular the sequence of generate file-name1 delete file-name1 generate file-name2 would produce file-name2 that is different from file-name1. With the current code in Gnulib, something similar happens only on glibc systems. So I hope the code in Gnulib's tempname.c will be amended to call clock_gettime or something similar, so that the names on non-glibc platforms could also be random. Or, failing that, at least that gen_tempname in glibc would behave identically to other systems, i.e. start from a fixed "random" value. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:47:35 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:47:35 +0000 Received: from localhost ([127.0.0.1]:48235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0f8-0004WC-Rr for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:47:35 -0400 Received: from eggs.gnu.org ([209.51.188.92]:53464) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0f2-0004Vr-Q7 for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:47:32 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49100) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0ew-0004BK-0U; Tue, 16 Aug 2022 13:47:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=GVjEeqEP4gCWuxKz6O9x1MwgFwF0p2zZBzG3Jt+9JeM=; b=KjY+WtlJzgMp Fu9+HMgOaj2yZw2tLmtbYK7/SRyeAyBMgJX6izioFz1n9M7Gl3bJ8KFFAwifHi6jLS6ucXQikbiQb XZMFztXXIyC0lsRPR6hAxoglJ0jZPySM07DWmPcdn8+nqV9B9FTriZI0U7Y4Qm+Cie47BTRooIAX5 40oaY6VIizB4/HA7Tt+2niwDMW9G2Dr9r9uCAnIz1pxOusVSYH1xCu3Mq9A/htHRtaTg3Zcd6ryNv nuSU+7g12ugoJsw3GJBBbDngWJrLVOdiv465CrMP7hnRXKlhvqyMJVHEaIAQtwNbuEqqOmh9t5Lov 8foX+hmU7JnMNg6TFqGrsA==; Received: from [87.69.77.57] (port=2788 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0ev-0007u2-F0; Tue, 16 Aug 2022 13:47:21 -0400 Date: Tue, 16 Aug 2022 20:47:10 +0300 Message-Id: <83o7wkdqsh.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: (message from Paul Eggert on Tue, 16 Aug 2022 10:25:57 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: bug-gnulib@gnu.org, larsi@gnus.org, bruno@clisp.org, 57129@debbugs.gnu.org, jporterbugs@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 (---) > Date: Tue, 16 Aug 2022 10:25:57 -0700 > Cc: bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, > jporterbugs@gmail.com > From: Paul Eggert > > On 8/16/22 09:25, Eli Zaretskii wrote: > > why does this work differently on > > different platforms? > > Platforms that lack clock_gettime and CLOCK_MONOTONIC fall back on a > deterministic algorithm. Presumably MS-DOS one of the few such > platforms, which is why the problem is observed only on MS-DOS. (Why are you talking about MS-DOS?) MinGW does have clock_gettime, but we don't want to use it, because one of the MinGW flavors (MinGW64) implements that function in libwinpthreads, and that makes Emacs depend on libwinpthreads DLL, which we want to avoid. > How about something like the attached patch to Gnulib's lib/tempname.c? Thanks, but why not use 'random' instead? Emacs does have it on all platforms, including MS-Windows. AFAIU, it's better than 'rand'. > If I understand things correctly this should make the names random > enough on MS-DOS, though Emacs itself still needs a patch as I mentioned > a few minutes ago. Why would Emacs need that patch? From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:53:18 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:53:18 +0000 Received: from localhost ([127.0.0.1]:48240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0kf-0004ia-LP for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:53:18 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54342) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0kd-0004iM-72 for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:53:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:43970) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0kX-00051J-Pa; Tue, 16 Aug 2022 13:53:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=xcCimE2hkja97WjL3ZYTM2NM4o03g/deLJ/MYyO7SAg=; b=J5VHmqc2Wo1N4fKgY/IK SEKeQ5Qv5mPi9baoyhj9wg6hmHf0vyuZY1BA07RbSWLZVhncbY1b/CD9Mxu4zPI5n22B5x9/EVjML nwxW/u/j6mlAz2feg+WayYN59w+fpdbAXFTLyV2MR7RGACOUEqMc56bQ3J1s2VL8wdTCkzn/KVxzL 9u2XPcwtQCaZA+P9Nyj5MH2a8SveLMV5yLX4ygki1MNW46yA9k+vyj1v2TfKtsmUflX384UcJn3Wr w7QxwLKYWYIgsZ92CiSn8seVKQjU5Pjb7vbhlLwjpt0h2yXVIh+QwLOVMFrY1u0e41zhShuw7FIs5 hlVBqUnnKGcIhg==; Received: from [87.69.77.57] (port=3136 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0kX-0008O1-8t; Tue, 16 Aug 2022 13:53:09 -0400 Date: Tue, 16 Aug 2022 20:52:57 +0300 Message-Id: <83mtc4dqiu.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <2594092.Isy0gbHreE@nimes> (message from Bruno Haible on Tue, 16 Aug 2022 19:29:33 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <2594092.Isy0gbHreE@nimes> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: eggert@cs.ucla.edu, bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 16 Aug 2022 19:29:33 +0200 > > > The buffer which visited that file still exists, and still records the > > name of the file, yes. And then, when the program writes to another > > file created by another call to make-temp-file, it actually writes to > > a file that some buffer still visits, and in Emacs that triggers a > > prompt to the user to refresh the buffer. > > That is a reasonable behaviour for a text editor — but only for file > names that are explicitly controlled by some program or by the user, > not for temporary files. Why not for temporary files? Emacs has a with-temp-file macro, which generates a temporary file name, executes the body of the macro with a variable bound to the file name, then deletes the file. Very handy for writing test suites. We don't usually bother deleting the buffers where the file was processed in those tests, because the test suite runs in batch mode, and Emacs exits after running the tests, thus cleaning up. Having to carefully make sure no such buffers were left from the previous test is a nuisance. > > The programmer didn't > > expect that because it is natural to expect each call to a function > > that creates a temporary file to create a file under a new name, not > > reuse the same name. > > This is an incorrect assumption. Just like socket numbers are randomly > generated in some situations, temp file names are random, and you can't > make assumptions about the resulting file name. People get their ideas from other similar APIs, and functions like tmpfile in C do generate a different name each call. > How about storing, as an attribute of the buffer, a boolean that tells > whether the underlying file name is randomly generated (i.e. a temp file), > and query this boolean before prompting to the user to refresh the buffer? That's a terrible complications, especially since the solution is so close at hand, and it makes gen_tempname behave on Windows as it does on GNU/Linux, and as it behaved just a year or two ago. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 13:56:43 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 17:56:43 +0000 Received: from localhost ([127.0.0.1]:48250 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0ny-0004of-Os for submit@debbugs.gnu.org; Tue, 16 Aug 2022 13:56:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO0nj-0004o8-JZ for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 13:56:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52844) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0ne-0005XH-3a; Tue, 16 Aug 2022 13:56:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=8wdn566jQPrFWRp3fZwAoGTfZrclS4CIT70AYTwgwtk=; b=BWsLe3D33hna OinFSLJHKVDkIzN93xBchUM2aDf+3tHtBXQekAREwd85/EXj9EaqzzwVXLXC/HDCxj95WElZJkjHr z4bvKe1T5n4Gc84hOv3Gc2f0M28ib1gQgkmDMoTis3cnDFqFXK/qWt6EfbiOzhkV24Q0d0WyVgKDJ 7RBD3N1fYtl7pWb2MRnCmjLDpbMo9DCSHfRrdex7gfTBOMA7G/cRGW/b7tUapgaYedA5xmDKxh8tY owwZHUT32eKg8iAdWaWlw2iTXLQuZ5q4y16Uaa+5Pi0vuKuNrh+2WOFQTgxzxggoa0nDXvHm5SjV/ RGNWVxeeW6RLsKyACgUZ4A==; Received: from [87.69.77.57] (port=3340 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oO0nd-0000YN-Ip; Tue, 16 Aug 2022 13:56:21 -0400 Date: Tue, 16 Aug 2022 20:56:10 +0300 Message-Id: <83lerodqdh.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: (message from Paul Eggert on Tue, 16 Aug 2022 10:30:54 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <206e38df-2db4-a46a-e0ff-952bc8ab939c@cs.ucla.edu> <83sflwdsr2.fsf@gnu.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org, bruno@clisp.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 16 Aug 2022 10:30:54 -0700 > Cc: bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, > jporterbugs@gmail.com, bruno@clisp.org > From: Paul Eggert > > On 8/16/22 10:04, Eli Zaretskii wrote: > > That "finite number" of 62^6 sounds pretty close to infinity to me! > > It's only 57 billion or so. That's not infinity Yeah, right. > Since we have the patch to prevent it, why not install it? Because it isn't needed, and is a weird thing to do. It also slows down make-temp-file, especially when a session has a lot of buffers and with remote file names. So thanks, but no, thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 15:11:35 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 19:11:35 +0000 Received: from localhost ([127.0.0.1]:48346 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO1yQ-0006u9-PV for submit@debbugs.gnu.org; Tue, 16 Aug 2022 15:11:35 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:52292) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO1yO-0006tw-N3 for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 15:11:33 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 6A7C01600AF; Tue, 16 Aug 2022 12:11:26 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id QpVnuqTvpy5M; Tue, 16 Aug 2022 12:11:25 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 2FEA41600B0; Tue, 16 Aug 2022 12:11:25 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id eUZlkWXG9RXQ; Tue, 16 Aug 2022 12:11:25 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id E8DE11600AF; Tue, 16 Aug 2022 12:11:24 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------MG8oHTZLRs6SzariwQEGHrDK" Message-ID: Date: Tue, 16 Aug 2022 12:11:24 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: Eli Zaretskii References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <83o7wkdqsh.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <83o7wkdqsh.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: bug-gnulib@gnu.org, larsi@gnus.org, bruno@clisp.org, 57129@debbugs.gnu.org, jporterbugs@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 (---) This is a multi-part message in MIME format. --------------MG8oHTZLRs6SzariwQEGHrDK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/16/22 10:47, Eli Zaretskii wrote: > (Why are you talking about MS-DOS?) I mistakenly thought it was an MS-DOS problem because tempname.c ordinarily would use clock_gettime on MinGW. I didn't know Emacs 'configure' deliberately suppresses MinGW's clock_gettime. > Thanks, but why not use 'random' instead? Emacs does have it on all > platforms, including MS-Windows. AFAIU, it's better than 'rand'. If the code used 'random' then the Gnulib 'tempname' module would need to add a dependency on the Gnulib 'random' module, which would in turn add a cascading dependency on Gnulib's 'random_r' module. It's better to avoid this dependency if we can easily do so. Come to think of it, we don't need to use 'rand' either, since tempname.c already has a good-enough pseudorandom generator. I installed into Gnulib the attached patch, which I hope fixes the Emacs problem without changing glibc's generated code (once this gets migrated back into glibc). >> If I understand things correctly this should make the names random >> enough on MS-DOS, though Emacs itself still needs a patch as I mentioned >> a few minutes ago. > > Why would Emacs need that patch? In another part of this thread you rejected that patch, on the grounds that fixing the unlikely Emacs bug is more trouble than it's worth. So I'll drop that suggestion. --------------MG8oHTZLRs6SzariwQEGHrDK Content-Type: text/x-patch; charset=UTF-8; name="0001-tempname-generate-better-names-for-MinGW-Emacs.patch" Content-Disposition: attachment; filename*0="0001-tempname-generate-better-names-for-MinGW-Emacs.patch" Content-Transfer-Encoding: base64 RnJvbSA1MTJlNDRhZGFlYmIzMDk2ZGRkMWJmNTY0ZTY3OWQwNmUwMzAxNjE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE2IEF1ZyAyMDIyIDEyOjA2OjQ4IC0wNzAwClN1YmplY3Q6IFtQQVRD SF0gdGVtcG5hbWU6IGdlbmVyYXRlIGJldHRlciBuYW1lcyBmb3IgTWluR1cgRW1hY3MKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCk9uIE1pbkdXLCBHTlUgRW1hY3Mg ZGlzYWJsZXMgY2xvY2tfZ2V0dGltZSwgd2hpY2ggcmVsaWFibHkgYnJlYWtzCnNvbWUgb2Yg Z2VuX3RlbXBuYW1l4oCZcyBvcHRpbWlzdGljIGNhbGxlcnMuICBXb3JrIGFyb3VuZCB0aGUK cHJvYmxlbSBieSBtYWtpbmcgdGhlIGdlbmVyYXRlZCBuYW1lcyBsZXNzIHByZWRpY3RhYmxl LiAgV2UgZG9u4oCZdApuZWVkIGNyeXB0b2dyYXBoaWMgcmFuZG9tbmVzcyBoZXJlLCBqdXN0 IGVub3VnaCB1bnByZWRpY3RhYmlsaXR5CnRvIGtlZXAgRW1hY3MgaGFwcHkgbW9zdCBvZiB0 aGUgdGltZS4KKiBsaWIvdGVtcG5hbWUuYyAoSEFTX0NMT0NLX0VOVFJPUFkpOiBOZXcgbWFj cm8uCihyYW5kb21fYml0cyk6IFVzZSBpdC4KKHRyeV90ZW1wbmFtZV9sZW4pOiBPbiBzeXN0 ZW1zIGxhY2tpbmcgY2xvY2sgZW50cm9weSwgbWFpbnRhaW4Kc3RhdGUgc28gdGhhdCBnZW5f ZmlsZW5hbWUgZ2VuZXJhdGVzIGxlc3MtcHJlZGljdGFibGUgbmFtZXMgb24Kc3VjY2Vzc2l2 ZSBzdWNjZXNzZnVsIGNhbGxzLgotLS0KIENoYW5nZUxvZyAgICAgIHwgMTQgKysrKysrKysr KysrKysKIGxpYi90ZW1wbmFtZS5jIHwgMTggKysrKysrKysrKysrKysrKystCiAyIGZpbGVz IGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYjYzOWQxNzA5ZC4uZWI5NjI4MTU5MSAx MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBA CisyMDIyLTA4LTE2ICBQYXVsIEVnZ2VydCAgPGVnZ2VydEBjcy51Y2xhLmVkdT4KKworCXRl bXBuYW1lOiBnZW5lcmF0ZSBiZXR0ZXIgbmFtZXMgZm9yIE1pbkdXIEVtYWNzCisJT24gTWlu R1csIEdOVSBFbWFjcyBkaXNhYmxlcyBjbG9ja19nZXR0aW1lLCB3aGljaCByZWxpYWJseSBi cmVha3MKKwlzb21lIG9mIGdlbl90ZW1wbmFtZeKAmXMgb3B0aW1pc3RpYyBjYWxsZXJzLiAg V29yayBhcm91bmQgdGhlCisJcHJvYmxlbSBieSBtYWtpbmcgdGhlIGdlbmVyYXRlZCBuYW1l cyBsZXNzIHByZWRpY3RhYmxlLiAgV2UgZG9u4oCZdAorCW5lZWQgY3J5cHRvZ3JhcGhpYyBy YW5kb21uZXNzIGhlcmUsIGp1c3QgZW5vdWdoIHVucHJlZGljdGFiaWxpdHkKKwl0byBrZWVw IEVtYWNzIGhhcHB5IG1vc3Qgb2YgdGhlIHRpbWUuCisJKiBsaWIvdGVtcG5hbWUuYyAoSEFT X0NMT0NLX0VOVFJPUFkpOiBOZXcgbWFjcm8uCisJKHJhbmRvbV9iaXRzKTogVXNlIGl0Lgor CSh0cnlfdGVtcG5hbWVfbGVuKTogT24gc3lzdGVtcyBsYWNraW5nIGNsb2NrIGVudHJvcHks IG1haW50YWluCisJc3RhdGUgc28gdGhhdCBnZW5fZmlsZW5hbWUgZ2VuZXJhdGVzIGxlc3Mt cHJlZGljdGFibGUgbmFtZXMgb24KKwlzdWNjZXNzaXZlIHN1Y2Nlc3NmdWwgY2FsbHMuCisK IDIwMjItMDgtMTYgIFNpbW9uIEpvc2Vmc3NvbiAgPHNpbW9uQGpvc2Vmc3Nvbi5vcmc+CiAK IAltYWludGFpbmVyLW1ha2VmaWxlOiBDaGVjayBmb3IgaW5jb3JyZWN0IERJU1RDSEVDS19D T05GSUdVUkVfRkxBR1MKZGlmZiAtLWdpdCBhL2xpYi90ZW1wbmFtZS5jIGIvbGliL3RlbXBu YW1lLmMKaW5kZXggZTY1MjAxOTFkNy4uNWFkZmU2MjlhOCAxMDA2NDQKLS0tIGEvbGliL3Rl bXBuYW1lLmMKKysrIGIvbGliL3RlbXBuYW1lLmMKQEAgLTc3LDYgKzc3LDEyIEBAIHR5cGVk ZWYgdWludF9mYXN0NjRfdCByYW5kb21fdmFsdWU7CiAjZGVmaW5lIEJBU0VfNjJfRElHSVRT IDEwIC8qIDYyKioxMCA8IFVJTlRfRkFTVDY0X01BWCAqLwogI2RlZmluZSBCQVNFXzYyX1BP V0VSICg2MkxMICogNjIgKiA2MiAqIDYyICogNjIgKiA2MiAqIDYyICogNjIgKiA2MiAqIDYy KQogCisjaWYgX0xJQkMgfHwgKGRlZmluZWQgQ0xPQ0tfTU9OT1RPTklDICYmIEhBVkVfQ0xP Q0tfR0VUVElNRSkKKyMgZGVmaW5lIEhBU19DTE9DS19FTlRST1BZIHRydWUKKyNlbHNlCisj IGRlZmluZSBIQVNfQ0xPQ0tfRU5UUk9QWSBmYWxzZQorI2VuZGlmCisKIHN0YXRpYyByYW5k b21fdmFsdWUKIHJhbmRvbV9iaXRzIChyYW5kb21fdmFsdWUgdmFyLCBib29sIHVzZV9nZXRy YW5kb20pCiB7CkBAIC04NCw3ICs5MCw3IEBAIHJhbmRvbV9iaXRzIChyYW5kb21fdmFsdWUg dmFyLCBib29sIHVzZV9nZXRyYW5kb20pCiAgIC8qIFdpdGhvdXQgR1JORF9OT05CTE9DSyBp dCBjYW4gYmUgYmxvY2tlZCBmb3IgbWludXRlcyBvbiBzb21lIHN5c3RlbXMuICAqLwogICBp ZiAodXNlX2dldHJhbmRvbSAmJiBfX2dldHJhbmRvbSAoJnIsIHNpemVvZiByLCBHUk5EX05P TkJMT0NLKSA9PSBzaXplb2YgcikKICAgICByZXR1cm4gcjsKLSNpZiBfTElCQyB8fCAoZGVm aW5lZCBDTE9DS19NT05PVE9OSUMgJiYgSEFWRV9DTE9DS19HRVRUSU1FKQorI2lmIEhBU19D TE9DS19FTlRST1BZCiAgIC8qIEFkZCBlbnRyb3B5IGlmIGdldHJhbmRvbSBkaWQgbm90IHdv cmsuICAqLwogICBzdHJ1Y3QgX190aW1lc3BlYzY0IHR2OwogICBfX2Nsb2NrX2dldHRpbWU2 NCAoQ0xPQ0tfTU9OT1RPTklDLCAmdHYpOwpAQCAtMjY3LDYgKzI3MywxMyBAQCB0cnlfdGVt cG5hbWVfbGVuIChjaGFyICp0bXBsLCBpbnQgc3VmZml4bGVuLCB2b2lkICphcmdzLAogICAg ICBhbGlnbm1lbnQuICAqLwogICByYW5kb21fdmFsdWUgdiA9ICgodWludHB0cl90KSAmdikg LyBhbGlnbm9mIChtYXhfYWxpZ25fdCk7CiAKKyNpZiAhSEFTX0NMT0NLX0VOVFJPUFkKKyAg LyogQXJyYW5nZSBnZW5fdGVtcG5hbWUgdG8gcmV0dXJuIGxlc3MgcHJlZGljdGFibGUgZmls ZSBuYW1lcyBvbgorICAgICBzeXN0ZW1zIGxhY2tpbmcgY2xvY2sgZW50cm9weSA8aHR0cHM6 Ly9idWdzLmdudS5vcmcvNTcxMjk+LiAgKi8KKyAgc3RhdGljIHJhbmRvbV92YWx1ZSBwcmV2 X3Y7CisgIHYgXj0gcHJldl92OworI2VuZGlmCisKICAgLyogSG93IG1hbnkgcmFuZG9tIGJh c2UtNjIgZGlnaXRzIGNhbiBjdXJyZW50bHkgYmUgZXh0cmFjdGVkIGZyb20gVi4gICovCiAg IGludCB2ZGlnaXRzID0gMDsKIApAQCAtMzE4LDYgKzMzMSw5IEBAIHRyeV90ZW1wbmFtZV9s ZW4gKGNoYXIgKnRtcGwsIGludCBzdWZmaXhsZW4sIHZvaWQgKmFyZ3MsCiAgICAgICBpZiAo ZmQgPj0gMCkKICAgICAgICAgewogICAgICAgICAgIF9fc2V0X2Vycm5vIChzYXZlX2Vycm5v KTsKKyNpZiAhSEFTX0NMT0NLX0VOVFJPUFkKKyAgICAgICAgICBwcmV2X3YgPSB2OworI2Vu ZGlmCiAgICAgICAgICAgcmV0dXJuIGZkOwogICAgICAgICB9CiAgICAgICBlbHNlIGlmIChl cnJubyAhPSBFRVhJU1QpCi0tIAoyLjM0LjEKCg== --------------MG8oHTZLRs6SzariwQEGHrDK-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 15:59:16 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 19:59:16 +0000 Received: from localhost ([127.0.0.1]:48438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2ia-0008CF-2V for submit@debbugs.gnu.org; Tue, 16 Aug 2022 15:59:16 -0400 Received: from mo4-p01-ob.smtp.rzone.de ([85.215.255.54]:40943) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2iX-0008C6-PJ for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 15:59:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660679950; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=MqIf/K6WFWBXw9SmvP1Tk1nL/nip8h/gJtfRkQ0eLt4=; b=G6Cbgmw+J3lYBywD7l600y2vLcVOcwhNBaM3tvVhttV4jTWrqzanKZTLsy83v9XR94 7+H4njmynDHXdRQqbuCL8eqkeE8Wvga40/KVXcQIG3nLmOEysTe5VSPtHQYOwJqzTAGl aBReu/iRpMx9HlqAiEyhvyeQdqjx9/WBKh/YrwUSJEWAp10i51VXqTV7J1pEWfboXVbV A7ykz6mQatJ/Jx4VqVf3NM5SBo5ENeCJZ1WqKbORqrbRBDpyTJMSUYsh8B/LKCM6E9h8 PHb9Sz7FBek35x+1I+iNGw9hUTVGv6AnFfHa3WfNxSDH5KrD6T6+Z9SPDDc+EmITaubu 0Atw== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GJxAmr9 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 21:59:10 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 21:59:10 +0200 Message-ID: <2135151.C4sosBPzcN@nimes> In-Reply-To: <838rnofgad.fsf@gnu.org> References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart2470919.4XsnlVU6TS" Content-Transfer-Encoding: 7Bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --nextPart2470919.4XsnlVU6TS Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Eli Zaretskii wrote: > Looking at your test program, I see that you generate the seconds file > name without deleting the first one. When a file by the first > generated name already exists, gen_tempname will indeed generate a > different name. But in the scenario I described, Emacs creates one > temporary file, uses it, then deletes it, and only after that creates > another file. I'm adding this scenario to the unit test. Still, the unit test succeeds when run once on: Linux, FreeBSD, NetBSD, OpenBSD, macOS, Solaris, Cygwin, native Windows. Since this contradicts what you debugged on mingw, I ran the test 10000 times on native Windows. Result: - on 32-bit mingw, no failure. - on 64-bit mingw, around 30 failures (or around 10 failures with Paul's newest patch). That is, a probability of ca. 0.3% of getting the same file name as on the previous call. Bruno --nextPart2470919.4XsnlVU6TS Content-Disposition: attachment; filename="0001-tempname-Add-more-tests.patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="0001-tempname-Add-more-tests.patch" >From aa52cadc36fb1af0509dc3a4bce4ce73197ece68 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 16 Aug 2022 21:50:11 +0200 Subject: [PATCH] tempname: Add more tests. Based on scenario described by Eli Zaretskii in . * tests/test-tempname.c (main): Add another test. * modules/tempname-tests (Status): Mark the test as unportable. --- ChangeLog | 8 ++++++ modules/tempname-tests | 3 ++ tests/test-tempname.c | 65 ++++++++++++++++++++++++++++++------------ 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index eb96281591..de113ce081 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2022-08-16 Bruno Haible + + tempname: Add more tests. + Based on scenario described by Eli Zaretskii in + . + * tests/test-tempname.c (main): Add another test. + * modules/tempname-tests (Status): Mark the test as unportable. + 2022-08-16 Paul Eggert tempname: generate better names for MinGW Emacs diff --git a/modules/tempname-tests b/modules/tempname-tests index 384f98707b..adccd0d8e9 100644 --- a/modules/tempname-tests +++ b/modules/tempname-tests @@ -2,6 +2,9 @@ Files: tests/test-tempname.c tests/macros.h +Status: +unportable-test + Depends-on: unlink diff --git a/tests/test-tempname.c b/tests/test-tempname.c index d463eec2b4..4a0ca65f2c 100644 --- a/tests/test-tempname.c +++ b/tests/test-tempname.c @@ -34,24 +34,53 @@ main () char filename1[18 + 1]; char filename2[18 + 1]; - strcpy (filename1, templ18); - int fd1 = gen_tempname (filename1, strlen (".xyz"), 0, GT_FILE); - ASSERT (fd1 >= 0); - - strcpy (filename2, templ18); - int fd2 = gen_tempname (filename2, strlen (".xyz"), 0, GT_FILE); - ASSERT (fd2 >= 0); - - /* With 6 'X' and a good pseudo-random number generator behind the scenes, - the probability of getting the same file name twice in a row should be - 1/62^6 < 1/10^10. */ - ASSERT (strcmp (filename1, filename2) != 0); - - /* Clean up. */ - close (fd1); - close (fd2); - unlink (filename1); - unlink (filename2); + /* Case 1: The first file still exists while gen_tempname is called a second + time. */ + { + strcpy (filename1, templ18); + int fd1 = gen_tempname (filename1, strlen (".xyz"), 0, GT_FILE); + ASSERT (fd1 >= 0); + + strcpy (filename2, templ18); + int fd2 = gen_tempname (filename2, strlen (".xyz"), 0, GT_FILE); + ASSERT (fd2 >= 0); + + /* gen_tempname arranges (via O_EXCL) to not return the name of an existing + file. */ + ASSERT (strcmp (filename1, filename2) != 0); + + /* Clean up. */ + close (fd1); + close (fd2); + unlink (filename1); + unlink (filename2); + } + + /* Case 2: The first file is deleted before gen_tempname is called a second + time. */ + { + strcpy (filename1, templ18); + int fd1 = gen_tempname (filename1, strlen (".xyz"), 0, GT_FILE); + ASSERT (fd1 >= 0); + + /* Clean up. */ + close (fd1); + unlink (filename1); + + strcpy (filename2, templ18); + int fd2 = gen_tempname (filename2, strlen (".xyz"), 0, GT_FILE); + ASSERT (fd2 >= 0); + + /* With 6 'X' and a good pseudo-random number generator behind the scenes, + the probability of getting the same file name twice in a row should be + 1/62^6 < 1/10^10. + But on 64-bit native Windows, this probability is ca. 0.1% to 0.3%. */ + ASSERT (strcmp (filename1, filename2) != 0); + + /* Clean up. */ + close (fd2); + unlink (filename2); + } return 0; } -- 2.34.1 --nextPart2470919.4XsnlVU6TS-- From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 16:06:20 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 20:06:20 +0000 Received: from localhost ([127.0.0.1]:48442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2pQ-0008ON-5O for submit@debbugs.gnu.org; Tue, 16 Aug 2022 16:06:20 -0400 Received: from mo4-p01-ob.smtp.rzone.de ([85.215.255.54]:42559) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2pN-0008OC-FI for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 16:06:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660680374; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=fECqejbJa56Ro0FL3fAaZUK9AdCOKuSZEmSfQINfiyc=; b=SRlQVzS2oBeyWG8EdHhUNLUkVPsx9OUwmfhOJf7z3ntugsObAeCwAsNl2rq8w9iHXZ TXhDje2PLjnjR/XObVX+Bn3vB5znnI1cFwDHLmb64ZeS3QMWsxknevEPyrU3UAE+GEAM T5gsTH+0XDq5wCA9el3jgmBHoWNhsVgyEwC40Jb7A0yb8pgF/DLTLmqMO5Nh4kAx/UIN ShjDh8GbAHpUwgFEk5Et+yTu9dAinLtiLoYmd57dHf5DGSnQ0yXRWqmKiixWGazf2AZQ 4EBqCsZXZfb3ESXMyw3hCBy440K901B/e5kQ1N9dx/FVsEuUcOypS/GLjI7kUWxxnTYg GWBw== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GK6Dmru (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 22:06:13 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 22:06:13 +0200 Message-ID: <2606289.q0ZmV6gNhb@nimes> In-Reply-To: <83mtc4dqiu.fsf@gnu.org> References: <2594092.Isy0gbHreE@nimes> <83mtc4dqiu.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 wrote: > Emacs has a with-temp-file macro, which generates a temporary file > name, executes the body of the macro with a variable bound to the file > name, then deletes the file. Very handy for writing test suites. Since, even with Paul's newest patch, gen_tempname on 64-bit mingw produces the same file name as on the previous call with a probability of about 0.1%, you still need to be prepared to see the original problem occasionally. Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 16:13:00 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 20:13:00 +0000 Received: from localhost ([127.0.0.1]:48447 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2vr-00006L-Tv for submit@debbugs.gnu.org; Tue, 16 Aug 2022 16:13:00 -0400 Received: from mo4-p01-ob.smtp.rzone.de ([81.169.146.166]:36055) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO2vo-00006B-14 for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 16:12:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1660680773; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=bUBiXd1t1Q/YwLfGGSVmL+QsjVzPEbmXWc1xkuSKzXc=; b=fUKa8Fi48DBiv6doODG38eSfvIb4JLpKCT2knLkya798AkDpH6SoefugTRphmlrddu kTBzmeBlVGWH8YjujYV394oc45iozgqM6dcicYrrxDRSljA3C4x7+r/kELnjxgOBQ94z szWfpMb8v0nISE1ySmE4py3Gp9jS0N2FtPCB3cP84f4f3WDLUV7LjY6DN67zx63Av4VR m+95hzUC6/7i8WAzSbVoa3SNcOmg2vjOrRilQZlTmCMANskAv5ul9y29yBlfK7YmhfDW f3tyWg4h7x4+fzUg5wiL0GJI51t/tr+DNdJeG1H48Rmhf27XJRQAiKyiNXNHGjyRIzrv bfyw== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCR2L7hM6+Odi8PRCuZoP2/ZC83xg==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7GKCqmsa (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 16 Aug 2022 22:12:52 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii , Paul Eggert Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 16 Aug 2022 22:12:51 +0200 Message-ID: <1856780.eGJsNajkDb@nimes> In-Reply-To: References: <83o7wkdqsh.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Paul Eggert wrote: > Emacs 'configure' deliberately suppresses MinGW's clock_gettime. Ah, this explains why Eli saw the problem in Emacs in a deterministic manner, whereas I see it only with 0.3% probability in my tests on 64-bit mingw. > I installed > into Gnulib the attached patch, which I hope fixes the Emacs problem > without changing glibc's generated code (once this gets migrated back > into glibc). In 10000 runs on 64-bit mingw, your patch went from 27 test failures to 11 test failures. So, we're still at ca. 0.1% probability (*), far above the 62^-6 or 10^-10 probability that one would have hoped for. (*) I wouldn't consider these measurements reliable. Maybe the probability did not change, and what I'm seeing is merely a measurement fluke. Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 16 16:53:30 2022 Received: (at 57129) by debbugs.gnu.org; 16 Aug 2022 20:53:30 +0000 Received: from localhost ([127.0.0.1]:48495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO3Z3-00019s-Qm for submit@debbugs.gnu.org; Tue, 16 Aug 2022 16:53:30 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:35886) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oO3Yx-00019a-QI for 57129@debbugs.gnu.org; Tue, 16 Aug 2022 16:53:28 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3EE711600AF; Tue, 16 Aug 2022 13:53:17 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 0T45bcV_MrDv; Tue, 16 Aug 2022 13:53:16 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 8B4441600B3; Tue, 16 Aug 2022 13:53:16 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id OzkSKMa41q_5; Tue, 16 Aug 2022 13:53:16 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 5352E1600AF; Tue, 16 Aug 2022 13:53:16 -0700 (PDT) Message-ID: <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> Date: Tue, 16 Aug 2022 13:53:16 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: Bruno Haible , Eli Zaretskii References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <2135151.C4sosBPzcN@nimes> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell In-Reply-To: <2135151.C4sosBPzcN@nimes> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@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 (---) On 8/16/22 12:59, Bruno Haible wrote: > Since this contradicts what you debugged on mingw, I ran the test 10000 > times on native Windows. Result: > - on 32-bit mingw, no failure. > - on 64-bit mingw, around 30 failures (or around 10 failures with Paul's > newest patch). That is, a probability of ca. 0.3% of getting the same > file name as on the previous call. That's odd, for two reasons. First, 64-bit and 32-bit mingw shouldn't differ, as they both use uint_fast64_t which should be the same width on both platforms. Second, I could not reproduce the problem on 64-bit Ubuntu x86-64 (after altering tempname.c to always define HAS_CLOCK_ENTROPY to false) test-tempname always succeeded in 10000 tries. Could you investigate further why mingw 64-bit fails? From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 07:09:08 2022 Received: (at 57129) by debbugs.gnu.org; 17 Aug 2022 11:09:08 +0000 Received: from localhost ([127.0.0.1]:49546 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOGv5-0002F2-Ne for submit@debbugs.gnu.org; Wed, 17 Aug 2022 07:09:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45474) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOGv1-0002ET-9K for 57129@debbugs.gnu.org; Wed, 17 Aug 2022 07:09:07 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:36770) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOGut-0006ZI-04; Wed, 17 Aug 2022 07:08:55 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=3wgnObi32SXFt8hy0+wZ9NSUqVTKvQWjqKztMnz9gdA=; b=XD4IWY1WriL0 21w50v8My2OX90+cKskHK+Jxkai/eP0e37wiVdq6QgOf7q7mqJTIgHPXbHzWc+wJbOGC64RFh/SqB /c5X3/F4YlXpLjEqAN7QdbeTCZucTOVqQkcPPCI7m3wdH9ErpEsHRXnIk9mPfr6wAfJg1YoA2uwds URrtjL71GCwPIdjVy4aib/ByA0DFTTbC9eTOXLgW5Mlf7CqhY4UiQ9UiIQGZUJbTF3QBez8OUHNc5 +CmVkGvrbDwxKKFpWHd0ED913G7rCoZ7NeIn97u4DWDG0abPf9PlSIWCevD3p4HPDSr4DD+4ALcta Dryr8ldbBrXzhf6y9mkaxA==; Received: from [87.69.77.57] (port=2404 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOGus-0001yC-DT; Wed, 17 Aug 2022 07:08:54 -0400 Date: Wed, 17 Aug 2022 14:08:44 +0300 Message-Id: <83h72bdt4z.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: (message from Paul Eggert on Tue, 16 Aug 2022 12:11:24 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <83o7wkdqsh.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: bug-gnulib@gnu.org, larsi@gnus.org, bruno@clisp.org, 57129@debbugs.gnu.org, jporterbugs@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 (---) > Date: Tue, 16 Aug 2022 12:11:24 -0700 > Cc: bruno@clisp.org, bug-gnulib@gnu.org, larsi@gnus.org, > 57129@debbugs.gnu.org, jporterbugs@gmail.com > From: Paul Eggert > > > Thanks, but why not use 'random' instead? Emacs does have it on all > > platforms, including MS-Windows. AFAIU, it's better than 'rand'. > > If the code used 'random' then the Gnulib 'tempname' module would need > to add a dependency on the Gnulib 'random' module, which would in turn > add a cascading dependency on Gnulib's 'random_r' module. It's better to > avoid this dependency if we can easily do so. > > Come to think of it, we don't need to use 'rand' either, since > tempname.c already has a good-enough pseudorandom generator. I installed > into Gnulib the attached patch, which I hope fixes the Emacs problem > without changing glibc's generated code (once this gets migrated back > into glibc). Thanks. Would it be possible to cherry-pick this to the emacs-28 branch, so that Emacs 28.2 would have this fixed? From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 17 07:30:08 2022 Received: (at 57129) by debbugs.gnu.org; 17 Aug 2022 11:30:08 +0000 Received: from localhost ([127.0.0.1]:49621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOHFP-0005Jp-Nw for submit@debbugs.gnu.org; Wed, 17 Aug 2022 07:30:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:49722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOHFN-0004z3-3g for 57129@debbugs.gnu.org; Wed, 17 Aug 2022 07:30:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:59382) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOHFG-0005h7-Ld; Wed, 17 Aug 2022 07:29:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=QrW5Z6ND9f42Sfvj7tNzckk+QCpMBWPZDlOpjCCCZsU=; b=kV+Q1H+2sE+Y dlV74CCc6yszm5HTxPGlmmClUKSolgAAygIYwm+I6MLvCz+at/af56I3MUhOxNs7VEoIfrKCELsjy BQppG6F/p/+hXdLoXE0MFr6x9/Ivze6P0UnHcxXaynKs2nNDjpjCMniUoxDRqosBYfgZN4klVJ6LJ qyCtF6kRrmaIGqpe7A5SgKXDzlPmwDrX8IW/uMQppFoom23AtfzlIaap8ZXJ0ZTNllN995Kl+tGgf HqH3pvMH6xeUUVN8nupmQaznb5J8SqUDo41ngjckN7OKYNft3Bz2Mp7LmnE3vWhXwx04VUwsQBohb zQqu+7E6R9LR9UtJsv5JBg==; Received: from [87.69.77.57] (port=3681 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOHFG-0006jl-48; Wed, 17 Aug 2022 07:29:58 -0400 Date: Wed, 17 Aug 2022 14:29:49 +0300 Message-Id: <83czczds5u.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <2606289.q0ZmV6gNhb@nimes> (message from Bruno Haible on Tue, 16 Aug 2022 22:06:13 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <2594092.Isy0gbHreE@nimes> <83mtc4dqiu.fsf@gnu.org> <2606289.q0ZmV6gNhb@nimes> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: eggert@cs.ucla.edu, bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 16 Aug 2022 22:06:13 +0200 > > Eli Zaretskii wrote: > > Emacs has a with-temp-file macro, which generates a temporary file > > name, executes the body of the macro with a variable bound to the file > > name, then deletes the file. Very handy for writing test suites. > > Since, even with Paul's newest patch, gen_tempname on 64-bit mingw > produces the same file name as on the previous call with a probability > of about 0.1%, you still need to be prepared to see the original problem > occasionally. I'll take that risk, thank you. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 02:05:43 2022 Received: (at 57129) by debbugs.gnu.org; 18 Aug 2022 06:05:43 +0000 Received: from localhost ([127.0.0.1]:53494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOYf1-0002fV-C3 for submit@debbugs.gnu.org; Thu, 18 Aug 2022 02:05:43 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:44566) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOYez-0002fE-14 for 57129@debbugs.gnu.org; Thu, 18 Aug 2022 02:05:42 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id BADD41600C2; Wed, 17 Aug 2022 23:05:34 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id wN5rgzIdgpfx; Wed, 17 Aug 2022 23:05:34 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 19F8E1600C5; Wed, 17 Aug 2022 23:05:34 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id SeURb88oyosw; Wed, 17 Aug 2022 23:05:34 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id D24AD1600C2; Wed, 17 Aug 2022 23:05:33 -0700 (PDT) Message-ID: <57b8f10f-8e9b-5951-e5ad-8cba2a8cb569@cs.ucla.edu> Date: Wed, 17 Aug 2022 23:05:33 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Content-Language: en-US To: Eli Zaretskii References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <83o7wkdqsh.fsf@gnu.org> <83h72bdt4z.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <83h72bdt4z.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: bug-gnulib@gnu.org, larsi@gnus.org, bruno@clisp.org, 57129@debbugs.gnu.org, jporterbugs@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 (---) On 8/17/22 04:08, Eli Zaretskii wrote: > Would it be possible to cherry-pick this to the emacs-28 branch, so > that Emacs 28.2 would have this fixed? I installed that. From debbugs-submit-bounces@debbugs.gnu.org Thu Aug 18 02:45:08 2022 Received: (at 57129) by debbugs.gnu.org; 18 Aug 2022 06:45:08 +0000 Received: from localhost ([127.0.0.1]:53542 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOZHA-0003f9-Cc for submit@debbugs.gnu.org; Thu, 18 Aug 2022 02:45:08 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oOZH6-0003eJ-NR for 57129@debbugs.gnu.org; Thu, 18 Aug 2022 02:45:06 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39472) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOZH0-0006vk-Iz; Thu, 18 Aug 2022 02:44:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=4N/VGoEB19W8NNO3dELwHsJHO5eGq/c7EB4fP7Xs+ZQ=; b=QjM8cCCIJZ0n IxFjuJlzdBiBQrEwYQ89T3rJsoYN3dawtKxZvN6lmswtg3PRQlZ7RMQv2RzsaZzyqHvcnIj/jUnaG 3o+5QRm6ss4065fnQuFlZbS9Lxyto237bixF4WnrMIHD8s1upvlkRkh4Y85Hug8Jeyqh7LiALLlDB XzZvUf3fgBEsw7QsZ7WWnBPfrg/XyzVy6qKqXLQBcSncAT2Xh3Cps9Dmv9qTvlpbms2sLLmYuLNrr 5okPQ1l1pn874Ea7uGdNJScD4ox0cs8vKwr6xi6/i9fnp7MHHfGQRRLCP8ibt8WxYOK7vYwDfRZ6X M1x5ZTlbO9DZR/H3HZvA3Q==; Received: from [87.69.77.57] (port=2625 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oOZGz-0001op-3i; Thu, 18 Aug 2022 02:44:58 -0400 Date: Thu, 18 Aug 2022 09:44:48 +0300 Message-Id: <83sfluaw4f.fsf@gnu.org> From: Eli Zaretskii To: Paul Eggert In-Reply-To: <57b8f10f-8e9b-5951-e5ad-8cba2a8cb569@cs.ucla.edu> (message from Paul Eggert on Wed, 17 Aug 2022 23:05:33 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <1871347.6tgchFWduM@nimes> <838rnofgad.fsf@gnu.org> <4165399.mogB4TqSGs@nimes> <83wnb8dukz.fsf@gnu.org> <83o7wkdqsh.fsf@gnu.org> <83h72bdt4z.fsf@gnu.org> <57b8f10f-8e9b-5951-e5ad-8cba2a8cb569@cs.ucla.edu> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: bug-gnulib@gnu.org, larsi@gnus.org, bruno@clisp.org, 57129@debbugs.gnu.org, jporterbugs@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 (---) > Date: Wed, 17 Aug 2022 23:05:33 -0700 > Cc: bruno@clisp.org, bug-gnulib@gnu.org, larsi@gnus.org, > 57129@debbugs.gnu.org, jporterbugs@gmail.com > From: Paul Eggert > > On 8/17/22 04:08, Eli Zaretskii wrote: > > Would it be possible to cherry-pick this to the emacs-28 branch, so > > that Emacs 28.2 would have this fixed? > > I installed that. Thanks! From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 20 14:03:39 2022 Received: (at 57129) by debbugs.gnu.org; 20 Aug 2022 18:03:39 +0000 Received: from localhost ([127.0.0.1]:33483 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPSot-0006ky-5D for submit@debbugs.gnu.org; Sat, 20 Aug 2022 14:03:39 -0400 Received: from mail-pf1-f174.google.com ([209.85.210.174]:39669) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPSoq-0006kk-HV for 57129@debbugs.gnu.org; Sat, 20 Aug 2022 14:03:38 -0400 Received: by mail-pf1-f174.google.com with SMTP id 83so1204530pfw.6 for <57129@debbugs.gnu.org>; Sat, 20 Aug 2022 11:03:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id:from :references:cc:to:subject:from:to:cc; bh=11IrK6JhG5yVnsmTAD6RsIFZtnt51uOGHkGGl6K1QYY=; b=kCbntuuuP9HsQP6+qIRC2/uohRR52Gg20WmywnfWEuoyvhyYL7XgXWAphTCIWo8VJq wUCeb2BAwOYGV83+bft/oYqwujR5CPmzQNLr9JLIA/9flnKu9rZip9x/s5cFt5wYf6Wl uGhrSan0e8tUO9xfKhf/LOTPMb+WC/32rWBHTs2Id9ltP1DJi6IbEgQ3pMDnBRwlhkmL MzCW6MeRTOV48jZWSdtWd9bIteiE4RVdQSxepKloFfQKcvGfLfneTqqGTaIOACnEIP8C LTrDjKC4Y25DKCLiDm8Tb8dQ3Sj1kOQ2M+p0aG5gOEDFwnnh/2KvP2cS0prO05zYOdlf 5f4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-language:in-reply-to:mime-version:date:message-id:from :references:cc:to:subject:x-gm-message-state:from:to:cc; bh=11IrK6JhG5yVnsmTAD6RsIFZtnt51uOGHkGGl6K1QYY=; b=WhGudz9NTQrl5y7Fr+PuEZqikwpYTXhDo4ck5cGOGppiHRnWRcDESsIYhc+X9mODoj TrXtUjUgkTGoreKOB/j7OhBwz03HvH3/aKsCOUJiR1mjDMR0JVrxvoQS8bDT/RsphCwb XcrFizxqkuHkCW0yMLvy7yLXkYdWyfyAhcxeCGaA8wBDqb6Hp2QA8h65xnikV3yN4sPv HGPonnPT+NW0bcnRM9kYek7lg7KJFgI7R0stZ7MkdWENa58YX5H06jBzzl8qnLpfvYPA Sd9yrXu0SD+a6nAz0SRBtqHBmTGoqEjPDRqHsO1mL3v9vSQ5ZzL+tsrsk997lZCxaRaD xN7A== X-Gm-Message-State: ACgBeo3zhF2oNKghKxThgn5Um1gqx15aYnCb6E99rNs7FDlZMEGv7VTo AKYtDElFBqJF7qeYJTmYYjlbkstV/UQ= X-Google-Smtp-Source: AA6agR7F/ZbRInzcC6ZAKLiNocJFkI9cO8UqNDYeA4SmnNs0AHJmsDSXuHhTCbp6VR0geCOe/zpCjA== X-Received: by 2002:a05:6a00:1a0c:b0:528:6baa:a2e3 with SMTP id g12-20020a056a001a0c00b005286baaa2e3mr13612770pfv.27.1661018610690; Sat, 20 Aug 2022 11:03:30 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id iw3-20020a170903044300b00172c7d6badcsm1512409plb.251.2022.08.20.11.03.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 20 Aug 2022 11:03:29 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii , Paul Eggert References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> From: Jim Porter Message-ID: Date: Sat, 20 Aug 2022 11:03:27 -0700 MIME-Version: 1.0 In-Reply-To: <83ilmtgwq3.fsf@gnu.org> Content-Type: multipart/mixed; boundary="------------E1D8F599EEB8329E850EFB53" Content-Language: en-US X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is a multi-part message in MIME format. --------------E1D8F599EEB8329E850EFB53 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 8/15/2022 11:58 AM, Eli Zaretskii wrote: >> Cc: larsi@gnus.org, 57129@debbugs.gnu.org >> From: Jim Porter >> Date: Mon, 15 Aug 2022 11:30:07 -0700 >> >> The temp files are created by Eshell in lisp/eshell/esh-var.el in the >> function 'eshell-parse-variable-ref', specifically in the part starting >> with: >> >> (eq (char-after) ?\<) > > Ah, okay. It's a (mis)feature of Gnulib's gen_tempname function > (which is the guts of make-temp-file) in its implementation for > MS-Windows (and maybe other platforms?): it always begins from the > same "random" characters in the file name, and only generates other > random characters if there's already a file by that name. So if you > are careful and delete the temporary file each time after usage, and > never need more than one temporary file at the same time, you will get > the same name every call. In addition to the changes to temporary file name generation, I think it would be useful for Eshell to kill the temporary buffer too. If you use this feature in Eshell a lot, the temporary buffers could pile up, consuming memory for no real benefit. (A user who wanted the buffer to stick around would probably redirect to a non-temporary file, or even just to a buffer.) Attached is a patch to do this. --------------E1D8F599EEB8329E850EFB53 Content-Type: text/plain; charset=UTF-8; name="0001-Kill-the-buffer-associated-with-a-temp-file-when-usi.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Kill-the-buffer-associated-with-a-temp-file-when-usi.pa"; filename*1="tch" RnJvbSA2MmU0MzE2YmFkNjY0NWZmMTJlZjc1ODc3MzViOWUxYzVlNzRmZTIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjAgQXVnIDIwMjIgMTA6NDg6MzIgLTA3MDAKU3ViamVjdDogW1BB VENIXSBLaWxsIHRoZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIGEgdGVtcCBmaWxlIHdoZW4g dXNpbmcKICckPGNvbW1hbmQ+JyBpbiBFc2hlbGwKCiogbGlzcC9lc2hlbGwvZXNoLXZhci5l bCAoZXNoZWxsLXBhcnNlLXZhcmlhYmxlLXJlZik6IEtpbGwgdGhlIHRlbXAKZmlsZSdzIGJ1 ZmZlciB3aGVuIHdlJ3JlIGRvbmUuCi0tLQogbGlzcC9lc2hlbGwvZXNoLXZhci5lbCB8IDcg KysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9lc2gtdmFyLmVsIGIvbGlzcC9lc2hlbGwv ZXNoLXZhci5lbAppbmRleCAyZjY2MTRiNWQ3Li5hOWRmMTcyZTg4IDEwMDY0NAotLS0gYS9s aXNwL2VzaGVsbC9lc2gtdmFyLmVsCisrKyBiL2xpc3AvZXNoZWxsL2VzaC12YXIuZWwKQEAg LTQ5MCw4ICs0OTAsMTEgQEAgZXNoZWxsLXBhcnNlLXZhcmlhYmxlLXJlZgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgOzsgYnkgYGVzaGVsbC1kby1ldmFsJywgd2hpY2ggcmVxdWly ZXMgdmVyeQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgcGFydGljdWxhciBmb3Jt cyBpbiBvcmRlciB0byB3b3JrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBwcm9w ZXJseS4gIFNlZSBidWcjNTQxOTAuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAobGlz dCAoZnVuY3Rpb24gKGxhbWJkYSAoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZGVsZXRlLWZpbGUgLHRlbXApKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIChsaXN0IChmdW5jdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChsYW1iZGEgKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxl dGUtZmlsZSAsdGVtcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3 aGVuLWxldCAoKGJ1ZmZlciAoZ2V0LWZpbGUtYnVmZmVyICx0ZW1wKSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChraWxsLWJ1ZmZlciBidWZmZXIpKSkpKSkp CiAgICAgICAgICAgICAgICAgICAgKGVzaGVsbC1hcHBseS1pbmRpY2VzICx0ZW1wIGluZGlj ZXMgLGVzaGVsbC1jdXJyZW50LXF1b3RlZCkpKQogICAgICAgICAgICAgKGdvdG8tY2hhciAo MSsgZW5kKSkpKSkpKQogICAgKChlcSAoY2hhci1hZnRlcikgP1woKQotLSAKMi4yNS4xCgo= --------------E1D8F599EEB8329E850EFB53-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 20 14:14:16 2022 Received: (at 57129) by debbugs.gnu.org; 20 Aug 2022 18:14:16 +0000 Received: from localhost ([127.0.0.1]:33496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPSzA-00070e-8m for submit@debbugs.gnu.org; Sat, 20 Aug 2022 14:14:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPSz9-00070S-6s for 57129@debbugs.gnu.org; Sat, 20 Aug 2022 14:14:15 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42140) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oPSz2-0000Eo-EY; Sat, 20 Aug 2022 14:14:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=3BKn7t3LSSTt3LBx3/aqXFcP93BMlDseJKFF6jq1AFI=; b=R6dcr7ROG9y1 f0wl9GYyd6HvIhmIt2JrxLJDcJtvxZQodSejEoWe6cXQ8Qrx11VtDSF12b9Y91eKdxHiGeariILcl XP9YEzPuayktiZavRfE0eKa4WN030dd4+7TDhh0GbiSQnZuL2w1k4AKadKsyBz+POT5OSQ4hEVMbL rCx8FI9ehokwfJ5a/on9LCV9cn0I023gGLOriYaHJMBr1fglFoba3ahHuu4mnUiEDmdlQKU9i4Y9G tHpRwHnqyRUl1AEcOftPocI9sOUuaGMAbHpHN+BvUStqq0wHftb4fZNY0YH03MoeGqtcJ9Fm6yvX9 e4UqX1Ar1Sr6T2ffvzSRpQ==; Received: from [87.69.77.57] (port=4884 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oPSz1-0004KE-Mt; Sat, 20 Aug 2022 14:14:08 -0400 Date: Sat, 20 Aug 2022 21:14:07 +0300 Message-Id: <83v8qmdbps.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: (message from Jim Porter on Sat, 20 Aug 2022 11:03:27 -0700) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, eggert@cs.ucla.edu, 57129@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 (---) > Cc: larsi@gnus.org, 57129@debbugs.gnu.org > From: Jim Porter > Date: Sat, 20 Aug 2022 11:03:27 -0700 > > In addition to the changes to temporary file name generation, I think it > would be useful for Eshell to kill the temporary buffer too. If you use > this feature in Eshell a lot, the temporary buffers could pile up, > consuming memory for no real benefit. (A user who wanted the buffer to > stick around would probably redirect to a non-temporary file, or even > just to a buffer.) Attached is a patch to do this. That makes sense, of course, but why not use with-temp-buffer in the first place? From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 20 14:49:48 2022 Received: (at 57129) by debbugs.gnu.org; 20 Aug 2022 18:49:48 +0000 Received: from localhost ([127.0.0.1]:33515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPTXX-0007uL-PQ for submit@debbugs.gnu.org; Sat, 20 Aug 2022 14:49:48 -0400 Received: from mail-pf1-f173.google.com ([209.85.210.173]:36558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPTXS-0007tz-Gz for 57129@debbugs.gnu.org; Sat, 20 Aug 2022 14:49:46 -0400 Received: by mail-pf1-f173.google.com with SMTP id w29so1409468pfj.3 for <57129@debbugs.gnu.org>; Sat, 20 Aug 2022 11:49:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:from:to:cc; bh=uneXAV4uRtoc741SnlonZ3qbDLUc//XJd2j2a4ewbLY=; b=nHwObuo13c6hQMipq9UGC2gY6G/ghaE/5u/CEmAuP2xpvn/UDYufWWHI4zsOU+K6Cm jvw+w6riqeSZ13tD3XO7UZDJOzXaXJhwWED54hfCp002zHX8fMAM0gMmHMohCRYCXkwC hNPfuacZQtJv6yE9GbBH3U2Yld+FEz4HT5DzepcwnqYpif8/khsulyxCduvuETTA+T+V HVYmKXANq9ZTL2nCXanyFDSI0b+VwFZpWuVbpqo0aZwt+aG9SPMOEVz1rJ4wAlDmPsY1 7Z5OfMCdRWw7bF01dHOCGBR63X+cAQn3U/kEyPTjdKspCZw9zXiGZHoynUHqmr0LsQ9N XGaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:from:references:cc:to:subject:x-gm-message-state :from:to:cc; bh=uneXAV4uRtoc741SnlonZ3qbDLUc//XJd2j2a4ewbLY=; b=HjIQDSM4ANEhc/u12JrEOLsuL2NFpvjNEq9TVGLpSWxpXg14+NvL9Rao6/4dELAxNl ZU9D0Axm86m63PVbmokQ5BakitNbL3HF/Vmv71pN1KursI1z/uyU1LfmKlXgwUTH7MOq jDVpUnuf4r1CvqvJqHcCQVHbmcBtx4Kh7sInXH9DLYXMp+z2c/UNEGH487Ohdl/OmPAZ QNAuOOe/xL3QfK8BKNyCHvtqDHQ8ZSD25oh+35Xy0rUSbYN2O2P5ur0PuBx2vkA3lpdJ vSCbLA8ppYI5y3aK+gGBlGKZdG3fWx6FY077kZdZwSYM2mCYgnSK5v1/jOOTh9hvklgS Pbdw== X-Gm-Message-State: ACgBeo3R2dhK0nhOyvVM2HD2DITSGI4yRULDMJFc56umXBLQhxNVtxPP otvmKLVQ9PMISQSzHk8FbTUWhECK+HE= X-Google-Smtp-Source: AA6agR4VjRGR9RjbfEmUjtu6VKRylCJ2ZzVJ1WpLdz5bLPweItn0D/M/n2aPALQ1jnkhhukxiGvGvQ== X-Received: by 2002:a63:cc51:0:b0:41f:12f5:675b with SMTP id q17-20020a63cc51000000b0041f12f5675bmr10714694pgi.69.1661021376708; Sat, 20 Aug 2022 11:49:36 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id 75-20020a62144e000000b00534a7a127bcsm5547962pfu.164.2022.08.20.11.49.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 20 Aug 2022 11:49:35 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell To: Eli Zaretskii References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> <83v8qmdbps.fsf@gnu.org> From: Jim Porter Message-ID: <4f4b034b-6531-b7e3-2a4d-acecfc1acae3@gmail.com> Date: Sat, 20 Aug 2022 11:49:34 -0700 MIME-Version: 1.0 In-Reply-To: <83v8qmdbps.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, eggert@cs.ucla.edu, 57129@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 8/20/2022 11:14 AM, Eli Zaretskii wrote: >> Cc: larsi@gnus.org, 57129@debbugs.gnu.org >> From: Jim Porter >> Date: Sat, 20 Aug 2022 11:03:27 -0700 >> >> In addition to the changes to temporary file name generation, I think it >> would be useful for Eshell to kill the temporary buffer too. If you use >> this feature in Eshell a lot, the temporary buffers could pile up, >> consuming memory for no real benefit. (A user who wanted the buffer to >> stick around would probably redirect to a non-temporary file, or even >> just to a buffer.) Attached is a patch to do this. > > That makes sense, of course, but why not use with-temp-buffer in the > first place? I'm not sure that would work in this case. 'with-temp-buffer' (or probably 'with-temp-file', since we want a real file) would clean everything up once BODY has executed, but we want to perform cleanup in a hook, which might execute quite a while later (e.g. if passing this temp file to an external process). If there's a way to use that though, I'm all for it. From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 21 12:21:00 2022 Received: (at 57129) by debbugs.gnu.org; 21 Aug 2022 16:21:00 +0000 Received: from localhost ([127.0.0.1]:36636 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPnh6-0005aH-BY for submit@debbugs.gnu.org; Sun, 21 Aug 2022 12:21:00 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.24]:41447) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPnh4-0005a8-21 for 57129@debbugs.gnu.org; Sun, 21 Aug 2022 12:20:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1661098853; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=FHZVqMp3q+2vRVjD/hH+pGPZioEQGoUa/9h7Lz40kEY=; b=rd2Y+knyOFA8ro0ad0OtjucoUKbouj+X7WME0/EaS1miZGSzXbpEFhqlZjKLgG/7I2 qtHLZQPPu/TdXuju7urEukTksTBpdg7Y0a7CuXdUiwC84tmtGniS+FjO8QaN2eIas0b2 ZlGn/XlkkHvREBrav0etY56azxB5wX3j52I5j3RVQj3wrBBM8lpfgyVCzlW1qyFStlss PQzi0r2dvO8XQNnM9K/JSl13XD6JoiWOB4hz9AOK8M2O6Rx9IvkfAP64cucCZQf+/PI8 E932+/KpViLonbjSRYLhz0Ch+bB0MG21IpLHTsEOX5zH3e8mtRv5JyQsWDYv0qpnqO3f aL4g== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pDF2uL3XvxqkO7mdhiJBa+hRD1V" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7LGKqP4W (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Sun, 21 Aug 2022 18:20:52 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii , Paul Eggert Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Sun, 21 Aug 2022 18:20:52 +0200 Message-ID: <1903912.fIoEIV5pvu@nimes> In-Reply-To: <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> References: <2135151.C4sosBPzcN@nimes> <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart3787166.fW5hKsROvD" Content-Transfer-Encoding: 7Bit X-Spam-Score: 2.0 (++) 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: Paul Eggert wrote: > > Since this contradicts what you debugged on mingw, I ran the test 10000 > > times on native Windows. Result: > > - on 32-bit mingw, no failure. > > - on 64-bit mingw, around 30 [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 SPF_NONE SPF: sender does not publish an SPF Record -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [85.215.255.24 listed in list.dnswl.org] 2.0 PDS_OTHER_BAD_TLD Untrustworthy TLDs [URI: gl-temp-hgtmvy.xyz (xyz)] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 1.0 (+) This is a multi-part message in MIME format. --nextPart3787166.fW5hKsROvD Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Paul Eggert wrote: > > Since this contradicts what you debugged on mingw, I ran the test 10000 > > times on native Windows. Result: > > - on 32-bit mingw, no failure. > > - on 64-bit mingw, around 30 failures (or around 10 failures with Paul's > > newest patch). That is, a probability of ca. 0.3% of getting the same > > file name as on the previous call. > > That's odd, for two reasons. First, 64-bit and 32-bit mingw shouldn't > differ, as they both use uint_fast64_t which should be the same width on > both platforms. Second, I could not reproduce the problem on 64-bit > Ubuntu x86-64 (after altering tempname.c to always define > HAS_CLOCK_ENTROPY to false) test-tempname always succeeded in 10000 tries. > > Could you investigate further why mingw 64-bit fails? That's odd indeed, and here are more detailed results. I changed test-tempname.c to skip the case 1 and execute only case 2, and added printf statements per the attached tempname.c.diff. Then ran $ for i in `seq 1000`; do ./test-tempname.exe; done 2>&1 | tee out1000 In 32-bit mingw, the result is fully deterministic: each run behaves the same. The first file name is always gl-temp-3FXzHa.xyz; the second file name is always gl-temp-HgtmVy.xyz. Thus, for a single Emacs process, things will look fine, but as soon as someone starts to use temporary files in two different Emacs processes, in the way Eli described, there will be massive collisions. In 64-bit mingw, the 'tempname 1' value is deterministic. This simply shows that Windows 10 does not use address space randomization (ASLR). The 'tempname 2' value is unique 99% of the time: $ grep 'tempname 2' out1000-mingw64 | sort | uniq -d | wc -l 8 The interesting thing is that each of the duplicate values of v is occurring in the same process: $ grep 'tempname 2' out1000-mingw64 | sort | uniq -d tempname 2 v=0x00c1efa91fb60900 tempname 2 v=0x32ccb2946974f2f6 tempname 2 v=0x5cafcc69e359a147 tempname 2 v=0x6d0676018e27d771 tempname 2 v=0x6d95bd6083168079 tempname 2 v=0x7cb95116ffae8ece tempname 2 v=0xe0afc7086808ce33 tempname 2 v=0xe46a60c28fb0ec7f $ grep 'tempname 2' out1000-mingw64 | grep -n 0x00c1efa91fb60900 560:tempname 2 v=0x00c1efa91fb60900 561:tempname 2 v=0x00c1efa91fb60900 $ grep 'tempname 2' out1000-mingw64 | grep -n 0x32ccb2946974f2f6 1129:tempname 2 v=0x32ccb2946974f2f6 1130:tempname 2 v=0x32ccb2946974f2f6 etc. So, in this environment, different Emacs processes will not conflict. But within a single Emacs process, with 1% probability, the two resulting file names are the same. Bruno --nextPart3787166.fW5hKsROvD Content-Disposition: attachment; filename="tempname.c.diff" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="tempname.c.diff" --- lib/tempname.c 2022-08-16 21:27:10.455608233 +0200 +++ tempname.c 2022-08-17 01:55:47.590241280 +0200 @@ -308,6 +308,7 @@ for (count = 0; count < attempts; ++count) { +fprintf(stderr,"tempname 1 v=0x%016llx\n", v); fflush(stderr); for (size_t i = 0; i < x_suffix_len; i++) { if (vdigits == 0) @@ -315,6 +316,7 @@ do { v = random_bits (v, use_getrandom); +fprintf(stderr,"tempname 2 v=0x%016llx\n", v); fflush(stderr); use_getrandom = true; } while (unfair_min <= v); @@ -326,7 +328,7 @@ v /= 62; vdigits--; } - +fprintf(stderr,"tempname filename=%s\n", tmpl); fflush(stderr); fd = tryfunc (tmpl, args); if (fd >= 0) { --nextPart3787166.fW5hKsROvD Content-Disposition: attachment; filename="out1000-mingw32.gz" Content-Transfer-Encoding: base64 Content-Type: application/gzip; name="out1000-mingw32.gz" H4sICE5VAmMCA291dDEwMDAtbWluZ3czMgDtzzEKwkAQBdDeU+QCykbNamMrOYHYbmIighGLIOrp RUHSidj6phrmD3xe33TnU+qaLM8uq3ANw+yKtlqO+nc+feUxpjiNoajTsgp1KIa8PRyb57LaH8fP 43i23t7LNLne7sPTdyVVm7fzxaxO+a6Jiyr/UFLu+25z+6WEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISE hISEhISEhISEhISEhISEhISE5K8lDyQIU0cQFQMA --nextPart3787166.fW5hKsROvD Content-Disposition: attachment; filename="out1000-mingw64.gz" Content-Transfer-Encoding: base64 Content-Type: application/gzip; name="out1000-mingw64.gz" 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 34f8W+5h/wGe3BhJECQDAA== --nextPart3787166.fW5hKsROvD-- From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 21 12:32:19 2022 Received: (at 57129) by debbugs.gnu.org; 21 Aug 2022 16:32:19 +0000 Received: from localhost ([127.0.0.1]:36642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPns2-0005t6-PS for submit@debbugs.gnu.org; Sun, 21 Aug 2022 12:32:19 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46590) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPnry-0005sq-BM for 57129@debbugs.gnu.org; Sun, 21 Aug 2022 12:32:17 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:42334) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oPnrs-0002cv-He; Sun, 21 Aug 2022 12:32:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ndMwKWcLd7I0vDFcpDD8cVd1xrAJL5EhYlYPrUP8Mlo=; b=eISpJfCgcomc LCwxkQkV+5zXepVfmBii1Upgevi79kOnUywAsto4YlUBlscmHuJQF3xZdIVcvUeFUN0sWea00d9m3 f0lXMelaWZQlYGYdGVehCDo9p6XOFnaTTHOtzPTMd/K3by9AZiBwDXqgrURNxyNzy+t5dip5uvkp0 HxeTQ2QqcCO/oVU/BJHn8LUy2Kt3Y2MobeVanAKqfPktrVyPq4qkt3XmtO9GzPtR4JoVHcQfmBmch VeNWbiLzhGX16VIDEYWXNRhku8miwHTGFxowVJxfSKjyg7y4oUs9eIpI5jHtBF+MRe7Z2Kzv+dWyl 073OyBTjTtIxglZMP5bmVQ==; Received: from [87.69.77.57] (port=4657 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oPnrs-0002ya-1H; Sun, 21 Aug 2022 12:32:08 -0400 Date: Sun, 21 Aug 2022 19:32:09 +0300 Message-Id: <83mtbxblrq.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <1903912.fIoEIV5pvu@nimes> (message from Bruno Haible on Sun, 21 Aug 2022 18:20:52 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <2135151.C4sosBPzcN@nimes> <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> <1903912.fIoEIV5pvu@nimes> X-Spam-Score: -0.3 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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.3 (-) > From: Bruno Haible > Cc: bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Sun, 21 Aug 2022 18:20:52 +0200 > > I changed test-tempname.c to skip the case 1 and execute only case 2, and > added printf statements per the attached tempname.c.diff. Then ran > $ for i in `seq 1000`; do ./test-tempname.exe; done 2>&1 | tee out1000 > > In 32-bit mingw, the result is fully deterministic: each run behaves the same. > The first file name is always gl-temp-3FXzHa.xyz; > the second file name is always gl-temp-HgtmVy.xyz. > > Thus, for a single Emacs process, things will look fine, but as soon as someone > starts to use temporary files in two different Emacs processes, in the way Eli > described, there will be massive collisions. > > In 64-bit mingw, the 'tempname 1' value is deterministic. This simply shows > that Windows 10 does not use address space randomization (ASLR). Some of these problems could be alleviated if the initial value of 'v' depended on something non-deterministic, like the program's PID and/or the current wallclock time (no need to use anything as fancy as clock_gettime, a simple call to 'clock' should be enough). From debbugs-submit-bounces@debbugs.gnu.org Sun Aug 21 13:17:17 2022 Received: (at 57129) by debbugs.gnu.org; 21 Aug 2022 17:17:17 +0000 Received: from localhost ([127.0.0.1]:36668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPoZY-000714-G4 for submit@debbugs.gnu.org; Sun, 21 Aug 2022 13:17:17 -0400 Received: from mo4-p01-ob.smtp.rzone.de ([81.169.146.164]:42339) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oPoZU-00070r-SO for 57129@debbugs.gnu.org; Sun, 21 Aug 2022 13:17:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1661102229; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=7p2fJ2joyK+HzmmjqJSERB4SqXIT3T2Rfv04xhYyfoE=; b=mWpuOYLTuT9d5BvuP+zHcWpeR9v+O4Pe5Iy1cvobRIfrng3mMzr5X9FPPjWrpKY5Du Y0Uv9bMHBQVuWRZZivpKZ3xJOUuuyIz0bwXUZw6f13kX95Z6qKI9AW5CIZ2tGRpnRq+Q 4yyiKvBhFjJneZ0ZNTHxRoirr4z827GJZIIOB+7gWkpyxE6Ssc7WLHtiiXslS3aWAnWg 3Ce6z2XsWCmV5dluwMqOqUuVCnkZi9NSpqOQhjXmIGxgJt0TPkd+xo1cs+eda6kZsYtt uCDMFEXBPycK63+E57b6JR5D2kES/S15ZbpYG1BngP7vfm8oZpjjBUpmLqkPs74ovrJR O51g== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pDF2uL3XvxqkO7mdhiJBa+hRD1V" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7LHH8P9Q (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Sun, 21 Aug 2022 19:17:08 +0200 (CEST) From: Bruno Haible To: Paul Eggert Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Sun, 21 Aug 2022 19:17:08 +0200 Message-ID: <2758072.AiC22s8V5E@nimes> In-Reply-To: <1903912.fIoEIV5pvu@nimes> References: <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> <1903912.fIoEIV5pvu@nimes> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, Eli Zaretskii , bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Paul Eggert asked: > > Could you investigate further why mingw 64-bit fails? Some words on the "why". You seem to have expectations regarding the distribution quality of the resulting file names, but these expectations are not warranted. Donald E. Knuth wrote in TAOCP vol 2 "Seminumerical algorithms" that an arbitrary sequence of number manipulating operations usually has a bad quality as a pseudo-random number generator, and that in order to get good quality pseudo-random numbers, one needs to use *specific* pseudo-random number generators and then *prove* mathematical properties of it. (The same is true, btw, for crypto algorithms.) Then he started discussing linear congruential generators [1] as the simplest example for which something could be proved. The current source code of tempname.c generates the pseudo-random numbers =E2=80=94 assuming no HAS_CLOCK_ENTROPY and no ASLR =E2=80=94 using a mix o= f three operations: (A) A linear congruential generator [2] with m =3D 2^64, a =3D 2862933555777941757, c =3D 3037000493. (B) A floor operation: v =E2=86=90 floor(v / 62^6) (C) A xor operation: v ^=3D prev_v There are three different questions: (Q1) What is the expected quality inside a single gen_tempname call? (Q2) What is the expected quality of multiple gen_tempname calls in a single process? (Q3) What is the expected quality when considering different processes that call gen_tempname? Answers: (Q1) For just 6 'X'es, there is essentially a single (A) operation. Therefore the quality will be good. If someone uses more than 10 'X'es, for example, 50 'X'es, there will be 5 (A) and 5 (B), interleaved: (A), (B), (A), (B), ... This is *not* a linear congruential generator, therefore the expected quality is BAD. In order to fix this case, what I would do is to get back to a linear congruential generator: (A), (A), ..., (A), (B). In other words, feed into (A) exactly the output from the previous (A). This means, do the statements XXXXXX[i] =3D letters[v % 62]; v /=3D 62; not on v itself, but on a copy of v. But wait, there is also the desire to have predictability! This means to not consume all the possible bits the random_bits() call, but only part of it. What I would do here, is to reduce BASE_62_DIGITS from 10 to 6. So that in each round of the loop, 6 base-62 digits are consumed and more than 4 base-62 digits are left in v, for predictability. In the usual calls with 6 'X'es the loop will still end after a single round. (Q2) First of all, the multiple gen_tempname calls can occur in different threads. Since no locking is involved, it is undefined behaviour to access the 'prev_v' variable from different threads. On machines with an IA-64 CPU, the 'prev_v' variable's value may not be propagated from one thread to the other. [3][4][5] The fix is simple, though: Mark 'prev_v' as 'volatile'. Then, what the code does, is a mix of (A), (B), (C). Again, this is *not* a linear congruential generator, therefore the expected quality is BAD. To get good quality, I would suggest to use a linear congruential generator across *all* gen_tempname calls of the entire thread. This means: - Move out the (B) invocations out, like explained above in (Q1). - Remove the (C) code that you added last week. - Store the v value in a per-thread variable. Using '__thread' on glibc systems and a TLS variable (#include "glthread/tls.h") on the other platforms. (Q3) Here, to force differences between different processes, I would suggest to use a fine-grained clock value. In terms of platforms, #if defined CLOCK_MONOTONIC && HAVE_CLOCK_GETTIME is way too restrictive. How about - using CLOCK_REALTIME when CLOCK_MONOTONIC is not available, - using gettimeofday() as fallback, especially on native Windows. If one does (Q3), then the suggestions for (Q2) (other than the 'volatile') may not be needed. Bruno [1] https://en.wikipedia.org/wiki/Linear_congruential_generator [2] https://en.wikipedia.org/wiki/Linear_congruential_generator#c_%E2%89%A0= _0 [3] https://es.cs.uni-kl.de/publications/datarsg/Geor16.pdf [4] https://db.in.tum.de/teaching/ws1718/dataprocessing/chapter3.pdf?lang= =3Dde page 18 [5] https://os.inf.tu-dresden.de/Studium/DOS/SS2014/04-Memory-Consistency.p= df From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 22 16:47:46 2022 Received: (at 57129) by debbugs.gnu.org; 22 Aug 2022 20:47:46 +0000 Received: from localhost ([127.0.0.1]:41908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQEKn-00046M-GU for submit@debbugs.gnu.org; Mon, 22 Aug 2022 16:47:46 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:50866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQEKl-00045c-9X for 57129@debbugs.gnu.org; Mon, 22 Aug 2022 16:47:44 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5B8EF1600BB; Mon, 22 Aug 2022 13:47:37 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 0_wFOfn2DugD; Mon, 22 Aug 2022 13:47:35 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 23D411600BC; Mon, 22 Aug 2022 13:47:35 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 734Q_I9nhpKQ; Mon, 22 Aug 2022 13:47:35 -0700 (PDT) Received: from [192.168.0.205] (ip72-206-2-24.fv.ks.cox.net [72.206.2.24]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 707061600BB; Mon, 22 Aug 2022 13:47:34 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------1ZG3DV5ZpCtFgcw5NgIJL5PY" Message-ID: <2dc7ede0-eca7-baf5-f89a-f5d292b80808@cs.ucla.edu> Date: Mon, 22 Aug 2022 15:47:28 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Content-Language: en-US To: Bruno Haible References: <2271941c-3ac3-1525-4d9f-62c757641d6c@cs.ucla.edu> <1903912.fIoEIV5pvu@nimes> <2758072.AiC22s8V5E@nimes> From: Paul Eggert In-Reply-To: <2758072.AiC22s8V5E@nimes> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, Eli Zaretskii , bug-gnulib@gnu.org, larsi@gnus.org, 57129@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 (---) This is a multi-part message in MIME format. --------------1ZG3DV5ZpCtFgcw5NgIJL5PY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for the detailed diagnosis, Bruno. To try to fix the problems I installed the attached patches into Gnulib. If I understand things correctly, these patches should fix the 0.1% failure rate you observed on 64-bit mingw. They also fix a minor security leak I discovered: in rare cases, ASLR entropy was used to generate publicly visible file names, which is a no-no as that might help an attacker infer the randomized layout of a victim process. These fixes follow some but not all the suggestions you made. The basic problem I saw was that tempname.c was using too much belt-and-suspenders code, so much so that the combination of belts and suspenders misbehaved. I simplified it a bit and this removed the need for some of the suggestions. These fixes should be merged into glibc upstream since they fix glibc bugs; I plan to follow up on that shortly. --------------1ZG3DV5ZpCtFgcw5NgIJL5PY Content-Type: text/x-patch; charset=UTF-8; name="0001-tempname-merge-64-bit-time_t-fix-from-glibc.patch" Content-Disposition: attachment; filename="0001-tempname-merge-64-bit-time_t-fix-from-glibc.patch" Content-Transfer-Encoding: base64 RnJvbSA4MzA0NjE3Njg0YmE3ZjcxYzM2ZmNmNDk3ODZkM2IyNzlkZmJlZmMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDEyOjIyOjUyIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAxLzNdIHRlbXBuYW1lOiBtZXJnZSA2NC1iaXQgdGltZV90IGZpeCBmcm9tIGdsaWJjCgpU aGlzIG1lcmdlcyBnbGliYyBjb21taXQgNTJhNWZlNzBhMmM3NzkzNWFmZTgwN2ZiNmU5MDRl NTEyZGRkODk0ZQoiVXNlIDY0IGJpdCB0aW1lX3Qgc3RhdCBpbnRlcm5hbGx5Ii4KKiBsaWIv dGVtcG5hbWUuYyAoc3RydWN0X3N0YXQ2NCkgW19MSUJDXTogVXNlIHN0cnVjdCBfX3N0YXQ2 NF90NjQuCihfX2xzdGF0NjRfdGltZTY0KSBbIV9MSUJDXTogUmVuYW1lIGZyb20gX19sc3Rh dDY0LgpBbGwgdXNlcyBjaGFuZ2VkLgooZGlyZXhpc3RzKTogVXNlIF9fc3RhdDY0X3RpbWU2 NCBpbnN0ZWFkIG9mIF9fc3RhdDY0LgotLS0KIENoYW5nZUxvZyAgICAgIHwgMTAgKysrKysr KysrKwogbGliL3RlbXBuYW1lLmMgfCAgOCArKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAx NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxv ZyBiL0NoYW5nZUxvZwppbmRleCBkZTExM2NlMDgxLi5hZGI0NDVkZGNmIDEwMDY0NAotLS0g YS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDgt MjIgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJdGVtcG5hbWU6IG1l cmdlIDY0LWJpdCB0aW1lX3QgZml4IGZyb20gZ2xpYmMKKwlUaGlzIG1lcmdlcyBnbGliYyBj b21taXQgNTJhNWZlNzBhMmM3NzkzNWFmZTgwN2ZiNmU5MDRlNTEyZGRkODk0ZQorCSJVc2Ug NjQgYml0IHRpbWVfdCBzdGF0IGludGVybmFsbHkiLgorCSogbGliL3RlbXBuYW1lLmMgKHN0 cnVjdF9zdGF0NjQpIFtfTElCQ106IFVzZSBzdHJ1Y3QgX19zdGF0NjRfdDY0LgorCShfX2xz dGF0NjRfdGltZTY0KSBbIV9MSUJDXTogUmVuYW1lIGZyb20gX19sc3RhdDY0LgorCUFsbCB1 c2VzIGNoYW5nZWQuCisJKGRpcmV4aXN0cyk6IFVzZSBfX3N0YXQ2NF90aW1lNjQgaW5zdGVh ZCBvZiBfX3N0YXQ2NC4KKwogMjAyMi0wOC0xNiAgQnJ1bm8gSGFpYmxlICA8YnJ1bm9AY2xp c3Aub3JnPgogCiAJdGVtcG5hbWU6IEFkZCBtb3JlIHRlc3RzLgpkaWZmIC0tZ2l0IGEvbGli L3RlbXBuYW1lLmMgYi9saWIvdGVtcG5hbWUuYwppbmRleCA1YWRmZTYyOWE4Li40ZjYxNWI5 MGI5IDEwMDY0NAotLS0gYS9saWIvdGVtcG5hbWUuYworKysgYi9saWIvdGVtcG5hbWUuYwpA QCAtNTUsMTQgKzU1LDE0IEBACiAjaW5jbHVkZSA8dGltZS5oPgogCiAjaWYgX0xJQkMKLSMg ZGVmaW5lIHN0cnVjdF9zdGF0NjQgc3RydWN0IHN0YXQ2NAorIyBkZWZpbmUgc3RydWN0X3N0 YXQ2NCBzdHJ1Y3QgX19zdGF0NjRfdDY0CiAjIGRlZmluZSBfX3NlY3VyZV9nZXRlbnYgX19s aWJjX3NlY3VyZV9nZXRlbnYKICNlbHNlCiAjIGRlZmluZSBzdHJ1Y3Rfc3RhdDY0IHN0cnVj dCBzdGF0CiAjIGRlZmluZSBfX2dlbl90ZW1wbmFtZSBnZW5fdGVtcG5hbWUKICMgZGVmaW5l IF9fbWtkaXIgbWtkaXIKICMgZGVmaW5lIF9fb3BlbiBvcGVuCi0jIGRlZmluZSBfX2xzdGF0 NjQoZmlsZSwgYnVmKSBsc3RhdCAoZmlsZSwgYnVmKQorIyBkZWZpbmUgX19sc3RhdDY0X3Rp bWU2NChmaWxlLCBidWYpIGxzdGF0IChmaWxlLCBidWYpCiAjIGRlZmluZSBfX3N0YXQ2NChm aWxlLCBidWYpIHN0YXQgKGZpbGUsIGJ1ZikKICMgZGVmaW5lIF9fZ2V0cmFuZG9tIGdldHJh bmRvbQogIyBkZWZpbmUgX19jbG9ja19nZXR0aW1lNjQgY2xvY2tfZ2V0dGltZQpAQCAtMTA1 LDcgKzEwNSw3IEBAIHN0YXRpYyBpbnQKIGRpcmV4aXN0cyAoY29uc3QgY2hhciAqZGlyKQog ewogICBzdHJ1Y3Rfc3RhdDY0IGJ1ZjsKLSAgcmV0dXJuIF9fc3RhdDY0IChkaXIsICZidWYp ID09IDAgJiYgU19JU0RJUiAoYnVmLnN0X21vZGUpOworICByZXR1cm4gX19zdGF0NjRfdGlt ZTY0IChkaXIsICZidWYpID09IDAgJiYgU19JU0RJUiAoYnVmLnN0X21vZGUpOwogfQogCiAv KiBQYXRoIHNlYXJjaCBhbGdvcml0aG0sIGZvciB0bXBuYW0sIHRtcGZpbGUsIGV0Yy4gIElm IERJUiBpcwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHRyeV9ub2NyZWF0ZSAoY2hhciAqdG1wbCwg X0dMX1VOVVNFRCB2b2lkICpmbGFncykKIHsKICAgc3RydWN0X3N0YXQ2NCBzdDsKIAotICBp ZiAoX19sc3RhdDY0ICh0bXBsLCAmc3QpID09IDAgfHwgZXJybm8gPT0gRU9WRVJGTE9XKQor ICBpZiAoX19sc3RhdDY0X3RpbWU2NCAodG1wbCwgJnN0KSA9PSAwIHx8IGVycm5vID09IEVP VkVSRkxPVykKICAgICBfX3NldF9lcnJubyAoRUVYSVNUKTsKICAgcmV0dXJuIGVycm5vID09 IEVOT0VOVCA/IDAgOiAtMTsKIH0KLS0gCjIuMzcuMgoK --------------1ZG3DV5ZpCtFgcw5NgIJL5PY Content-Type: text/x-patch; charset=UTF-8; name="0002-tempname-fix-multithreading-ASLR-leak-etc.patch" Content-Disposition: attachment; filename="0002-tempname-fix-multithreading-ASLR-leak-etc.patch" Content-Transfer-Encoding: base64 RnJvbSA5Y2U1NzNjZGUwMTcxODJhNjk4ODEyNDFlODU2NWVjMDRlNWJjNzI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDEyOjA3OjI3IC0wNzAwClN1YmplY3Q6IFtQQVRD SCAyLzNdIHRlbXBuYW1lOiBmaXggbXVsdGl0aHJlYWRpbmcsIEFTTFIgbGVhayBldGMuCgpG aXggcHJvYmxlbXMgd2l0aCB0ZW1wbmFtZSBhbmQgbXVsdGl0aHJlYWRpbmcsIGVudHJvcHkg bG9zcywKYW5kIG1pc3NpbmcgY2xvY2sgZGF0YSAodGhpcyBsYXN0IG9uIG5vbi1HTlUgcGxh dGZvcm1zKS4KU2VlIGFuYWx5c2lzIGJ5IEJydW5vIEhhaWJsZSBpbjoKaHR0cHM6Ly9idWdz LmdudS5vcmcvNTcxMjkjMTQ5CldoaWxlIGxvb2tpbmcgaW50byB0aGlzLCBJIG5vdGljZWQg dGhhdCB0ZW1wbmFtZSBjYW4gbGVhawppbmZvIGRlcml2ZWQgZnJvbSBBU0xSIGludG8gcHVi bGljbHktdmlzaWJsZSBmaWxlIG5hbWVzLAp3aGljaCBpcyBhIG5vLW5vLiAgRml4IHRoYXQg dG9vLgoqIGxpYi90ZW1wbmFtZS5jOiBEb24ndCBpbmNsdWRlIHN0ZGFsaWduLmguCihIQVNf Q0xPQ0tfRU5UUk9QWSk6IFJlbW92ZS4KKG1peF9yYW5kb21fdmFsdWVzKTogTmV3IGZ1bmN0 aW9uLgoocmFuZG9tX2JpdHMpOiBVc2UgaXQuICBBcmdzIGFyZSBub3cgbmV3IHZhbHVlIGFk ZHJlc3MgYW5kCm9sZCB2YWx1ZSwgYW5kIHRoaXMgZnVuY3Rpb24gbm93IHJldHVybnMgYSBz dWNjZXNzIGluZGljYXRvci4KT21pdCBvbGQgVVNFX0dFVFJBTkRPTSBhcmd1bWVudDogYWx3 YXlzIHRyeSBnZXRyYW5kb20gbm93LCBhcwp0aGVyZSBpcyBubyBnb29kIHJlYXNvbiBub3Qg dG8gbm93IHRoYXQgR1JORF9OT05CTE9DSyBpcyB1c2VkLgpDYWxsZXIgY2hhbmdlZC4gIFVz ZSBDTE9DS19SRUFMVElNRSBmb3IgZm9yIGVyc2F0eiBlbnRyb3B5LAphcyBDTE9DS19NT05P VE9OSUMgZG9lc24ndCB3b3JrIG9uIHNvbWUgcGxhdGZvcm1zLgpBbHNvLCBtaXggaW4gZXJz YXR6IGVudHJvcHkgZnJvbSB0dl9zZWMgYW5kIGZyb20gY2xvY2sgKCkuCih0cnlfdGVtcG5h bWVfbGVuKTogRG8gbm90IG1peCBpbiBBU0xSLWJhc2VkIGVudHJvcHksIGFzCnRoZSByZXN1 bHQgaXMgcHVibGlzaGVkIHRvIHRoZSB3b3JsZCBhbmQgQVNMUiBzaG91bGQgYmUgcHJpdmF0 ZS4KRG8gbm90IHRyeSB0byB1c2UgYSBzdGF0aWMgdmFyIGFzIHRoYXQgaGFzIGlzc3VlcyBp ZiBtdWx0aXRocmVhZGVkLgpJbnN0ZWFkLCBzaW1wbHkgZ2VuZXJhdGUgbmV3IHJhbmRvbSBi aXRzLgpXb3JyeSBhYm91dCBiaWFzIG9ubHkgd2l0aCBoaWdoLXF1YWxpdHkgcmFuZG9tIGJp dHMuCiogbW9kdWxlcy90ZW1wbmFtZSAoRGVwZW5kcy1vbik6IERvIG5vdCBkZXBlbmQgb24g c3RkYWxpZ24uCi0tLQogQ2hhbmdlTG9nICAgICAgICB8IDI1ICsrKysrKysrKysrKysKIGxp Yi90ZW1wbmFtZS5jICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIG1vZHVsZXMvdGVtcG5hbWUgfCAgMSAtCiAzIGZpbGVzIGNoYW5n ZWQsIDc2IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0No YW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhZGI0NDVkZGNmLi5lZDk5Yzg0NWY3IDEwMDY0 NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzAgQEAKIDIw MjItMDgtMjIgIFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogCisJdGVtcG5h bWU6IGZpeCBtdWx0aXRocmVhZGluZywgQVNMUiBsZWFrIGV0Yy4KKwlGaXggcHJvYmxlbXMg d2l0aCB0ZW1wbmFtZSBhbmQgbXVsdGl0aHJlYWRpbmcsIGVudHJvcHkgbG9zcywKKwlhbmQg bWlzc2luZyBjbG9jayBkYXRhICh0aGlzIGxhc3Qgb24gbm9uLUdOVSBwbGF0Zm9ybXMpLgor CVNlZSBhbmFseXNpcyBieSBCcnVubyBIYWlibGUgaW46CisJaHR0cHM6Ly9idWdzLmdudS5v cmcvNTcxMjkjMTQ5CisJV2hpbGUgbG9va2luZyBpbnRvIHRoaXMsIEkgbm90aWNlZCB0aGF0 IHRlbXBuYW1lIGNhbiBsZWFrCisJaW5mbyBkZXJpdmVkIGZyb20gQVNMUiBpbnRvIHB1Ymxp Y2x5LXZpc2libGUgZmlsZSBuYW1lcywKKwl3aGljaCBpcyBhIG5vLW5vLiAgRml4IHRoYXQg dG9vLgorCSogbGliL3RlbXBuYW1lLmM6IERvbid0IGluY2x1ZGUgc3RkYWxpZ24uaC4KKwko SEFTX0NMT0NLX0VOVFJPUFkpOiBSZW1vdmUuCisJKG1peF9yYW5kb21fdmFsdWVzKTogTmV3 IGZ1bmN0aW9uLgorCShyYW5kb21fYml0cyk6IFVzZSBpdC4gIEFyZ3MgYXJlIG5vdyBuZXcg dmFsdWUgYWRkcmVzcyBhbmQKKwlvbGQgdmFsdWUsIGFuZCB0aGlzIGZ1bmN0aW9uIG5vdyBy ZXR1cm5zIGEgc3VjY2VzcyBpbmRpY2F0b3IuCisJT21pdCBvbGQgVVNFX0dFVFJBTkRPTSBh cmd1bWVudDogYWx3YXlzIHRyeSBnZXRyYW5kb20gbm93LCBhcworCXRoZXJlIGlzIG5vIGdv b2QgcmVhc29uIG5vdCB0byBub3cgdGhhdCBHUk5EX05PTkJMT0NLIGlzIHVzZWQuCisJQ2Fs bGVyIGNoYW5nZWQuICBVc2UgQ0xPQ0tfUkVBTFRJTUUgZm9yIGZvciBlcnNhdHogZW50cm9w eSwKKwlhcyBDTE9DS19NT05PVE9OSUMgZG9lc24ndCB3b3JrIG9uIHNvbWUgcGxhdGZvcm1z LgorCUFsc28sIG1peCBpbiBlcnNhdHogZW50cm9weSBmcm9tIHR2X3NlYyBhbmQgZnJvbSBj bG9jayAoKS4KKwkodHJ5X3RlbXBuYW1lX2xlbik6IERvIG5vdCBtaXggaW4gQVNMUi1iYXNl ZCBlbnRyb3B5LCBhcworCXRoZSByZXN1bHQgaXMgcHVibGlzaGVkIHRvIHRoZSB3b3JsZCBh bmQgQVNMUiBzaG91bGQgYmUgcHJpdmF0ZS4KKwlEbyBub3QgdHJ5IHRvIHVzZSBhIHN0YXRp YyB2YXIgYXMgdGhhdCBoYXMgaXNzdWVzIGlmIG11bHRpdGhyZWFkZWQuCisJSW5zdGVhZCwg c2ltcGx5IGdlbmVyYXRlIG5ldyByYW5kb20gYml0cy4KKwlXb3JyeSBhYm91dCBiaWFzIG9u bHkgd2l0aCBoaWdoLXF1YWxpdHkgcmFuZG9tIGJpdHMuCisJKiBtb2R1bGVzL3RlbXBuYW1l IChEZXBlbmRzLW9uKTogRG8gbm90IGRlcGVuZCBvbiBzdGRhbGlnbi4KKwogCXRlbXBuYW1l OiBtZXJnZSA2NC1iaXQgdGltZV90IGZpeCBmcm9tIGdsaWJjCiAJVGhpcyBtZXJnZXMgZ2xp YmMgY29tbWl0IDUyYTVmZTcwYTJjNzc5MzVhZmU4MDdmYjZlOTA0ZTUxMmRkZDg5NGUKIAki VXNlIDY0IGJpdCB0aW1lX3Qgc3RhdCBpbnRlcm5hbGx5Ii4KZGlmZiAtLWdpdCBhL2xpYi90 ZW1wbmFtZS5jIGIvbGliL3RlbXBuYW1lLmMKaW5kZXggNGY2MTViOTBiOS4uYmMxZjdjMTRk ZCAxMDA2NDQKLS0tIGEvbGliL3RlbXBuYW1lLmMKKysrIGIvbGliL3RlbXBuYW1lLmMKQEAg LTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2luY2x1ZGUgPGZjbnRs Lmg+Ci0jaW5jbHVkZSA8c3RkYWxpZ24uaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNs dWRlIDxzeXMvcmFuZG9tLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KQEAgLTc3LDI2ICs3 Niw1NSBAQCB0eXBlZGVmIHVpbnRfZmFzdDY0X3QgcmFuZG9tX3ZhbHVlOwogI2RlZmluZSBC QVNFXzYyX0RJR0lUUyAxMCAvKiA2MioqMTAgPCBVSU5UX0ZBU1Q2NF9NQVggKi8KICNkZWZp bmUgQkFTRV82Ml9QT1dFUiAoNjJMTCAqIDYyICogNjIgKiA2MiAqIDYyICogNjIgKiA2MiAq IDYyICogNjIgKiA2MikKIAotI2lmIF9MSUJDIHx8IChkZWZpbmVkIENMT0NLX01PTk9UT05J QyAmJiBIQVZFX0NMT0NLX0dFVFRJTUUpCi0jIGRlZmluZSBIQVNfQ0xPQ0tfRU5UUk9QWSB0 cnVlCi0jZWxzZQotIyBkZWZpbmUgSEFTX0NMT0NLX0VOVFJPUFkgZmFsc2UKLSNlbmRpZgor LyogUmV0dXJuIHRoZSByZXN1bHQgb2YgbWl4aW5nIHRoZSBlbnRyb3B5IGZyb20gUiBhbmQg Uy4KKyAgIEFzc3VtZSB0aGF0IFIgYW5kIFMgYXJlIG5vdCBwYXJ0aWN1bGFybHkgcmFuZG9t LAorICAgYW5kIHRoYXQgdGhlIHJlc3VsdCBzaG91bGQgbG9vayByYW5kb21pc2ggdG8gYW4g dW50cmFpbmVkIGV5ZS4gICovCiAKIHN0YXRpYyByYW5kb21fdmFsdWUKLXJhbmRvbV9iaXRz IChyYW5kb21fdmFsdWUgdmFyLCBib29sIHVzZV9nZXRyYW5kb20pCittaXhfcmFuZG9tX3Zh bHVlcyAocmFuZG9tX3ZhbHVlIHIsIHJhbmRvbV92YWx1ZSBzKQoreworICAvKiBBcyB0aGlz IGNvZGUgaXMgdXNlZCBvbmx5IHdoZW4gaGlnaC1xdWFsaXR5IHJhbmRvbW5lc3MgaXMgbmVp dGhlcgorICAgICBhdmFpbGFibGUgbm9yIG5lY2Vzc2FyeSwgdGhlcmUgaXMgbm8gbmVlZCBm b3IgZmFuY2llciBwb2x5bm9taWFscworICAgICBzdWNoIGFzIHRob3NlIGluIHRoZSBMaW51 eCBrZXJuZWwncyAncmFuZG9tJyBkcml2ZXIuICAqLworICByZXR1cm4gKDI4NjI5MzM1NTU3 Nzc5NDE3NTcgKiByICsgMzAzNzAwMDQ5MykgXiBzOworfQorCisvKiBTZXQgKlIgdG8gYSBy YW5kb20gdmFsdWUuCisgICBSZXR1cm4gdHJ1ZSBpZiAqUiBpcyBzZXQgdG8gaGlnaC1xdWFs aXR5IHZhbHVlIHRha2VuIGZyb20gZ2V0cmFuZG9tLgorICAgT3RoZXJ3aXNlIHJldHVybiBm YWxzZSwgZmFsbGluZyBiYWNrIHRvIGEgbG93LXF1YWxpdHkgKlIgdGhhdCBtaWdodAorICAg ZGVwZW5kIG9uIFMuCisKKyAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBmYWxzZSBvbmx5IHdo ZW4gZ2V0cmFuZG9tIGZhaWxzLgorICAgT24gR05VIHN5c3RlbXMgdGhpcyBzaG91bGQgaGFw cGVuIG9ubHkgZWFybHkgaW4gdGhlIGJvb3QgcHJvY2VzcywKKyAgIHdoZW4gdGhlIGZhbGxi YWNrIHNob3VsZCBiZSBnb29kIGVub3VnaCBmb3IgcHJvZ3JhbXMgdXNpbmcgdGVtcG5hbWUK KyAgIGJlY2F1c2UgYW55IGF0dGFja2VyIGxpa2VseSBoYXMgcm9vdCBwcml2aWxlZ2VzIGFs cmVhZHkuICAqLworCitzdGF0aWMgYm9vbAorcmFuZG9tX2JpdHMgKHJhbmRvbV92YWx1ZSAq ciwgcmFuZG9tX3ZhbHVlIHMpCiB7Ci0gIHJhbmRvbV92YWx1ZSByOwogICAvKiBXaXRob3V0 IEdSTkRfTk9OQkxPQ0sgaXQgY2FuIGJlIGJsb2NrZWQgZm9yIG1pbnV0ZXMgb24gc29tZSBz eXN0ZW1zLiAgKi8KLSAgaWYgKHVzZV9nZXRyYW5kb20gJiYgX19nZXRyYW5kb20gKCZyLCBz aXplb2YgciwgR1JORF9OT05CTE9DSykgPT0gc2l6ZW9mIHIpCi0gICAgcmV0dXJuIHI7Ci0j aWYgSEFTX0NMT0NLX0VOVFJPUFkKLSAgLyogQWRkIGVudHJvcHkgaWYgZ2V0cmFuZG9tIGRp ZCBub3Qgd29yay4gICovCisgIGlmIChfX2dldHJhbmRvbSAociwgc2l6ZW9mICpyLCBHUk5E X05PTkJMT0NLKSA9PSBzaXplb2YgKnIpCisgICAgcmV0dXJuIHRydWU7CisKKyAgLyogSWYg Z2V0cmFuZG9tIGRpZCBub3Qgd29yaywgdXNlIGVyc2F0eiBlbnRyb3B5IGJhc2VkIG9uIGxv dy1vcmRlcgorICAgICBjbG9jayBiaXRzLiAgT24gR05VIHN5c3RlbXMgZ2V0cmFuZG9tIHNo b3VsZCBmYWlsIG9ubHkKKyAgICAgZWFybHkgaW4gYm9vdGluZywgd2hlbiBlcnNhdHogc2hv dWxkIGJlIGdvb2QgZW5vdWdoLgorICAgICBEbyBub3QgdXNlIEFTTFItYmFzZWQgZW50cm9w eSwgYXMgdGhhdCB3b3VsZCBsZWFrIEFTTFIgaW5mbyBpbnRvCisgICAgIHRoZSByZXN1bHRp bmcgZmlsZSBuYW1lIHdoaWNoIGlzIHR5cGljYWxseSBwdWJsaWMuCisKKyAgICAgT2YgY291 cnNlIHdlIGFyZSBpbiBhIHN0YXRlIG9mIHNpbiBoZXJlLiAgKi8KKworICByYW5kb21fdmFs dWUgdiA9IDA7CisKKyNpZiBfTElCQyB8fCAoZGVmaW5lZCBDTE9DS19SRUFMVElNRSAmJiBI QVZFX0NMT0NLX0dFVFRJTUUpCiAgIHN0cnVjdCBfX3RpbWVzcGVjNjQgdHY7Ci0gIF9fY2xv Y2tfZ2V0dGltZTY0IChDTE9DS19NT05PVE9OSUMsICZ0dik7Ci0gIHZhciBePSB0di50dl9u c2VjOworICBfX2Nsb2NrX2dldHRpbWU2NCAoQ0xPQ0tfUkVBTFRJTUUsICZ0dik7CisgIHYg PSBtaXhfcmFuZG9tX3ZhbHVlcyAodiwgdHYudHZfc2VjKTsKKyAgdiA9IG1peF9yYW5kb21f dmFsdWVzICh2LCB0di50dl9uc2VjKTsKICNlbmRpZgotICByZXR1cm4gMjg2MjkzMzU1NTc3 Nzk0MTc1NyAqIHZhciArIDMwMzcwMDA0OTM7CisKKyAgKnIgPSBtaXhfcmFuZG9tX3ZhbHVl cyAodiwgY2xvY2sgKCkpOworICByZXR1cm4gZmFsc2U7CiB9CiAKICNpZiBfTElCQwpAQCAt MjY3LDMyICsyOTUsMTUgQEAgdHJ5X3RlbXBuYW1lX2xlbiAoY2hhciAqdG1wbCwgaW50IHN1 ZmZpeGxlbiwgdm9pZCAqYXJncywKICAgdW5zaWduZWQgaW50IGF0dGVtcHRzID0gQVRURU1Q VFNfTUlOOwogI2VuZGlmCiAKLSAgLyogQSByYW5kb20gdmFyaWFibGUuICBUaGUgaW5pdGlh bCB2YWx1ZSBpcyB1c2VkIG9ubHkgdGhlIGZvciBmYWxsYmFjayBwYXRoCi0gICAgIG9uICdy YW5kb21fYml0cycgb24gJ2dldHJhbmRvbScgZmFpbHVyZS4gIEl0cyBpbml0aWFsIHZhbHVl IHRyaWVzIHRvIHVzZQotICAgICBzb21lIGVudHJvcHkgZnJvbSB0aGUgQVNMUiBhbmQgaWdu b3JlIHBvc3NpYmxlIGJpdHMgZnJvbSB0aGUgc3RhY2sKLSAgICAgYWxpZ25tZW50LiAgKi8K LSAgcmFuZG9tX3ZhbHVlIHYgPSAoKHVpbnRwdHJfdCkgJnYpIC8gYWxpZ25vZiAobWF4X2Fs aWduX3QpOwotCi0jaWYgIUhBU19DTE9DS19FTlRST1BZCi0gIC8qIEFycmFuZ2UgZ2VuX3Rl bXBuYW1lIHRvIHJldHVybiBsZXNzIHByZWRpY3RhYmxlIGZpbGUgbmFtZXMgb24KLSAgICAg c3lzdGVtcyBsYWNraW5nIGNsb2NrIGVudHJvcHkgPGh0dHBzOi8vYnVncy5nbnUub3JnLzU3 MTI5Pi4gICovCi0gIHN0YXRpYyByYW5kb21fdmFsdWUgcHJldl92OwotICB2IF49IHByZXZf djsKLSNlbmRpZgorICAvKiBBIHJhbmRvbSB2YXJpYWJsZS4gICovCisgIHJhbmRvbV92YWx1 ZSB2ID0gMDsKIAogICAvKiBIb3cgbWFueSByYW5kb20gYmFzZS02MiBkaWdpdHMgY2FuIGN1 cnJlbnRseSBiZSBleHRyYWN0ZWQgZnJvbSBWLiAgKi8KICAgaW50IHZkaWdpdHMgPSAwOwog Ci0gIC8qIFdoZXRoZXIgdG8gY29uc3VtZSBlbnRyb3B5IHdoZW4gYWNxdWlyaW5nIHJhbmRv bSBiaXRzLiAgT24gdGhlCi0gICAgIGZpcnN0IHRyeSBpdCdzIHdvcnRoIHRoZSBlbnRyb3B5 IGNvc3Qgd2l0aCBfX0dUX05PQ1JFQVRFLCB3aGljaAotICAgICBpcyBpbmhlcmVudGx5IGlu c2VjdXJlIGFuZCBjYW4gdXNlIHRoZSBlbnRyb3B5IHRvIG1ha2UgaXQgYSBiaXQKLSAgICAg bW9yZSBzZWN1cmUuICBPbiB0aGUgKHJhcmUpIHNlY29uZCBhbmQgbGF0ZXIgYXR0ZW1wdHMg aXQgbWlnaHQKLSAgICAgaGVscCBhZ2FpbnN0IERvUyBhdHRhY2tzLiAgKi8KLSAgYm9vbCB1 c2VfZ2V0cmFuZG9tID0gdHJ5ZnVuYyA9PSB0cnlfbm9jcmVhdGU7Ci0KLSAgLyogTGVhc3Qg dW5mYWlyIHZhbHVlIGZvciBWLiAgSWYgViBpcyBsZXNzIHRoYW4gdGhpcywgViBjYW4gZ2Vu ZXJhdGUKLSAgICAgQkFTRV82Ml9ESUdJVFMgZGlnaXRzIGZhaXJseS4gIE90aGVyd2lzZSBp dCBtaWdodCBiZSBiaWFzZWQuICAqLwotICByYW5kb21fdmFsdWUgY29uc3QgdW5mYWlyX21p bgorICAvKiBMZWFzdCBiaWFzZWQgdmFsdWUgZm9yIFYuICBJZiBWIGlzIGxlc3MgdGhhbiB0 aGlzLCBWIGNhbiBnZW5lcmF0ZQorICAgICBCQVNFXzYyX0RJR0lUUyB1bmJpYXNlZCBkaWdp dHMuICBPdGhlcndpc2UgdGhlIGRpZ2l0cyBhcmUgYmlhc2VkLiAgKi8KKyAgcmFuZG9tX3Zh bHVlIGNvbnN0IGJpYXNlZF9taW4KICAgICA9IFJBTkRPTV9WQUxVRV9NQVggLSBSQU5ET01f VkFMVUVfTUFYICUgQkFTRV82Ml9QT1dFUjsKIAogICBsZW4gPSBzdHJsZW4gKHRtcGwpOwpA QCAtMzEyLDEyICszMjMsOSBAQCB0cnlfdGVtcG5hbWVfbGVuIChjaGFyICp0bXBsLCBpbnQg c3VmZml4bGVuLCB2b2lkICphcmdzLAogICAgICAgICB7CiAgICAgICAgICAgaWYgKHZkaWdp dHMgPT0gMCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgZG8KLSAgICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgICB2ID0gcmFuZG9tX2JpdHMgKHYsIHVzZV9nZXRy YW5kb20pOwotICAgICAgICAgICAgICAgICAgdXNlX2dldHJhbmRvbSA9IHRydWU7Ci0gICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICB3aGlsZSAodW5mYWlyX21pbiA8PSB2KTsK KyAgICAgICAgICAgICAgLyogV29ycnkgYWJvdXQgYmlhcyBvbmx5IGlmIHRoZSBiaXRzIGFy ZSBoaWdoIHF1YWxpdHkuICAqLworICAgICAgICAgICAgICB3aGlsZSAocmFuZG9tX2JpdHMg KCZ2LCB2KSAmJiBiaWFzZWRfbWluIDw9IHYpCisgICAgICAgICAgICAgICAgY29udGludWU7 CiAKICAgICAgICAgICAgICAgdmRpZ2l0cyA9IEJBU0VfNjJfRElHSVRTOwogICAgICAgICAg ICAgfQpAQCAtMzMxLDkgKzMzOSw2IEBAIHRyeV90ZW1wbmFtZV9sZW4gKGNoYXIgKnRtcGws IGludCBzdWZmaXhsZW4sIHZvaWQgKmFyZ3MsCiAgICAgICBpZiAoZmQgPj0gMCkKICAgICAg ICAgewogICAgICAgICAgIF9fc2V0X2Vycm5vIChzYXZlX2Vycm5vKTsKLSNpZiAhSEFTX0NM T0NLX0VOVFJPUFkKLSAgICAgICAgICBwcmV2X3YgPSB2OwotI2VuZGlmCiAgICAgICAgICAg cmV0dXJuIGZkOwogICAgICAgICB9CiAgICAgICBlbHNlIGlmIChlcnJubyAhPSBFRVhJU1Qp CmRpZmYgLS1naXQgYS9tb2R1bGVzL3RlbXBuYW1lIGIvbW9kdWxlcy90ZW1wbmFtZQppbmRl eCA0Nzc5NzM1ZDlkLi5mMWZiNzhlOGZmIDEwMDY0NAotLS0gYS9tb2R1bGVzL3RlbXBuYW1l CisrKyBiL21vZHVsZXMvdGVtcG5hbWUKQEAgLTE2LDcgKzE2LDYgQEAgZ2V0cmFuZG9tCiBs aWJjLWNvbmZpZwogbHN0YXQKIG1rZGlyCi1zdGRhbGlnbgogc3RkYm9vbAogc3RkaW50CiBz eXNfc3RhdAotLSAKMi4zNy4yCgo= --------------1ZG3DV5ZpCtFgcw5NgIJL5PY Content-Type: text/x-patch; charset=UTF-8; name="0003-tempname-don-t-lose-entropy-in-seed.patch" Content-Disposition: attachment; filename="0003-tempname-don-t-lose-entropy-in-seed.patch" Content-Transfer-Encoding: base64 RnJvbSBkMjdjODIwNTk1MTc1ZWQ1NjNiNGQ0ZWU1ZDBmNDIxMDExODkxNTcyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDIyIEF1ZyAyMDIyIDE1OjQzOjE4IC0wNTAwClN1YmplY3Q6IFtQQVRD SCAzLzNdIHRlbXBuYW1lOiBkb24ndCBsb3NlIGVudHJvcHkgaW4gc2VlZAoKKiBsaWIvdGVt cG5hbWUuYyAocmFuZG9tX2JpdHMpOiBEb24ndCBsb3NlIGVudHJvcHkgaW4gUwppbiB0aGUg cmFyZSBjYXNlIHdoZXJlIHdoZXJlIHRoZSB0ZW1wbGF0ZSBoYXMgbW9yZSB0aGFuIDEwIFhz LgpGcm9tIGEgc3VnZ2VzdGlvbiBieSBCcnVubyBIYWlibGUgaW46Cmh0dHBzOi8vYnVncy5n bnUub3JnLzU3MTI5IzE0OQotLS0KIENoYW5nZUxvZyAgICAgIHwgIDcgKysrKysrKwogbGli L3RlbXBuYW1lLmMgfCAxMSArKysrKysrLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0No YW5nZUxvZwppbmRleCBlZDk5Yzg0NWY3Li40ZDFjOTJjZDgxIDEwMDY0NAotLS0gYS9DaGFu Z2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTEgQEAKIDIwMjItMDgtMjIgIFBh dWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgogCisJdGVtcG5hbWU6IGRvbid0IGxv c2UgZW50cm9weSBpbiBzZWVkCisJKiBsaWIvdGVtcG5hbWUuYyAocmFuZG9tX2JpdHMpOiBE b24ndCBsb3NlIGVudHJvcHkgaW4gUworCWluIHRoZSByYXJlIGNhc2Ugd2hlcmUgd2hlcmUg dGhlIHRlbXBsYXRlIGhhcyBtb3JlIHRoYW4gMTAgWHMuCisJRnJvbSBhIHN1Z2dlc3Rpb24g YnkgQnJ1bm8gSGFpYmxlIGluOgorCWh0dHBzOi8vYnVncy5nbnUub3JnLzU3MTI5IzE0OQor CiAJdGVtcG5hbWU6IGZpeCBtdWx0aXRocmVhZGluZywgQVNMUiBsZWFrIGV0Yy4KIAlGaXgg cHJvYmxlbXMgd2l0aCB0ZW1wbmFtZSBhbmQgbXVsdGl0aHJlYWRpbmcsIGVudHJvcHkgbG9z cywKIAlhbmQgbWlzc2luZyBjbG9jayBkYXRhICh0aGlzIGxhc3Qgb24gbm9uLUdOVSBwbGF0 Zm9ybXMpLgpAQCAtMjMsNiArMjksNyBAQAogCURvIG5vdCB0cnkgdG8gdXNlIGEgc3RhdGlj IHZhciBhcyB0aGF0IGhhcyBpc3N1ZXMgaWYgbXVsdGl0aHJlYWRlZC4KIAlJbnN0ZWFkLCBz aW1wbHkgZ2VuZXJhdGUgbmV3IHJhbmRvbSBiaXRzLgogCVdvcnJ5IGFib3V0IGJpYXMgb25s eSB3aXRoIGhpZ2gtcXVhbGl0eSByYW5kb20gYml0cy4KKwogCSogbW9kdWxlcy90ZW1wbmFt ZSAoRGVwZW5kcy1vbik6IERvIG5vdCBkZXBlbmQgb24gc3RkYWxpZ24uCiAKIAl0ZW1wbmFt ZTogbWVyZ2UgNjQtYml0IHRpbWVfdCBmaXggZnJvbSBnbGliYwpkaWZmIC0tZ2l0IGEvbGli L3RlbXBuYW1lLmMgYi9saWIvdGVtcG5hbWUuYwppbmRleCBiYzFmN2MxNGRkLi4wZTJmMjlm NWRlIDEwMDY0NAotLS0gYS9saWIvdGVtcG5hbWUuYworKysgYi9saWIvdGVtcG5hbWUuYwpA QCAtMTE0LDcgKzExNCw3IEBAIHJhbmRvbV9iaXRzIChyYW5kb21fdmFsdWUgKnIsIHJhbmRv bV92YWx1ZSBzKQogCiAgICAgIE9mIGNvdXJzZSB3ZSBhcmUgaW4gYSBzdGF0ZSBvZiBzaW4g aGVyZS4gICovCiAKLSAgcmFuZG9tX3ZhbHVlIHYgPSAwOworICByYW5kb21fdmFsdWUgdiA9 IHM7CiAKICNpZiBfTElCQyB8fCAoZGVmaW5lZCBDTE9DS19SRUFMVElNRSAmJiBIQVZFX0NM T0NLX0dFVFRJTUUpCiAgIHN0cnVjdCBfX3RpbWVzcGVjNjQgdHY7CkBAIC0yOTgsNyArMjk4 LDkgQEAgdHJ5X3RlbXBuYW1lX2xlbiAoY2hhciAqdG1wbCwgaW50IHN1ZmZpeGxlbiwgdm9p ZCAqYXJncywKICAgLyogQSByYW5kb20gdmFyaWFibGUuICAqLwogICByYW5kb21fdmFsdWUg diA9IDA7CiAKLSAgLyogSG93IG1hbnkgcmFuZG9tIGJhc2UtNjIgZGlnaXRzIGNhbiBjdXJy ZW50bHkgYmUgZXh0cmFjdGVkIGZyb20gVi4gICovCisgIC8qIEEgdmFsdWUgZGVyaXZlZCBm cm9tIHRoZSByYW5kb20gdmFyaWFibGUsIGFuZCBob3cgbWFueSByYW5kb20KKyAgICAgYmFz ZS02MiBkaWdpdHMgY2FuIGN1cnJlbnRseSBiZSBleHRyYWN0ZWQgZnJvbSBWRElHQlVGLiAg Ki8KKyAgcmFuZG9tX3ZhbHVlIHZkaWdidWY7CiAgIGludCB2ZGlnaXRzID0gMDsKIAogICAv KiBMZWFzdCBiaWFzZWQgdmFsdWUgZm9yIFYuICBJZiBWIGlzIGxlc3MgdGhhbiB0aGlzLCBW IGNhbiBnZW5lcmF0ZQpAQCAtMzI3LDExICszMjksMTIgQEAgdHJ5X3RlbXBuYW1lX2xlbiAo Y2hhciAqdG1wbCwgaW50IHN1ZmZpeGxlbiwgdm9pZCAqYXJncywKICAgICAgICAgICAgICAg d2hpbGUgKHJhbmRvbV9iaXRzICgmdiwgdikgJiYgYmlhc2VkX21pbiA8PSB2KQogICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICAgIHZkaWdidWYgPSB2OwogICAg ICAgICAgICAgICB2ZGlnaXRzID0gQkFTRV82Ml9ESUdJVFM7CiAgICAgICAgICAgICB9CiAK LSAgICAgICAgICBYWFhYWFhbaV0gPSBsZXR0ZXJzW3YgJSA2Ml07Ci0gICAgICAgICAgdiAv PSA2MjsKKyAgICAgICAgICBYWFhYWFhbaV0gPSBsZXR0ZXJzW3ZkaWdidWYgJSA2Ml07Cisg ICAgICAgICAgdmRpZ2J1ZiAvPSA2MjsKICAgICAgICAgICB2ZGlnaXRzLS07CiAgICAgICAg IH0KIAotLSAKMi4zNy4yCgo= --------------1ZG3DV5ZpCtFgcw5NgIJL5PY-- From debbugs-submit-bounces@debbugs.gnu.org Mon Aug 22 20:13:10 2022 Received: (at 57129) by debbugs.gnu.org; 23 Aug 2022 00:13:10 +0000 Received: from localhost ([127.0.0.1]:42050 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQHXa-0002yT-Ba for submit@debbugs.gnu.org; Mon, 22 Aug 2022 20:13:10 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([85.215.255.22]:43941) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQHXW-0002yE-NA for 57129@debbugs.gnu.org; Mon, 22 Aug 2022 20:13:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1661213583; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=dKs411Dwhve61VqE0MtHU+Go7Q/X6Cyt22hTGS9o+sU=; b=BqgN1fFwKyoXxnh9cxN4dejhbgiR7ogmDSWYrGLANZwa9BLa+dq1S4Ffv1I8hAxcwC IEhRcf9ReHdQSbRMwZCrEDZ2nlTZbH1ubA42D1TaCebaZE7dzj62Az94gkUsFjQuvNZA h2W8AOTCoPAyl2KnDMw4WwH5VtkbGnRWS6c0TR1MaajL4sOf3BtDND3ao3SPaDNJD248 P/BA20Ll5W4IO+VtfiM8+Z9ym/g20YvH7f81Yvsl8SEtdpjnkz6Z45wghCdMUWp206YK LFM8ksMv6wQB5E1CvE09nrh01vRaOxlKX/PNktcEhSiBGjlsQ1DISYey1xFRnTdfd5/y r6/g== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pCQ374KkH1mlxyMKJn+OEiU11lkyA==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7N0D2WAi (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 23 Aug 2022 02:13:02 +0200 (CEST) From: Bruno Haible To: Paul Eggert Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 23 Aug 2022 02:13:02 +0200 Message-ID: <3893771.2iPT33SAM4@nimes> In-Reply-To: <2dc7ede0-eca7-baf5-f89a-f5d292b80808@cs.ucla.edu> References: <2758072.AiC22s8V5E@nimes> <2dc7ede0-eca7-baf5-f89a-f5d292b80808@cs.ucla.edu> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, Eli Zaretskii , bug-gnulib@gnu.org, larsi@gnus.org, 57129@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 (-) Paul Eggert wrote: > Thanks for the detailed diagnosis, Bruno. To try to fix the problems I=20 > installed the attached patches into Gnulib. These look all good. Here's again my evaluation of the three scenarios: (Q1) What is the expected quality inside a single gen_tempname call? It depends on quality of random_bits(). Usually on the quality of getrandom(), which is good on most systems. And for the other systems, the "ersatz" in random_bits() gives reasonable quality. (Q2) What is the expected quality of multiple gen_tempname calls in a single process? (Q3) What is the expected quality when considering different processes that call gen_tempname? Both have the same answer: The file name essentially depends on the first call to random_bits(). Two different calls to random_bits() can be correlated only if - getrandom() is not well supported, and - CLOCK_REALTIME is not defined, and - we're in the same process, less than 0.01 sec apart. IMO, that's good enough. > If I understand things=20 > correctly, these patches should fix the 0.1% failure rate you observed=20 > on 64-bit mingw. Yes. Running the "case 2" part 1000 times again, among the 2000 generated file names, there are no duplicates =E2=80=94 neither on 32-bit mingw, nor = on 64-bit mingw. > They also fix a minor security leak I discovered: in=20 > rare cases, ASLR entropy was used to generate publicly visible file=20 > names, which is a no-no as that might help an attacker infer the=20 > randomized layout of a victim process. Excellent observation :-) > These fixes follow some but not all the suggestions you made. The basic=20 > problem I saw was that tempname.c was using too much belt-and-suspenders= =20 > code, so much so that the combination of belts and suspenders=20 > misbehaved. I simplified it a bit and this removed the need for some of=20 > the suggestions. Thanks. The major quality boost comes from invoking getrandom() always. Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 23 07:18:16 2022 Received: (at 57129) by debbugs.gnu.org; 23 Aug 2022 11:18:17 +0000 Received: from localhost ([127.0.0.1]:42805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQRvE-0005io-MV for submit@debbugs.gnu.org; Tue, 23 Aug 2022 07:18:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:59162) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQRv9-0005iX-OO for 57129@debbugs.gnu.org; Tue, 23 Aug 2022 07:18:14 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53660) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQRv2-0007P8-JC; Tue, 23 Aug 2022 07:18:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=sdsUdVX/4QPwb/YNxIdHPBRg0m5iUfgZ1pKpHiy4IhU=; b=SA6l0lbifShLfvnNdYEi EOMURV+KNmVdEa/VWo+Kkri+OLb3AbrsXmmozFKMpgmGzcT7K+2rhw/hcmArRf6JF1sQ1ZxOyFul7 HnvXQ4xcbuVFd5w4JpZwXRXz8COSaxDcDQP/0FMyoB17t0js7DNp68Tj5CCqhKETR0hz/utM4wizq ginBjpJm7eofYIP+pXFc03LuREtUFFcRp14z2lh+ZPlehn+IcKWcmbSRF4Plklvak3S0z4KO8eFtq 4C70a/lWsejhbM1ShdqkUZceM8SOhIBFm1B1UyuGghAB85sHmv0rhqCEbPF8I7psCYD3mRGtVYiog bx7ZlonRFjDoLw==; Received: from [87.69.77.57] (port=3185 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQRv1-0007NK-6q; Tue, 23 Aug 2022 07:18:03 -0400 Date: Tue, 23 Aug 2022 14:18:08 +0300 Message-Id: <831qt79pjj.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <3893771.2iPT33SAM4@nimes> (message from Bruno Haible on Tue, 23 Aug 2022 02:13:02 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <2758072.AiC22s8V5E@nimes> <2dc7ede0-eca7-baf5-f89a-f5d292b80808@cs.ucla.edu> <3893771.2iPT33SAM4@nimes> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: Eli Zaretskii , bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 23 Aug 2022 02:13:02 +0200 > > > If I understand things > > correctly, these patches should fix the 0.1% failure rate you observed > > on 64-bit mingw. > > Yes. Running the "case 2" part 1000 times again, among the 2000 generated > file names, there are no duplicates — neither on 32-bit mingw, nor on 64-bit > mingw. Was that with or without using clock_gettime? If it was with clock_gettime, what happens without it (i.e. when 'clock' is used instead)? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 23 10:49:44 2022 Received: (at 57129) by debbugs.gnu.org; 23 Aug 2022 14:49:44 +0000 Received: from localhost ([127.0.0.1]:44799 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQVDs-0001Az-FJ for submit@debbugs.gnu.org; Tue, 23 Aug 2022 10:49:44 -0400 Received: from mo4-p00-ob.smtp.rzone.de ([81.169.146.161]:45661) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQVDq-0001Al-1G for 57129@debbugs.gnu.org; Tue, 23 Aug 2022 10:49:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1661266177; s=strato-dkim-0002; d=clisp.org; h=References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Cc:Date: From:Subject:Sender; bh=ZeCOPCf/qovDO8mZkdb9SqCzQ/eBm/XTjwYBw8U1TAs=; b=NSX9jRfLu9jSDesTuSj5vvvOUX5qJOPKFBBBPa1Bxa6S41UkghPc6T9Vs0iwDssw8B UeCeo4ek5Y7LlRbN4FG2TGFJpYfEx06XOUpwlJaCxKmNtEMlQa21PZCQ7sYj+ICsHND/ IJxXknjy9dIj562kHUM1pihc8uQjIrIviOZW4RMENSuKNj5HKTQiL3PFqjeoDfJY9dfL islmfOieSW3j9XqyTSwlvkD6f9huejnaufe5Brt8Qvciy6e0gpuXEQSLwd1enKW8l2bs aADnLAVw/G0TJEPIDnl+RPyiSE8lzjEj6OjWrtu6zK4xIuaXu35JG/YnoFRq8155rEpf kyTA== Authentication-Results: strato.com; dkim=none X-RZG-AUTH: ":Ln4Re0+Ic/6oZXR1YgKryK8brlshOcZlIWs+iCP5vnk6shH0WWb0LN8XZoH94zG6tLj91pDAjeDrHRvRuawH+k08QytTFWf1dQ==" X-RZG-CLASS-ID: mo00 Received: from nimes.localnet by smtp.strato.de (RZmta 47.47.0 AUTH) with ESMTPSA id g97246y7NEnaamx (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits)) (Client did not present a certificate); Tue, 23 Aug 2022 16:49:36 +0200 (CEST) From: Bruno Haible To: Eli Zaretskii Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Date: Tue, 23 Aug 2022 16:49:36 +0200 Message-ID: <1950899.zToM8qfIzz@nimes> In-Reply-To: <831qt79pjj.fsf@gnu.org> References: <3893771.2iPT33SAM4@nimes> <831qt79pjj.fsf@gnu.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Eli Zaretskii asked: > > Yes. Running the "case 2" part 1000 times again, among the 2000 generat= ed > > file names, there are no duplicates =E2=80=94 neither on 32-bit mingw, = nor on 64-bit > > mingw. >=20 > Was that with or without using clock_gettime? If it was with > clock_gettime, what happens without it (i.e. when 'clock' is used > instead)? That was with clock_gettime. Without clock_gettime, i.e. without the dependency to libwinpthread, the result is the same: no duplicates =E2=80= =94 neither on 32-bit mingw, nor on 64-bit mingw. Bruno From debbugs-submit-bounces@debbugs.gnu.org Tue Aug 23 12:07:06 2022 Received: (at 57129) by debbugs.gnu.org; 23 Aug 2022 16:07:07 +0000 Received: from localhost ([127.0.0.1]:44869 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQWQk-0005Hv-Kl for submit@debbugs.gnu.org; Tue, 23 Aug 2022 12:07:06 -0400 Received: from eggs.gnu.org ([209.51.188.92]:46446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQWQi-0005HN-EH for 57129@debbugs.gnu.org; Tue, 23 Aug 2022 12:07:05 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:45414) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQWQc-0006uf-07; Tue, 23 Aug 2022 12:06:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=EgtJgm/yEjp0uNMFn4f7MJIeNnmKnjEbsQHlCRuTg+k=; b=oGl+0L3O0Q1t4ZElAvHR 9Rj/5xtIGtkDdq5CVQeDS27C9B21PVWYboS6WuYTOCwzcPX9OnEeQ2yOUseSZGATQzxbsv5NyEdiu kwvVv2Iq7pmwyD4CJqYWGoSRZKc4iur04JWKs3E3iWK94CgDkMJ3K7h2IoZIlhnh09gy12ZJa6+ap CNxXFGfhxIg4OXGbAb5vLS55mYuQ40jmAlVxzf3Zbwf8YglnXKzrxMRJl8juzdjLJlfi8WnBMUvJe aCptIAlWhR/JGHRvV3gncImaFkW2AGuWwix2fyLnR9XzXvpILZ32J3Dy6OJrWIAZWuqZRLFdYy/1M ZIqUUp7/KmBDIw==; Received: from [87.69.77.57] (port=1245 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQWQa-0001qa-Sa; Tue, 23 Aug 2022 12:06:57 -0400 Date: Tue, 23 Aug 2022 19:07:02 +0300 Message-Id: <83zgfv6j15.fsf@gnu.org> From: Eli Zaretskii To: Bruno Haible In-Reply-To: <1950899.zToM8qfIzz@nimes> (message from Bruno Haible on Tue, 23 Aug 2022 16:49:36 +0200) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell References: <3893771.2iPT33SAM4@nimes> <831qt79pjj.fsf@gnu.org> <1950899.zToM8qfIzz@nimes> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 57129 Cc: jporterbugs@gmail.com, larsi@gnus.org, eggert@cs.ucla.edu, bug-gnulib@gnu.org, 57129@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 (---) > From: Bruno Haible > Cc: eggert@cs.ucla.edu, bug-gnulib@gnu.org, larsi@gnus.org, 57129@debbugs.gnu.org, jporterbugs@gmail.com > Date: Tue, 23 Aug 2022 16:49:36 +0200 > > Eli Zaretskii asked: > > > Yes. Running the "case 2" part 1000 times again, among the 2000 generated > > > file names, there are no duplicates — neither on 32-bit mingw, nor on 64-bit > > > mingw. > > > > Was that with or without using clock_gettime? If it was with > > clock_gettime, what happens without it (i.e. when 'clock' is used > > instead)? > > That was with clock_gettime. Without clock_gettime, i.e. without the > dependency to libwinpthread, the result is the same: no duplicates — neither > on 32-bit mingw, nor on 64-bit mingw. Great, thanks. From debbugs-submit-bounces@debbugs.gnu.org Wed Aug 24 17:41:49 2022 Received: (at 57129) by debbugs.gnu.org; 24 Aug 2022 21:41:49 +0000 Received: from localhost ([127.0.0.1]:48334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQy8D-0001cf-E5 for submit@debbugs.gnu.org; Wed, 24 Aug 2022 17:41:49 -0400 Received: from mail-pj1-f54.google.com ([209.85.216.54]:43656) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQy88-0001cP-Or for 57129@debbugs.gnu.org; Wed, 24 Aug 2022 17:41:47 -0400 Received: by mail-pj1-f54.google.com with SMTP id c13-20020a17090a4d0d00b001fb6921b42aso2836179pjg.2 for <57129@debbugs.gnu.org>; Wed, 24 Aug 2022 14:41:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:references:cc:to:from:subject:from:to:cc; bh=LOjqpZDAH+iF5cdLAX1bRcSk69odP4SQFrjSNrrihBw=; b=UIrkIFzTFqkTnm4KHSZwvi9rBiHXG6VqypkfMyeSbbUqw5WdJekoX16FWAOYkVMhYP 08Sc21H4nrsL0gl/bqhsJGXFxi4HyovE2lqr4V5q1DSS2alGf2jyDzO3gj7/YvEdGp/7 KcYN6w3KgCmNX3xGAAN+gNy3ASr5o46WqSfMSeIEa4ZxOdTibwQJjNXghqx2Hp+6BraL EgqvQE3waz1lc+Yo6FN9iWZNTxHNEvzKzXrUbVxbIYBjH3z1zDfNzVbZjg2Uu36LfXS3 dk36JvRKYmtSJ/J7cKVaZQi8FveKdiog4kmL18PsHUS3hkfxk+n1Yu5YKUAqwPskCJ73 6Rxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:references:cc:to:from:subject:x-gm-message-state :from:to:cc; bh=LOjqpZDAH+iF5cdLAX1bRcSk69odP4SQFrjSNrrihBw=; b=a0SW3MN2AG+Ol/fWyXbrRsjOUOo9d05CrmjW0Rq3lf43EobtLHAnMHFjF8HeKJnilS N2inHu8SrWEULxSv71iAVluk8rPbHwFirMVlNCULWIpWBl/1FKuXgMPxl5kyIwTuJuwG nCnzoEVTBxoVMirwwgorr4tpGwKbzQTybdY7YEN8hfEW0na3m/0HAgxHglmYnxtp6jwl 5cVnJzikM9c4RJOC8u2L3mrhMq7Jl4Wfole+lnxsMsqzY+a76OPV2YNANUBRkpKMDXma KFSV3+ZohHdkAhTUgYjmnmwe1NTxyMAXb2uTVS97GQQcyYUkN2/P9/iZCf7xz/nRP4k6 pYpA== X-Gm-Message-State: ACgBeo3DcZ78Ji/mt4ekx/3xeksf0F59VVKfYg591GzWhg7iVr4y3eJg 0c6RJiG95pfJqzbWh/10prvQU1Ql5vM= X-Google-Smtp-Source: AA6agR7lNl7MGgp7yVlIXH0vFVkatBhj49xAUYiFC7NUK/DuU086e1ysUfJRIhG3AuvqDW9+pVrLBQ== X-Received: by 2002:a17:90b:4a05:b0:1f5:62d5:4155 with SMTP id kk5-20020a17090b4a0500b001f562d54155mr1136274pjb.6.1661377298932; Wed, 24 Aug 2022 14:41:38 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id q4-20020a170902eb8400b0016c9e5f291bsm12896263plg.111.2022.08.24.14.41.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 24 Aug 2022 14:41:38 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell From: Jim Porter To: Eli Zaretskii , Paul Eggert References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> Message-ID: <6d650d8d-32c2-3bc7-504a-b9fc14998b91@gmail.com> Date: Wed, 24 Aug 2022 14:41:37 -0700 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/20/2022 11:03 AM, Jim Porter wrote: > In addition to the changes to temporary file name generation, I think it > would be useful for Eshell to kill the temporary buffer too. [snip] > Attached is a patch to do this. Assuming there are no remaining objections, I'll merge this in a day or two. From debbugs-submit-bounces@debbugs.gnu.org Fri Aug 26 01:10:36 2022 Received: (at 57129) by debbugs.gnu.org; 26 Aug 2022 05:10:36 +0000 Received: from localhost ([127.0.0.1]:51784 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oRRc4-0001ej-Ai for submit@debbugs.gnu.org; Fri, 26 Aug 2022 01:10:36 -0400 Received: from mail-pj1-f46.google.com ([209.85.216.46]:42955) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oRRc2-0001eW-Lk for 57129@debbugs.gnu.org; Fri, 26 Aug 2022 01:10:35 -0400 Received: by mail-pj1-f46.google.com with SMTP id n65-20020a17090a5ac700b001fbb4fad865so509373pji.1 for <57129@debbugs.gnu.org>; Thu, 25 Aug 2022 22:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:references:cc:to:from:subject:from:to:cc; bh=Ys5Y0AzHD1OqCWIJB0/Q1sQZyYFMPTwbe7Qr7cMK7+o=; b=kqP9v6ymuXYs4fEPo/CtsJnjjoV83uK+1gyasiDdUJkD43ymNRSSMGb6DQ1Jc97yDo wcmKj2eAY0VCBnuAMVaeKE3b9x/DYP5uAr8JvFcg2jEt9DR4AuRzOGNCaGhMElpETVzJ CGHvrf3V1cDOsjRnLxsqfQP1Bh0IB/GcRHxeq2xQ64cwrqLJIor+YunGsqDE+zJel5am +3hvM6vhJj/GHdpPUjZqTjq7esYa3Cv73Lh430c83QkrkCHSjiRfmjyBXHNF/ouYxDEe cUjZgWQR5s0t75yheOla4sGju3hG45BpI3YgPK2H6VfVsiNCswmeOeWzlUOeHAmC3yab VVfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:content-language:in-reply-to:mime-version :date:message-id:references:cc:to:from:subject:x-gm-message-state :from:to:cc; bh=Ys5Y0AzHD1OqCWIJB0/Q1sQZyYFMPTwbe7Qr7cMK7+o=; b=hXXuN3vGmBitv/KdqbcM/s0VcIKHWNLGtgz8rVQj9uaGIjNTGpBenzJvLy80uZVLgk dLoKgzdWyuZZ4nEuJMRPvKC2rY4adXMkFacXKYGzTo8Bq3conpC3G/I3HDk9fiYwnFU2 J6ChpbPVZERhK8a507P3sgiHYHPb0t4r9e0Z0ehcOcf1l4EEpcb2zo88NPUKs2cZE6FN 1oqMfnVs+Lntm8ZFaujICyIKghuxqT/XdQHbhnxYcxwP4qr+JckERviO+TboIM102Jj4 v5fR5vm5nkYWqtLzbTrlh2+V5vyh5NhqRkV1CT4xq5gBel6BLythLVAQXVo+1IN9zmQR +55w== X-Gm-Message-State: ACgBeo2xYibDCpBrl/H9LJIJmdiVfUQSb7I7gxqymDjGIOthOi4MpU6G C4h1cStW/2eMvz3bYGDG9QV6HCETMOY= X-Google-Smtp-Source: AA6agR6wS3D5H+2hC3GLFtHcD1xuMxPxbU5xa006wDSHW7Lz7wC6B79F05+wS/1ALoXL6DUjVuHq5w== X-Received: by 2002:a17:90b:38c6:b0:1f7:35d8:26e2 with SMTP id nn6-20020a17090b38c600b001f735d826e2mr2633321pjb.168.1661490628783; Thu, 25 Aug 2022 22:10:28 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id g20-20020a17090a7d1400b001fd674057d2sm239398pjl.48.2022.08.25.22.10.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Aug 2022 22:10:27 -0700 (PDT) Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell From: Jim Porter To: Eli Zaretskii , Paul Eggert References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> <6d650d8d-32c2-3bc7-504a-b9fc14998b91@gmail.com> Message-ID: <3e5a2d16-72a6-bf18-03f6-6c9378a0c5cd@gmail.com> Date: Thu, 25 Aug 2022 22:10:27 -0700 MIME-Version: 1.0 In-Reply-To: <6d650d8d-32c2-3bc7-504a-b9fc14998b91@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129 Cc: larsi@gnus.org, 57129@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 8/24/2022 2:41 PM, Jim Porter wrote: > On 8/20/2022 11:03 AM, Jim Porter wrote: >> In addition to the changes to temporary file name generation, I think >> it would be useful for Eshell to kill the temporary buffer too. > [snip] >> Attached is a patch to do this. > > Assuming there are no remaining objections, I'll merge this in a day or > two. Merged as a457aa62577284333c7d25d48a49704788b25a04. From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 16 01:35:33 2023 Received: (at 57129-done) by debbugs.gnu.org; 16 Mar 2023 05:35:33 +0000 Received: from localhost ([127.0.0.1]:41020 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pcgGz-0007RY-6M for submit@debbugs.gnu.org; Thu, 16 Mar 2023 01:35:33 -0400 Received: from mail-pl1-f174.google.com ([209.85.214.174]:35465) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pcgGx-0007RJ-MI for 57129-done@debbugs.gnu.org; Thu, 16 Mar 2023 01:35:32 -0400 Received: by mail-pl1-f174.google.com with SMTP id i5so593693pla.2 for <57129-done@debbugs.gnu.org>; Wed, 15 Mar 2023 22:35:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678944925; 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=brZYMrZ3nVnWzuXTD4L2DpTy9HuNe+Vmr1V7327oBWo=; b=Nao9akJ8H7XG/UCTCaA3lQyPgjvhsqVVVyV2Oju6RAO8uRxQqGYBAdVBZn1nitUbAw Wd6d8pe8pFlYI7Tpu9dH8HKJt8mNcDQNoAZrzF3cB54z/Qrys5SUZal6xliIJJnhQUd8 8e7u7U3sOTWQNjFJEfW0Lf8JssXSy+RIezFa+h8qrvTUGYd0OT2xPGcLhtO3Xif9gN+m B2ghbNPnrxez9C/KNw3ud5QBYk4OavaafIqba9YW5JjiQbItKpwM99MNUYBIj9j2GO1P omxmD2oIEWfkr0UI23uM7qcgHsG0OY2COYKP3hDkGk5Vs3zdbzNbqLvBp5DDwGdBjLzS eWhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678944925; 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=brZYMrZ3nVnWzuXTD4L2DpTy9HuNe+Vmr1V7327oBWo=; b=eyIXLbAsnzbeDTlTEZRLscOM4jSnLAHNQ/NPEqT5tfzMeh1if6WWM+q7VVMxsaUS0k owbFzBflnoej7YoFYJzbtUm+rjsTydX5J1BKGZ7N1gB1wA7x6PfX7NL6aKMIXzgrxCVn 5vQ0z1vg9ZiGbKiwsoqbg4ItQkV4mh0IrEx1TQeFG1OZOfz0Lh3m5q1dHj6rLD0FSQlm HmunBtZc5BvfKSYyR6Yw6jjfMRr+aOJix9NnFLN2v38HjvjP/f6fUgDpN2Uh5utHkcd9 38dQcrAXTLC7urAGmGiwL5a50cMYtjzT0YmfmGM7Eo0xgKkcoPsX/6QSdR3hXGmMkEym 8R9g== X-Gm-Message-State: AO0yUKUk/AuS6jQQ4t3lC8DZdCnGPmuiswUXD4M2OxqFFmMKqKsOHqwp uXXotRBbuByHEFaSp/L42N8= X-Google-Smtp-Source: AK7set/MxQgPcXV6byKvyN25Cj+MFQgwrA0z+qBRB9gBS+Q8IbV4fXoZrk7UxuaLeQlzJOOyRu/uwQ== X-Received: by 2002:a17:90b:38ca:b0:23d:4625:40cd with SMTP id nn10-20020a17090b38ca00b0023d462540cdmr2562049pjb.0.1678944925629; Wed, 15 Mar 2023 22:35:25 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id p22-20020a1709028a9600b001a183ade911sm1187718plo.56.2023.03.15.22.35.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Mar 2023 22:35:24 -0700 (PDT) Message-ID: Date: Wed, 15 Mar 2023 22:35:24 -0700 MIME-Version: 1.0 Subject: Re: bug#57129: 29.0.50; Improve behavior of conditionals in Eshell Content-Language: en-US From: Jim Porter To: Eli Zaretskii , Paul Eggert References: <8fb3461d-b7eb-23c4-2736-cdd6dfeb1aa0@gmail.com> <87mtc9o5af.fsf@gnus.org> <83h72gmxtq.fsf@gnu.org> <7c04a92b-85f4-41c3-917b-4716cca2b9d6@gmail.com> <83pmh3l8ey.fsf@gnu.org> <9ca08054-5b73-a13e-0478-d838b650317b@gmail.com> <837d3bl1tx.fsf@gnu.org> <5ff283e8-9ced-5894-1075-43bba580185e@gmail.com> <831qthiu0s.fsf@gnu.org> <7259f313-c6ef-bce8-ddc4-e35ecc27d856@gmail.com> <83pmh1h2pv.fsf@gnu.org> <83lerpgyg3.fsf@gnu.org> <83ilmtgwq3.fsf@gnu.org> <6d650d8d-32c2-3bc7-504a-b9fc14998b91@gmail.com> <3e5a2d16-72a6-bf18-03f6-6c9378a0c5cd@gmail.com> In-Reply-To: <3e5a2d16-72a6-bf18-03f6-6c9378a0c5cd@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 57129-done Cc: larsi@gnus.org, 57129-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 8/25/2022 10:10 PM, Jim Porter wrote: > On 8/24/2022 2:41 PM, Jim Porter wrote: >> On 8/20/2022 11:03 AM, Jim Porter wrote: >>> In addition to the changes to temporary file name generation, I think >>> it would be useful for Eshell to kill the temporary buffer too. >> [snip] >>> Attached is a patch to do this. >> >> Assuming there are no remaining objections, I'll merge this in a day >> or two. > > Merged as a457aa62577284333c7d25d48a49704788b25a04. I know there was a quite-lengthy discussion about the tempname function, but I think those patches were merged, along with my patch for the original bug topic. Therefore, I'm going to close this. Of course, if there's still anything to do with the tempname stuff, let's do it (though it might help to give it a separate bug for tracking purposes). From unknown Wed Aug 20 03:37:31 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 13 Apr 2023 11:24:05 +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