From unknown Fri Aug 15 14:46:39 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#51699 <51699@debbugs.gnu.org> To: bug#51699 <51699@debbugs.gnu.org> Subject: Status: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files Reply-To: bug#51699 <51699@debbugs.gnu.org> Date: Fri, 15 Aug 2025 21:46:39 +0000 retitle 51699 29.0.50; [PATCH] Improve performance of 'file-name-case-insen= sitive-p' for Tramp files reassign 51699 emacs submitter 51699 Jim Porter severity 51699 normal tag 51699 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Nov 08 22:52:44 2021 Received: (at submit) by debbugs.gnu.org; 9 Nov 2021 03:52:44 +0000 Received: from localhost ([127.0.0.1]:60190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkIBf-0004HR-Ls for submit@debbugs.gnu.org; Mon, 08 Nov 2021 22:52:44 -0500 Received: from lists.gnu.org ([209.51.188.17]:59926) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkIBd-0004HJ-H6 for submit@debbugs.gnu.org; Mon, 08 Nov 2021 22:52:42 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mkIBd-0006XL-7j for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2021 22:52:41 -0500 Received: from [2607:f8b0:4864:20::236] (port=41738 helo=mail-oi1-x236.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mkIBa-0002Kq-Tz for bug-gnu-emacs@gnu.org; Mon, 08 Nov 2021 22:52:41 -0500 Received: by mail-oi1-x236.google.com with SMTP id u74so10220886oie.8 for ; Mon, 08 Nov 2021 19:52:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:from:subject:message-id:date:mime-version:content-language; bh=qfXMYL5UuKUsTmNDZXFDif6saOm6vFtUnDBuGOqqBBI=; b=YX3bTvONU6RoRL06ucITxfiWk3jTTqcyJZu6/gNvpvOsqJ4GbxAxQuTVDCfaR+Tn6X wJFPZpHlueh9pipid3W0li4h+HTFE/nehIYWbdkMWJkpRY4L61rzBkvJdUdYFrtow7+K 2I5OhjOv4gC2JNHBx5vN8s4IPGVmKsw57zGC5gQM1Xuj3k+O/0rI0Jnhsr0wOFToQqxQ sOlp+7PjHDA02nsghYrIk5XCp6OQB4iR+jU5iKlmdhLPFxq6rua1ID6XnQWLGAD5POpL nt/h2L56xXd6ydiZH6FZM9fEXVwDt3rNyA+ssGfN46Ozhs03DuTIS2Ip1LHeRdxcjDCV GFQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:to:from:subject:message-id:date:mime-version :content-language; bh=qfXMYL5UuKUsTmNDZXFDif6saOm6vFtUnDBuGOqqBBI=; b=WvzgkrOXNlttaRi2XqnLkTFt+t4y7rICQqRTu8PgKfws5lQDEiARIoJemuPHgJECkR x1KHWiElu0GLS7uvwLgT78k5XoicmZO1hApuASANAYX86n7hf8gFs+GddJEEVzP5dWFy FwtsZ1/VcOw9gzC6S6LA1Y7wcCNFBfxy/cDA4k6YMQ21+VobFiZeEVehoyiXv+fqV+9f dkP7j8bjMZBU+fLx42HL57s897ZGOKRTNoQ2Vjfv/5gzi0Ne5a0KiqLpSWTBd2kugTEK vBSR0LsDEeQFtqrafOq4pRXmiE84YhoNf4brFO3PgljIRMbxTcYOXxwoduM7+200vp31 h7nw== X-Gm-Message-State: AOAM530APlFMltBdJR9Adlgr16+4ziFooKKimKOWoEJcwEw42kBHY7Dq CnPYKiI2nExyrgmZwXslrT61rC7XPyM= X-Google-Smtp-Source: ABdhPJxneC58dODxm/BDG51QOu3Z8cxRUIAjZaaasRLv6ICiFXI/HMIrCmBCjTEHQbqXHGvk5jiHBg== X-Received: by 2002:a17:90b:4f85:: with SMTP id qe5mr3707983pjb.167.1636429566705; Mon, 08 Nov 2021 19:46:06 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id q10sm706979pjd.0.2021.11.08.19.46.05 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 08 Nov 2021 19:46:05 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.org:119 To: bug-gnu-emacs@gnu.org From: Jim Porter Subject: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files Message-ID: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> Date: Mon, 8 Nov 2021 19:46:05 -0800 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------75C5D3F17EED9DB56339A828" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::236 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::236; envelope-from=jporterbugs@gmail.com; helo=mail-oi1-x236.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 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, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 (--) This is a multi-part message in MIME format. --------------75C5D3F17EED9DB56339A828 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit This is a spinoff of bug#51622. While looking at the performance of 'abbreviate-file-name' for Tramp files, I noticed that 'file-name-case-insensitive-p' was taking up a significant percentage of the execution time. I dug into this and found two main hot spots: 1) 'tramp-handle-file-name-case-insensitive-p' calling 'file-remote-p' and 'expand-file-name' Since 'file-remote-p' only needed to check whether a connection was already established, it could be replaced with this (thanks to Michael Albinus for the pointer): (let ((non-essential t)) (tramp-connectable-p v)) 'expand-file-name' also had room for a small optimization, since it previously called 'tramp-connectable-p' (which dissects the file if it's not already) and then 'with-parsed-tramp-file-name' (which dissects it again). I reversed the order so now there's one fewer dissection, and it's a bit faster. 2) Potential handlers in 'tramp-find-foreign-file-name-handler' each dissect the file name Most Tramp methods have a 'tramp-FOO-file-name-p', and most of *those* take a file name string and dissect it. This is a lot of duplicated effort, so I modified 'tramp-find-foreign-file-name-handler' to pass the dissected file name to any of the functions that support it (this is indicated by an 'accepts-vec' property on the function). This probably warrants some documentation (at least a NEWS entry), but I wanted to be sure the strategy made sense before I wrote any docs. With these changes combined, I see the following results (testing with the sshx method connecting to localhost on a GNU/Linux system): * 'file-name-case-insensitive-p': 3.5x faster, now 583μs per call * 'tramp-handle-file-name-case-insensitive-p': 4.5x faster, now 281μs per call * 'tramp-find-foreign-file-name-handler': 5.2x faster, now 45μs per call In addition to the patches, I've attached the benchmark script that generated these results as well as the raw data. --------------75C5D3F17EED9DB56339A828 Content-Type: text/plain; charset=UTF-8; name="0001-Improve-performance-when-checking-case-sensitivity-o.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Improve-performance-when-checking-case-sensitivity-o.pa"; filename*1="tch" RnJvbSAzYmUyYTVkYTExMDE4ZjAzYzljMDgwNjAzODA1OGVlODAxMWZhZjQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgOCBOb3YgMjAyMSAxNToxMzozNCAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS8yXSBJbXByb3ZlIHBlcmZvcm1hbmNlIHdoZW4gY2hlY2tpbmcgY2FzZS1zZW5zaXRp dml0eSBvZgogVHJhbXAgZmlsZSBuYW1lcwoKKiBsaXNwL25ldC90cmFtcC5lbCAodHJhbXAt aGFuZGxlLWZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXApOiBVc2UKJ3RyYW1wLWNvbm5l Y3RhYmxlLXAnIHRvIHRlc3QgZm9yIGNvbm5lY3Rpb24uCiogbGlzcC9uZXQvdHJhbXAtc2gu ZWwgKHRyYW1wLXNoLWhhbmRsZS1leHBhbmQtZmlsZS1uYW1lKTogRGlzc2VjdApmaWxlIG5h bWUgYmVmb3JlIHRlc3RpbmcgZm9yIGNvbm5lY3RhYmlsaXR5IHRvIHJlZHVjZSBkdXBsaWNh dGVkIHdvcmsuCi0tLQogbGlzcC9uZXQvdHJhbXAtc2guZWwgfCA4ICsrKystLS0tCiBsaXNw L25ldC90cmFtcC5lbCAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLXNoLmVs IGIvbGlzcC9uZXQvdHJhbXAtc2guZWwKaW5kZXggNjI5MjE5MDk0MC4uNTZkY2Q2MWU1YyAx MDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc2guZWwKKysrIGIvbGlzcC9uZXQvdHJhbXAt c2guZWwKQEAgLTI3MDUsMTEgKzI3MDUsMTEgQEAgdHJhbXAtc2gtaGFuZGxlLWV4cGFuZC1m aWxlLW5hbWUKICAgICA7OyBVbmxlc3MgTkFNRSBpcyBhYnNvbHV0ZSwgY29uY2F0IERJUiBh bmQgTkFNRS4KICAgICAodW5sZXNzIChmaWxlLW5hbWUtYWJzb2x1dGUtcCBuYW1lKQogICAg ICAgKHNldHEgbmFtZSAodHJhbXAtY29tcGF0LWZpbGUtbmFtZS1jb25jYXQgZGlyIG5hbWUp KSkKKyAgICA7OyBEaXNzZWN0IE5BTUUuCisgICAgKHdpdGgtcGFyc2VkLXRyYW1wLWZpbGUt bmFtZSBuYW1lIG5pbAogICAgIDs7IElmIGNvbm5lY3Rpb24gaXMgbm90IGVzdGFibGlzaGVk IHlldCwgcnVuIHRoZSByZWFsIGhhbmRsZXIuCi0gICAgKGlmIChub3QgKHRyYW1wLWNvbm5l Y3RhYmxlLXAgbmFtZSkpCi0JKHRyYW1wLXJ1bi1yZWFsLWhhbmRsZXIgIydleHBhbmQtZmls ZS1uYW1lIChsaXN0IG5hbWUgbmlsKSkKLSAgICAgIDs7IERpc3NlY3QgTkFNRS4KLSAgICAg ICh3aXRoLXBhcnNlZC10cmFtcC1maWxlLW5hbWUgbmFtZSBuaWwKKyAgICAgIChpZiAobm90 ICh0cmFtcC1jb25uZWN0YWJsZS1wIHYpKQorCSAgKHRyYW1wLXJ1bi1yZWFsLWhhbmRsZXIg IydleHBhbmQtZmlsZS1uYW1lIChsaXN0IG5hbWUgbmlsKSkKIAkodW5sZXNzICh0cmFtcC1y dW4tcmVhbC1oYW5kbGVyICMnZmlsZS1uYW1lLWFic29sdXRlLXAgKGxpc3QgbG9jYWxuYW1l KSkKIAkgIChzZXRxIGxvY2FsbmFtZSAoY29uY2F0ICJ+LyIgbG9jYWxuYW1lKSkpCiAJOzsg VGlsZGUgZXhwYW5zaW9uIGlmIG5lY2Vzc2FyeS4gIFRoaXMgbmVlZHMgYSBzaGVsbCB3aGlj aApkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAuZWwgYi9saXNwL25ldC90cmFtcC5lbApp bmRleCBiMTUyNTg0YzFmLi5hODk3MmNlNjllIDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFt cC5lbAorKysgYi9saXNwL25ldC90cmFtcC5lbApAQCAtMzQ4NCw3ICszNDg0LDcgQEAgdHJh bXAtaGFuZGxlLWZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAKICAgICAgKHRyYW1wLWdl dC1tZXRob2QtcGFyYW1ldGVyIHYgJ3RyYW1wLWNhc2UtaW5zZW5zaXRpdmUpCiAKICAgICAg OzsgVGhlcmUgaXNuJ3QuICBTbyB3ZSBtdXN0IGNoZWNrLCBpbiBjYXNlIHRoZXJlJ3MgYSBj b25uZWN0aW9uIGFscmVhZHkuCi0gICAgIChhbmQgKGZpbGUtcmVtb3RlLXAgZmlsZW5hbWUg bmlsICdjb25uZWN0ZWQpCisgICAgIChhbmQgKGxldCAoKG5vbi1lc3NlbnRpYWwgdCkpICh0 cmFtcC1jb25uZWN0YWJsZS1wIHYpKQogICAgICAgICAgICh3aXRoLXRyYW1wLWNvbm5lY3Rp b24tcHJvcGVydHkgdiAiY2FzZS1pbnNlbnNpdGl2ZSIKIAkgICAgKGlnbm9yZS1lcnJvcnMK IAkgICAgICAod2l0aC10cmFtcC1wcm9ncmVzcy1yZXBvcnRlciB2IDUgIkNoZWNraW5nIGNh c2UtaW5zZW5zaXRpdmUiCi0tIAoyLjI1LjEKCg== --------------75C5D3F17EED9DB56339A828 Content-Type: text/plain; charset=UTF-8; name="0002-Improve-performance-of-tramp-find-foreign-file-name-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Improve-performance-of-tramp-find-foreign-file-name-.pa"; filename*1="tch" RnJvbSBlZTcxMWIzYWQ0ZjI2YWRjNzViOGEzMTJlN2EwNWEzM2EwYTY4NTI0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IE1vbiwgOCBOb3YgMjAyMSAxODo1NTo0NCAtMDgwMApTdWJqZWN0OiBbUEFU Q0ggMi8yXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mCiAndHJhbXAtZmluZC1mb3JlaWduLWZp bGUtbmFtZS1oYW5kbGVyJwoKUHJldmlvdXNseSwgbW9zdCBmdW5jdGlvbnMgaW4gJ3RyYW1w LWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QnCndvdWxkIGNhbGwgJ3RyYW1wLWRp c3NlY3QtZmlsZS1uYW1lJywgcmVzdWx0aW5nIGluIGl0IGJlaW5nIGNhbGxlZApzZXZlcmFs IHRpbWVzIHdoZW5ldmVyICd0cmFtcC1maW5kLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIn IHdhcwpjYWxsZWQuICBOb3csIGZ1bmN0aW9ucyBjYW4gaW5kaWNhdGUgdGhleSBhY2NlcHQg YSBkaXNzZWN0ZWQgZmlsZSBuYW1lCnRvIGF2b2lkIHRoaXMgZHVwbGljYXRlZCBlZmZvcnQu CgpsaXNwL25ldC90cmFtcC5lbCAodHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUp OiBOZXcgZnVuY3Rpb24uCih0cmFtcC1maW5kLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIp OiBQYXNzIGRpc3NlY3RlZCBmaWxlIG5hbWUgdG8KZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0 LgpsaXNwL25ldC90cmFtcC1hZGIuZWwgKHRyYW1wLWFkYi1maWxlLW5hbWUtcCk6Cmxpc3Av bmV0L3RyYW1wLWZ0cC5lbCAodHJhbXAtZnRwLWZpbGUtbmFtZS1wKToKbGlzcC9uZXQvdHJh bXAtZ3Zmcy5lbCAodHJhbXAtZ3Zmcy1maWxlLW5hbWUtcCk6Cmxpc3AvbmV0L3RyYW1wLXJj bG9uZS5lbCAodHJhbXAtcmNsb25lLWZpbGUtbmFtZS1wKToKbGlzcC9uZXQvdHJhbXAtc21i LmVsICh0cmFtcC1zbWItZmlsZS1uYW1lLXApOgpsaXNwL25ldC90cmFtcC1zc2hmcy5lbCAo dHJhbXAtc3NoZnMtZmlsZS1uYW1lLXApOgpsaXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbCAo dHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLXApOgpBY2NlcHQgZGlzc2VjdGVkIGZpbGUgbmFt ZXMgYW5kIG1hcmsgdGhpcyB3aXRoICdhY2NlcHRzLXZlYycgcHJvcGVydHkuCmxpc3AvbmV0 L3RyYW1wLXNoLmVsICh0cmFtcC1zaC0tZmlsZS1uYW1lLXApOgpOZXcgZnVuY3Rpb24sIGFu ZCBtYXJrIGl0IHdpdGggJ2FjY2VwdHMtdmVjJyBwcm9wZXJ0eS4KLS0tCiBsaXNwL25ldC90 cmFtcC1hZGIuZWwgICAgICB8IDEyICsrKysrKystLS0tLQogbGlzcC9uZXQvdHJhbXAtZnRw LmVsICAgICAgfCAxMiArKysrKysrLS0tLS0KIGxpc3AvbmV0L3RyYW1wLWd2ZnMuZWwgICAg IHwgMTQgKysrKysrKystLS0tLS0KIGxpc3AvbmV0L3RyYW1wLXJjbG9uZS5lbCAgIHwgMTIg KysrKysrKy0tLS0tCiBsaXNwL25ldC90cmFtcC1zaC5lbCAgICAgICB8IDEzICsrKysrKysr KysrLS0KIGxpc3AvbmV0L3RyYW1wLXNtYi5lbCAgICAgIHwgMTIgKysrKysrKy0tLS0tCiBs aXNwL25ldC90cmFtcC1zc2hmcy5lbCAgICB8IDEyICsrKysrKystLS0tLQogbGlzcC9uZXQv dHJhbXAtc3Vkb2VkaXQuZWwgfCAxMiArKysrKysrLS0tLS0KIGxpc3AvbmV0L3RyYW1wLmVs ICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKystLS0tCiA5IGZpbGVzIGNoYW5n ZWQsIDgxIGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xp c3AvbmV0L3RyYW1wLWFkYi5lbCBiL2xpc3AvbmV0L3RyYW1wLWFkYi5lbAppbmRleCAzNjJh MjU4ZjQzLi42NGUyZGFkOTY2IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1hZGIuZWwK KysrIGIvbGlzcC9uZXQvdHJhbXAtYWRiLmVsCkBAIC0xOTEsMTEgKzE5MSwxMyBAQCB0cmFt cC1hZGItZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QKIDs7IEl0IG11c3QgYmUgYSBgZGVmc3Vi c3QnIGluIG9yZGVyIHRvIHB1c2ggdGhlIHdob2xlIGNvZGUgaW50bwogOzsgdHJhbXAtbG9h ZGRlZnMuZWwuICBPdGhlcndpc2UsIHRoZXJlIHdvdWxkIGJlIHJlY3Vyc2l2ZSBhdXRvbG9h ZGluZy4KIDs7OyMjI3RyYW1wLWF1dG9sb2FkCi0oZGVmc3Vic3QgdHJhbXAtYWRiLWZpbGUt bmFtZS1wIChmaWxlbmFtZSkKLSAgIkNoZWNrIGlmIGl0J3MgYSBGSUxFTkFNRSBmb3IgQURC LiIKLSAgKGFuZCAodHJhbXAtdHJhbXAtZmlsZS1wIGZpbGVuYW1lKQotICAgICAgIChzdHJp bmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBm aWxlbmFtZSkpCi0JCXRyYW1wLWFkYi1tZXRob2QpKSkKKyhkZWZzdWJzdCB0cmFtcC1hZGIt ZmlsZS1uYW1lLXAgKHZlYy1vci1maWxlbmFtZSkKKyAgIkNoZWNrIGlmIGl0J3MgYSBWRUMt T1ItRklMRU5BTUUgZm9yIEFEQi4iCisgICh3aGVuLWxldCogKCh2ZWMgKHRyYW1wLWVuc3Vy ZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkpKQorICAgIChzdHJpbmc9 ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtYWRiLW1ldGhvZCkpKQorCis7 OzsjIyN0cmFtcC1hdXRvbG9hZAorKHB1dCAjJ3RyYW1wLWFkYi1maWxlLW5hbWUtcCAnYWNj ZXB0cy12ZWMgdCkKIAogOzs7IyMjdHJhbXAtYXV0b2xvYWQKIChkZWZ1biB0cmFtcC1hZGIt ZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpkaWZmIC0tZ2l0IGEv bGlzcC9uZXQvdHJhbXAtZnRwLmVsIGIvbGlzcC9uZXQvdHJhbXAtZnRwLmVsCmluZGV4IDEx Y2NkYzhhNGMuLjFiZGI4MjNkODQgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLWZ0cC5l bAorKysgYi9saXNwL25ldC90cmFtcC1mdHAuZWwKQEAgLTE3NSwxMSArMTc1LDEzIEBAIHRy YW1wLWZ0cC1maWxlLW5hbWUtaGFuZGxlcgogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcg aW4gb3JkZXIgdG8gcHVzaCB0aGUgd2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVm cy5lbC4gIE90aGVyd2lzZSwgdGhlcmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5n LgogOzs7IyMjdHJhbXAtYXV0b2xvYWQKLShkZWZzdWJzdCB0cmFtcC1mdHAtZmlsZS1uYW1l LXAgKGZpbGVuYW1lKQotICAiQ2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIHRoYXQgc2hvdWxk IGJlIGZvcndhcmRlZCB0byBBbmdlLUZUUC4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUt cCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCAo dHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUpKQotCQl0cmFtcC1mdHAtbWV0aG9k KSkpCisoZGVmc3Vic3QgdHJhbXAtZnRwLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUp CisgICJDaGVjayBpZiBpdCdzIGEgVkVDLU9SLUZJTEVOQU1FIHRoYXQgc2hvdWxkIGJlIGZv cndhcmRlZCB0byBBbmdlLUZUUC4iCisgICh3aGVuLWxldCogKCh2ZWMgKHRyYW1wLWVuc3Vy ZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkpKQorICAgIChzdHJpbmc9 ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtZnRwLW1ldGhvZCkpKQorCis7 OzsjIyN0cmFtcC1hdXRvbG9hZAorKHB1dCAjJ3RyYW1wLWZ0cC1maWxlLW5hbWUtcCAnYWNj ZXB0cy12ZWMgdCkKIAogOzs7IyMjdHJhbXAtYXV0b2xvYWQKICh0cmFtcC0td2l0aC1zdGFy dHVwCmRpZmYgLS1naXQgYS9saXNwL25ldC90cmFtcC1ndmZzLmVsIGIvbGlzcC9uZXQvdHJh bXAtZ3Zmcy5lbAppbmRleCBjYWI5MTJiZDkzLi5jY2FiMWYwOTI3IDEwMDY0NAotLS0gYS9s aXNwL25ldC90cmFtcC1ndmZzLmVsCisrKyBiL2xpc3AvbmV0L3RyYW1wLWd2ZnMuZWwKQEAg LTgzNCwxMiArODM0LDE0IEBAIHRyYW1wLWd2ZnMtZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QK IDs7IEl0IG11c3QgYmUgYSBgZGVmc3Vic3QnIGluIG9yZGVyIHRvIHB1c2ggdGhlIHdob2xl IGNvZGUgaW50bwogOzsgdHJhbXAtbG9hZGRlZnMuZWwuICBPdGhlcndpc2UsIHRoZXJlIHdv dWxkIGJlIHJlY3Vyc2l2ZSBhdXRvbG9hZGluZy4KIDs7OyMjI3RyYW1wLWF1dG9sb2FkCi0o ZGVmc3Vic3QgdHJhbXAtZ3Zmcy1maWxlLW5hbWUtcCAoZmlsZW5hbWUpCi0gICJDaGVjayBp ZiBpdCdzIGEgRklMRU5BTUUgaGFuZGxlZCBieSB0aGUgR1ZGUyBkYWVtb24uIgotICAoYW5k ICh0cmFtcC10cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKGxldCAoKG1ldGhvZAot CSAgICAgICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFt ZSBmaWxlbmFtZSkpKSkKLQkgKGFuZCAoc3RyaW5ncCBtZXRob2QpIChtZW1iZXIgbWV0aG9k IHRyYW1wLWd2ZnMtbWV0aG9kcykpKSkpCisoZGVmc3Vic3QgdHJhbXAtZ3Zmcy1maWxlLW5h bWUtcCAodmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1GSUxF TkFNRSBoYW5kbGVkIGJ5IHRoZSBHVkZTIGRhZW1vbi4iCisgICh3aGVuLWxldCogKCh2ZWMg KHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkpKQor ICAgIChsZXQgKChtZXRob2QgKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgdmVjKSkpCisgICAg ICAoYW5kIChzdHJpbmdwIG1ldGhvZCkgKG1lbWJlciBtZXRob2QgdHJhbXAtZ3Zmcy1tZXRo b2RzKSkpKSkKKworOzs7IyMjdHJhbXAtYXV0b2xvYWQKKyhwdXQgIyd0cmFtcC1ndmZzLWZp bGUtbmFtZS1wICdhY2NlcHRzLXZlYyB0KQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRl ZnVuIHRyYW1wLWd2ZnMtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdz KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtcmNsb25lLmVsIGIvbGlzcC9uZXQvdHJh bXAtcmNsb25lLmVsCmluZGV4IDgxMmUwNmYzZjEuLjUyY2VmMmRjYjcgMTAwNjQ0Ci0tLSBh L2xpc3AvbmV0L3RyYW1wLXJjbG9uZS5lbAorKysgYi9saXNwL25ldC90cmFtcC1yY2xvbmUu ZWwKQEAgLTE1NiwxMSArMTU2LDEzIEBAIHRyYW1wLXJjbG9uZS1maWxlLW5hbWUtaGFuZGxl ci1hbGlzdAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0 aGUgd2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwg dGhlcmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0 b2xvYWQKLShkZWZzdWJzdCB0cmFtcC1yY2xvbmUtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQot ICAiQ2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciByY2xvbmUuIgotICAoYW5kICh0cmFt cC10cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKHN0cmluZz0gKHRyYW1wLWZpbGUt bmFtZS1tZXRob2QgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkKLQkJdHJh bXAtcmNsb25lLW1ldGhvZCkpKQorKGRlZnN1YnN0IHRyYW1wLXJjbG9uZS1maWxlLW5hbWUt cCAodmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1GSUxFTkFN RSBmb3IgcmNsb25lLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3Nl Y3RlZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmluZz0gKHRyYW1w LWZpbGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1yY2xvbmUtbWV0aG9kKSkpCisKKzs7OyMj I3RyYW1wLWF1dG9sb2FkCisocHV0ICMndHJhbXAtcmNsb25lLWZpbGUtbmFtZS1wICdhY2Nl cHRzLXZlYyB0KQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZnVuIHRyYW1wLXJjbG9u ZS1maWxlLW5hbWUtaGFuZGxlciAob3BlcmF0aW9uICZyZXN0IGFyZ3MpCmRpZmYgLS1naXQg YS9saXNwL25ldC90cmFtcC1zaC5lbCBiL2xpc3AvbmV0L3RyYW1wLXNoLmVsCmluZGV4IDU2 ZGNkNjFlNWMuLmRiMTNkOTJmYjMgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLXNoLmVs CisrKyBiL2xpc3AvbmV0L3RyYW1wLXNoLmVsCkBAIC0zNjUzLDExICszNjUzLDIwIEBAIHRy YW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLXAKIAkgICAgKHRyYW1wLW1ha2UtdHJhbXAtZmls ZS1uYW1lIHZlYyBuaWwgJ25vaG9wKSkKIAkgICAndHJhbXAtc2gtZmlsZS1uYW1lLWhhbmRs ZXIpKSkKIAotOzsgVGhpcyBtdXN0IGJlIHRoZSBsYXN0IGVudHJ5LCBiZWNhdXNlIGBpZGVu dGl0eScgYWx3YXlzIG1hdGNoZXMuCis7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0JyBpbiBv cmRlciB0byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KKzs7IHRyYW1wLWxvYWRkZWZzLmVs LiAgT3RoZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRpbmcuCis7 OzsjIyN0cmFtcC1hdXRvbG9hZAorKGRlZnN1YnN0IHRyYW1wLXNoLS1maWxlLW5hbWUtcCAo X3ZlYy1vci1maWxlbmFtZSkgdCkKKworOzs7IyMjdHJhbXAtYXV0b2xvYWQKKyhwdXQgIyd0 cmFtcC1zaC0tZmlsZS1uYW1lLXAgJ2FjY2VwdHMtdmVjIHQpCisKKzs7IFRoaXMgbXVzdCBi ZSB0aGUgbGFzdCBlbnRyeSwgYmVjYXVzZSBgdHJhbXAtc2gtLWZpbGUtbmFtZS1wJyBhbHdh eXMKKzs7IG1hdGNoZXMuCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKHRyYW1wLS13aXRoLXN0 YXJ0dXAKICAodHJhbXAtcmVnaXN0ZXItZm9yZWlnbi1maWxlLW5hbWUtaGFuZGxlcgotICAj J2lkZW50aXR5ICMndHJhbXAtc2gtZmlsZS1uYW1lLWhhbmRsZXIgJ2FwcGVuZCkpCisgICMn dHJhbXAtc2gtLWZpbGUtbmFtZS1wICMndHJhbXAtc2gtZmlsZS1uYW1lLWhhbmRsZXIgJ2Fw cGVuZCkpCiAKIChkZWZ1biB0cmFtcC12Yy1maWxlLW5hbWUtaGFuZGxlciAob3BlcmF0aW9u ICZyZXN0IGFyZ3MpCiAgICJJbnZva2Ugc3BlY2lhbCBmaWxlIG5hbWUgaGFuZGxlciwgd2hp Y2ggY29sbGVjdHMgZmlsZXMgdG8gYmUgaGFuZGxlZC4iCmRpZmYgLS1naXQgYS9saXNwL25l dC90cmFtcC1zbWIuZWwgYi9saXNwL25ldC90cmFtcC1zbWIuZWwKaW5kZXggNDlmMDQ5ZDNm My4uMTRlZjQ0OTc0NSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc21iLmVsCisrKyBi L2xpc3AvbmV0L3RyYW1wLXNtYi5lbApAQCAtMzMwLDExICszMzAsMTMgQEAgdHJhbXAtc21i LXdpbmV4ZS1zaGVsbC1jb21tYW5kLXN3aXRjaAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJz dCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUgd2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2Fk ZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhlcmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2Fk aW5nLgogOzs7IyMjdHJhbXAtYXV0b2xvYWQKLShkZWZzdWJzdCB0cmFtcC1zbWItZmlsZS1u YW1lLXAgKGZpbGVuYW1lKQotICAiQ2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciBTTUIg c2VydmVycy4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAg ICAoc3RyaW5nPSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxl LW5hbWUgZmlsZW5hbWUpKQotCQl0cmFtcC1zbWItbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJh bXAtc21iLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdz IGEgVkVDLU9SLUZJTEVOQU1FIGZvciBTTUIgc2VydmVycy4iCisgICh3aGVuLWxldCogKCh2 ZWMgKHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkp KQorICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtc21i LW1ldGhvZCkpKQorCis7OzsjIyN0cmFtcC1hdXRvbG9hZAorKHB1dCAjJ3RyYW1wLXNtYi1m aWxlLW5hbWUtcCAnYWNjZXB0cy12ZWMgdCkKIAogOzs7IyMjdHJhbXAtYXV0b2xvYWQKIChk ZWZ1biB0cmFtcC1zbWItZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdz KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwgYi9saXNwL25ldC90cmFt cC1zc2hmcy5lbAppbmRleCBhMTAwNzg2MzQ1Li44MjEwZThhNmFlIDEwMDY0NAotLS0gYS9s aXNwL25ldC90cmFtcC1zc2hmcy5lbAorKysgYi9saXNwL25ldC90cmFtcC1zc2hmcy5lbApA QCAtMTU2LDExICsxNTYsMTMgQEAgdHJhbXAtc3NoZnMtZmlsZS1uYW1lLWhhbmRsZXItYWxp c3QKIDs7IEl0IG11c3QgYmUgYSBgZGVmc3Vic3QnIGluIG9yZGVyIHRvIHB1c2ggdGhlIHdo b2xlIGNvZGUgaW50bwogOzsgdHJhbXAtbG9hZGRlZnMuZWwuICBPdGhlcndpc2UsIHRoZXJl IHdvdWxkIGJlIHJlY3Vyc2l2ZSBhdXRvbG9hZGluZy4KIDs7OyMjI3RyYW1wLWF1dG9sb2Fk Ci0oZGVmc3Vic3QgdHJhbXAtc3NoZnMtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQotICAiQ2hl Y2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciBzc2hmcy4iCi0gIChhbmQgKHRyYW1wLXRyYW1w LWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJhbXAtZmlsZS1uYW1lLW1l dGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUpKQotCSAgICAgICAgdHJh bXAtc3NoZnMtbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJhbXAtc3NoZnMtZmlsZS1uYW1lLXAg KHZlYy1vci1maWxlbmFtZSkKKyAgIkNoZWNrIGlmIGl0J3MgYSBWRUMtT1ItRklMRU5BTUUg Zm9yIHNzaGZzLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3Rl ZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmluZz0gKHRyYW1wLWZp bGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1zc2hmcy1tZXRob2QpKSkKKworOzs7IyMjdHJh bXAtYXV0b2xvYWQKKyhwdXQgIyd0cmFtcC1zc2hmcy1maWxlLW5hbWUtcCAnYWNjZXB0cy12 ZWMgdCkKIAogOzs7IyMjdHJhbXAtYXV0b2xvYWQKIChkZWZ1biB0cmFtcC1zc2hmcy1maWxl LW5hbWUtaGFuZGxlciAob3BlcmF0aW9uICZyZXN0IGFyZ3MpCmRpZmYgLS1naXQgYS9saXNw L25ldC90cmFtcC1zdWRvZWRpdC5lbCBiL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCmlu ZGV4IDg0NWYzMWQwOWIuLjZlZjIxNjAyODQgMTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1w LXN1ZG9lZGl0LmVsCisrKyBiL2xpc3AvbmV0L3RyYW1wLXN1ZG9lZGl0LmVsCkBAIC0xNDgs MTEgKzE0OCwxMyBAQCB0cmFtcC1zdWRvZWRpdC1maWxlLW5hbWUtaGFuZGxlci1hbGlzdAog OzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUgd2hvbGUg Y29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhlcmUgd291 bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0b2xvYWQKLShk ZWZzdWJzdCB0cmFtcC1zdWRvZWRpdC1maWxlLW5hbWUtcCAoZmlsZW5hbWUpCi0gICJDaGVj ayBpZiBpdCdzIGEgRklMRU5BTUUgZm9yIFNVRE9FRElULiIKLSAgKGFuZCAodHJhbXAtdHJh bXAtZmlsZS1wIGZpbGVuYW1lKQotICAgICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUt bWV0aG9kICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBmaWxlbmFtZSkpCi0JCXRyYW1wLXN1 ZG9lZGl0LW1ldGhvZCkpKQorKGRlZnN1YnN0IHRyYW1wLXN1ZG9lZGl0LWZpbGUtbmFtZS1w ICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdzIGEgVkVDLU9SLUZJTEVOQU1F IGZvciBTVURPRURJVC4iCisgICh3aGVuLWxldCogKCh2ZWMgKHRyYW1wLWVuc3VyZS1kaXNz ZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkpKQorICAgIChzdHJpbmc9ICh0cmFt cC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtc3Vkb2VkaXQtbWV0aG9kKSkpCisKKzs7 OyMjI3RyYW1wLWF1dG9sb2FkCisocHV0ICMndHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLXAg J2FjY2VwdHMtdmVjIHQpCiAKIDs7OyMjI3RyYW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAt c3Vkb2VkaXQtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpkaWZm IC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAuZWwgYi9saXNwL25ldC90cmFtcC5lbAppbmRleCBh ODk3MmNlNjllLi43M2I2OWZhMWE0IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC5lbAor KysgYi9saXNwL25ldC90cmFtcC5lbApAQCAtMTY2OSw2ICsxNjY5LDE2IEBAIHRyYW1wLWRp c3NlY3QtZmlsZS1uYW1lCiAKIChwdXQgIyd0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSAndHJh bXAtc3VwcHJlc3MtdHJhY2UgdCkKIAorKGRlZnVuIHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQt ZmlsZS1uYW1lICh2ZWMtb3ItZmlsZW5hbWUpCisgICJSZXR1cm4gYSBgdHJhbXAtZmlsZS1u YW1lJyBzdHJ1Y3R1cmUgZm9yIFZFQy1PUi1GSUxFTkFNRS4KKworVkVDLU9SLUZJTEVOQU1F IG1heSBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYSBgdHJhbXAtZmlsZS1uYW1lJy4KK0lmIGl0 J3Mgbm90IGEgVHJhbXAgZmlsZW5hbWUsIHJldHVybiBuaWwuIgorICAoY29uZAorICAgKCh0 cmFtcC1maWxlLW5hbWUtcCB2ZWMtb3ItZmlsZW5hbWUpIHZlYy1vci1maWxlbmFtZSkKKyAg ICgodHJhbXAtdHJhbXAtZmlsZS1wIHZlYy1vci1maWxlbmFtZSkKKyAgICAodHJhbXAtZGlz c2VjdC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpKQorCiAoZGVmdW4gdHJhbXAtZGlz c2VjdC1ob3AtbmFtZSAobmFtZSAmb3B0aW9uYWwgbm9kZWZhdWx0KQogICAiUmV0dXJuIGEg YHRyYW1wLWZpbGUtbmFtZScgc3RydWN0dXJlIG9mIGBob3AnIHBhcnQgb2YgTkFNRS4KIFNl ZSBgdHJhbXAtZGlzc2VjdC1maWxlLW5hbWUnIGZvciBkZXRhaWxzLiIKQEAgLTI1NTIsMTMg KzI1NjIsMTUgQEAgdHJhbXAtZmluZC1mb3JlaWduLWZpbGUtbmFtZS1oYW5kbGVyCiAgICJS ZXR1cm4gZm9yZWlnbiBmaWxlIG5hbWUgaGFuZGxlciBpZiBleGlzdHMuIgogICAod2hlbiAo dHJhbXAtdHJhbXAtZmlsZS1wIGZpbGVuYW1lKQogICAgIChsZXQgKChoYW5kbGVyIHRyYW1w LWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXItYWxpc3QpCisgICAgICAgICAgKHZlYyAodHJh bXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUpKQogCSAgZWx0IHJlcykKICAgICAgICh3 aGlsZSBoYW5kbGVyCiAJKHNldHEgZWx0IChjYXIgaGFuZGxlcikKIAkgICAgICBoYW5kbGVy IChjZHIgaGFuZGxlcikpCi0JKHdoZW4gKGZ1bmNhbGwgKGNhciBlbHQpIGZpbGVuYW1lKQot CSAgKHNldHEgaGFuZGxlciBuaWwKLQkJcmVzIChjZHIgZWx0KSkpKQorICAgICAgICAobGV0 ICgoZnVuYyAoY2FyIGVsdCkpKQorICAgICAgICAgICh3aGVuIChmdW5jYWxsIGZ1bmMgKGlm IChnZXQgZnVuYyAnYWNjZXB0cy12ZWMpIHZlYyBmaWxlbmFtZSkpCisJICAgIChzZXRxIGhh bmRsZXIgbmlsCisJCSAgcmVzIChjZHIgZWx0KSkpKSkKICAgICAgIHJlcykpKQogCiA7OyBN YWluIGZ1bmN0aW9uLgpAQCAtMjc1Niw3ICsyNzY4LDExIEBAIHRyYW1wLXJlZ2lzdGVyLWZv cmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIKICAgICAoZnVuYyBoYW5kbGVyICZvcHRpb25hbCBh cHBlbmQpCiAgICJSZWdpc3RlciAoRlVOQyAuIEhBTkRMRVIpIGluIGB0cmFtcC1mb3JlaWdu LWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0Jy4KIEZVTkMgaXMgdGhlIGZ1bmN0aW9uLCB3aGlj aCBkZXRlcm1pbmVzIHdoZXRoZXIgSEFORExFUiBpcyB0byBiZSBjYWxsZWQuCi1BZGQgb3Bl cmF0aW9ucyBkZWZpbmVkIGluIGBIQU5ETEVSLWFsaXN0JyB0byBgdHJhbXAtZmlsZS1uYW1l LWhhbmRsZXInLiIKK0FkZCBvcGVyYXRpb25zIGRlZmluZWQgaW4gYEhBTkRMRVItYWxpc3Qn IHRvIGB0cmFtcC1maWxlLW5hbWUtaGFuZGxlcicuCisKK0lmIEZVTkMgaGFzIHRoZSBwcm9w ZXJ0eSBgYWNjZXB0cy12ZWMnIHNldCB0byBhIG5vbi1uaWwgdmFsdWUsIGl0Cit3aWxsIGJl IGNhbGxlZCB3aXRoIGEgZGlzc2VjdGVkIGZpbGVuYW1lOyBvdGhlcndpc2UsIGl0IHdpbGwg YmUKK2NhbGxlZCB3aXRoIGEgc3RyaW5nIGZpbGVuYW1lLiIKICAgKGFkZC10by1saXN0CiAg ICAndHJhbXAtZm9yZWlnbi1maWxlLW5hbWUtaGFuZGxlci1hbGlzdCBgKCxmdW5jIC4gLGhh bmRsZXIpIGFwcGVuZCkKICAgOzsgTWFyayBgb3BlcmF0aW9ucycgdGhlIGhhbmRsZXIgaXMg cmVzcG9uc2libGUgZm9yLgotLSAKMi4yNS4xCgo= --------------75C5D3F17EED9DB56339A828 Content-Type: text/plain; charset=UTF-8; name="benchmark.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark.el" KHNldHEgZmlsZW5hbWUgIi9zc2h4OmxvY2FsaG9zdDp+IikKKHNldHEgdHJhbXAtdmVyYm9z ZSAwKQoKOzsgTWFrZSBzdXJlIHdlIGhhdmUgYSBjb25uZWN0aW9uLgooZmluZC1maWxlIGZp bGVuYW1lKQo7OyBDaGVjayBjYXNlLWluc2Vuc2l0aXZpdHkgb25jZSB0byBlbnN1cmUgdGhl IHJlbW90ZSBjaGVjayBoYXMgcnVuLgooZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCBm aWxlbmFtZSkKCihtZXNzYWdlICIqIGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgKGxv Y2FsKSIpCihiZW5jaG1hcmsgMTAwMCBgKGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAg In4iKSkKKG1lc3NhZ2UgIiogZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcCAocmVtb3Rl KSIpCihiZW5jaG1hcmsgMTAwMCBgKGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgLGZp bGVuYW1lKSkKKG1lc3NhZ2UgIiogdHJhbXAtaGFuZGxlLWZpbGUtbmFtZS1jYXNlLWluc2Vu c2l0aXZlLXAiKQooYmVuY2htYXJrIDEwMDAgYCh0cmFtcC1oYW5kbGUtZmlsZS1uYW1lLWNh c2UtaW5zZW5zaXRpdmUtcCAsZmlsZW5hbWUpKQoobWVzc2FnZSAiKiB0cmFtcC1maW5kLWZv cmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIiKQooYmVuY2htYXJrIDEwMDAgYCh0cmFtcC1maW5k LWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIgLGZpbGVuYW1lKSkK --------------75C5D3F17EED9DB56339A828 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" RW1hY3MgMjkgbWFzdGVyCi0tLS0tLS0tLS0tLS0tLQoKKiBmaWxlLW5hbWUtY2FzZS1pbnNl bnNpdGl2ZS1wIChsb2NhbCkKICBFbGFwc2VkIHRpbWU6IDAuMDM5NDEzcyAoMC4wMTMxNzdz IGluIDEgR0NzKQoqIGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgKHJlbW90ZSkKICBF bGFwc2VkIHRpbWU6IDIuMDE2NTM5cyAoMC40OTExMzVzIGluIDM3IEdDcykKKiB0cmFtcC1o YW5kbGUtZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcAogIEVsYXBzZWQgdGltZTogMS4y NjI1OTRzICgwLjMxMjc4MnMgaW4gMjQgR0NzKQoqIHRyYW1wLWZpbmQtZm9yZWlnbi1maWxl LW5hbWUtaGFuZGxlcgogIEVsYXBzZWQgdGltZTogMC4yMzYyNDJzICgwLjA1MTgyMnMgaW4g NCBHQ3MpCgoKV2l0aCBwYXRjaCAxCi0tLS0tLS0tLS0tLQoKKiBmaWxlLW5hbWUtY2FzZS1p bnNlbnNpdGl2ZS1wIChsb2NhbCkKICBFbGFwc2VkIHRpbWU6IDAuMDM5ODE4cyAoMC4wMTMz NDBzIGluIDEgR0NzKQoqIGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgKHJlbW90ZSkK ICBFbGFwc2VkIHRpbWU6IDEuMTM4MDc2cyAoMC4yODU4MDNzIGluIDIyIEdDcykKKiB0cmFt cC1oYW5kbGUtZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcAogIEVsYXBzZWQgdGltZTog MC40NjQ0NDFzICgwLjEyOTI0N3MgaW4gMTAgR0NzKQoqIHRyYW1wLWZpbmQtZm9yZWlnbi1m aWxlLW5hbWUtaGFuZGxlcgogIEVsYXBzZWQgdGltZTogMC4yMzMyNzlzICgwLjA1MTg5NXMg aW4gNCBHQ3MpCgoKV2l0aCBwYXRjaCAyCi0tLS0tLS0tLS0tLQoKKiBmaWxlLW5hbWUtY2Fz ZS1pbnNlbnNpdGl2ZS1wIChsb2NhbCkKICBFbGFwc2VkIHRpbWU6IDAuMDM5MTg4cyAoMC4w MTMwMTZzIGluIDEgR0NzKQoqIGZpbGUtbmFtZS1jYXNlLWluc2Vuc2l0aXZlLXAgKHJlbW90 ZSkKICBFbGFwc2VkIHRpbWU6IDAuNTgzMTAxcyAoMC4xODk5MjRzIGluIDE0IEdDcykKKiB0 cmFtcC1oYW5kbGUtZmlsZS1uYW1lLWNhc2UtaW5zZW5zaXRpdmUtcAogIEVsYXBzZWQgdGlt ZTogMC4yODExNTRzICgwLjA5NDE0MXMgaW4gNyBHQ3MpCiogdHJhbXAtZmluZC1mb3JlaWdu LWZpbGUtbmFtZS1oYW5kbGVyCiAgRWxhcHNlZCB0aW1lOiAwLjA0NTMyNHMgKDAuMDEyNzcx cyBpbiAxIEdDcykK --------------75C5D3F17EED9DB56339A828-- From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 09 14:34:13 2021 Received: (at 51699) by debbugs.gnu.org; 9 Nov 2021 19:34:13 +0000 Received: from localhost ([127.0.0.1]:35860 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkWsn-0001xd-Be for submit@debbugs.gnu.org; Tue, 09 Nov 2021 14:34:13 -0500 Received: from mout.gmx.net ([212.227.17.20]:35765) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkWsj-0001xK-QN for 51699@debbugs.gnu.org; Tue, 09 Nov 2021 14:34:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636486443; bh=44zmKVlzYwCozszhBxm7Nd5V1CywhxcCDL06vFFB63s=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=GFW67RMYDPYNpwwB8RMM3hfZqRgEbEF8Xuw6FC/YGLvZdF56PopuZ0cX3wgmTLTDk niRWHzFsHTbWPCqzw8fi6xuYjUv7jaF1rFC5VniEkPtaqoQfVL7lyX1Y2zKg8dnMr8 0MfnJpAJD+jqyaM0xmSEMd1I+Hl74zxOFtJZnuCw= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([79.140.125.138]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MFKGP-1mvqTb3HbN-00FoG5; Tue, 09 Nov 2021 20:34:02 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> Date: Tue, 09 Nov 2021 20:34:01 +0100 In-Reply-To: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> (Jim Porter's message of "Mon, 8 Nov 2021 19:46:05 -0800") Message-ID: <87ee7pqg2e.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:SIQaCNsIUVlf2ENMMNera9HmzK9ouqP+TnrMsxl31LzFWUSpt/M RdmzqviTjKBsKmIGkAt/dbEJ4R8gp93lUCf5cL4by7wPBGVyOJEtbQXpBXM7at+aivU+zC6 pmvyFuezF0lEjGy535zLuTuxSKYn3zUUJWKMb8OYp6wOKzkYZM+OCDXDkOZYcgIbmvq2mUz TJiHGTRET8nXFMbsvcocQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:A0y9URlFmh4=:tEjcMTzc8dQEWvrLXu843o gws6KLLTnh9RjeBhdUIpeBBWCowkRDtaGs0sGMjFEd9O6D9uCNMHGtUaZqPI309/0jCDirouL VmCpjzqa1X2RJEA2m9ZtxtBFiAGh1iP4yd7+rGHb08doS18YNTtDvDG8JPFEZLM+Hv3PnH0k5 IYGYTOqDY66DsWT7oTOb9t14FQTvnzLYaiWbGG4aldQbNQBJUTkJJWennLJb27XHge0J3iT+t ElCf9q80Sw0fT06GMV8q9YDU+3t9BV1VJ+BOro25gVr0Guo6qKUB8QMSbVwy1RBTKl8DpjL3Z +c6/kNIhE+HQ3K2EpmehgLubktH7dv6AY8DbgGT/g46R6Pi+0N2LKvfGifHLI/DPudUEq2Y5v Zdd48xplluZy2hzz5sgnbzsdkqETyd3eqMVD4XxROoxU4HwlnPfgZI/6yjTNamVelUnjxDl+Y AD8vKKS5z5Yc6X2wy/SoWw2fzAEGxtSXSyRieWz8zCMViG38l0OjhEFxsPS0VHqtQ5BJKE7al 3R0VGxwiVw1GHxgWMrkt2HbqTKoGWoHJGtcZho5A91x24fEtqKMI1CzIzCXLOnFSxWqAi1ZKC AhkmugmBkUrc8K1a+wel4ziaL5ncHd2iDh8XtVflvFN1HgmHe1iG0LhCzZyfyZjnD7Xe5xzpB UwTjJjsqDOestVZosCyfnMvYRRtJbETk5vTJVLzLDbPjM5NHppBCIFiUIYi8VB0I+DAKSWoY5 n6m2PwYIRyK54O5UqnHrPgy5W/de3s4srIb8US0EimK9i1XnZwF73J3Iz5pBCHLf8R3utodj1 77CBIFvmkUblzxbyqt5evqpLyTZJ5XFIKRnTM22mu8lpk3vgRkGOma/G8kwcuuqPz/rnTNe2N msy7mfE99sNhYZPU/phDS/NPBBV63RXibTldlsKSFHzkqZJbaIjw03omhntlxAJlVQn96qm1k /3j2lZ7ScqP16RsfeIWHdcr50u60FA7qfxkp9Frzd2eSNKUSn+5kmAZHHQoQ0+kODiBlo0jE4 vETF72027V7HXBu9EJIy320byWljIF7oryRFW9Z3GMxCyWhUaZG0SiacAfi2b0wR777gACi+I fkTxsCbSSNz0dM= X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51699 Cc: 51699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jim Porter writes: Hi Jim, > 1) 'tramp-handle-file-name-case-insensitive-p' calling 'file-remote-p' > and 'expand-file-name' > > Since 'file-remote-p' only needed to check whether a connection was > already established, it could be replaced with this (thanks to Michael > Albinus for the pointer): > > (let ((non-essential t)) (tramp-connectable-p v)) > > 'expand-file-name' also had room for a small optimization, since it > previously called 'tramp-connectable-p' (which dissects the file if > it's not already) and then 'with-parsed-tramp-file-name' (which > dissects it again). I reversed the order so now there's one fewer > dissection, and it's a bit faster. This is obviously fine, so I've pushed this to master. Thanks for the improvement! > 2) Potential handlers in 'tramp-find-foreign-file-name-handler' each > dissect the file name > > Most Tramp methods have a 'tramp-FOO-file-name-p', and most of *those* > take a file name string and dissect it. This is a lot of duplicated > effort, so I modified 'tramp-find-foreign-file-name-handler' to pass > the dissected file name to any of the functions that support it (this > is indicated by an 'accepts-vec' property on the function). This > probably warrants some documentation (at least a NEWS entry), but I > wanted to be sure the strategy made sense before I wrote any docs. Yes, this makes sense, and it works in my environment (more regression tests running). I don't understand why you need the 'accepts-vec' property -- is there any operation left, which is passed to `tramp-find-foreign-file-name-handler' and which doesn't accept a VEC, after applying your patch? And if yes, couldn't we apply usual error handling? We shall not add this additonal complexity to Tramp. Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Tue Nov 09 16:22:22 2021 Received: (at 51699) by debbugs.gnu.org; 9 Nov 2021 21:22:22 +0000 Received: from localhost ([127.0.0.1]:36072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkYZR-0004mb-Ml for submit@debbugs.gnu.org; Tue, 09 Nov 2021 16:22:21 -0500 Received: from mail-pf1-f170.google.com ([209.85.210.170]:44655) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkYZN-0004mA-Pw for 51699@debbugs.gnu.org; Tue, 09 Nov 2021 16:22:18 -0500 Received: by mail-pf1-f170.google.com with SMTP id b68so578643pfg.11 for <51699@debbugs.gnu.org>; Tue, 09 Nov 2021 13:22:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language:content-transfer-encoding; bh=PsHKInNS84U3IhGKjbEp4T0tRiJ6QbHQqHtgAP7QqXQ=; b=TIFriauT5SAFr6KAPzrqRW5+3XyO+Ex7xzT5aEQ2PuqCdHPm44mK9IZjRDvmy/3lFE 6HvenoXLHfP3NvAJi1fskmbOeIq4N4EQArwXUBs/ww7mHoCDahxPFrunrKPA4951J6J7 wLDkFrUyRSCRcT8kHVlfE5XvzwYbIvLYPnbKZD+WKo7uhKfXDN0iGnc36StgZJHsWVaC /j4Q5IS2xzUyn7P57QFlBdjtagKeGpwkphkTXc6Eub+tnHvFNqbf+5ijgIu2QYg6ZJ7I nng5ZdxQSZ/+9IqXo2qpFjBonRify6Oqtq2/pSPz25bx140W7d2yXm2CugJqR9YwfQCK Mn6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=PsHKInNS84U3IhGKjbEp4T0tRiJ6QbHQqHtgAP7QqXQ=; b=TXpbPG4yezO2jVuVFFuUDbh4ex+G332/IgHfCm9M9KzKGXm06+Ww3zjTSDhj3evLjc PyfW0gLXCCSMaLeCEr1Wlc92cV0NvarUkumEx0Im/EIRlfgUnVBrXcby5zRdFhrkvvrF NJjpYaAiVT5C2BO5jWDVWBRfL3GxzqpoKYqmhvsXPHYS5wPL6cedPMwZMb5X24/hsEut 6hMNVcJ1hFrA0Rexb76mAEBEzJvbxK6LHG0efz8ov582RMqeXRriJ/SK+wZe2bekgZgc mWX2h6ybm55FPfzxn57IFUi6V1kuJjJY0a57u7pTH82N1vKX91rgu80DBnHIh8JwbQgD szTA== X-Gm-Message-State: AOAM5323PRIeZdHVGRpFVjYsvz5012WkpW6hR7u3X3ykuARjJxQvFC2Q xyRKUpIX4ASFSx5Kba5RfFMY1BqJDKQ= X-Google-Smtp-Source: ABdhPJxyeLBMY4Jw8W0C2UtD35+3qGTxvIUmGpBdOy4dtRybiBhdVVqLj1DtcLmRF69HJb7hTlhiug== X-Received: by 2002:a05:6a00:1344:b0:49f:f357:ac9 with SMTP id k4-20020a056a00134400b0049ff3570ac9mr11269223pfu.62.1636492932002; Tue, 09 Nov 2021 13:22:12 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id e11sm3643588pjl.20.2021.11.09.13.22.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 09 Nov 2021 13:22:11 -0800 (PST) Subject: Re: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files To: Michael Albinus References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> <87ee7pqg2e.fsf@gmx.de> From: Jim Porter Message-ID: <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> Date: Tue, 9 Nov 2021 13:22:11 -0800 MIME-Version: 1.0 In-Reply-To: <87ee7pqg2e.fsf@gmx.de> 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: 51699 Cc: 51699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On 11/9/2021 11:34 AM, Michael Albinus wrote: > This is obviously fine, so I've pushed this to master. Thanks for the > improvement! Thanks for merging! >> Most Tramp methods have a 'tramp-FOO-file-name-p', and most of *those* >> take a file name string and dissect it. This is a lot of duplicated >> effort, so I modified 'tramp-find-foreign-file-name-handler' to pass >> the dissected file name to any of the functions that support it (this >> is indicated by an 'accepts-vec' property on the function). This >> probably warrants some documentation (at least a NEWS entry), but I >> wanted to be sure the strategy made sense before I wrote any docs. > > Yes, this makes sense, and it works in my environment (more regression > tests running). I don't understand why you need the 'accepts-vec' > property -- is there any operation left, which is passed to > `tramp-find-foreign-file-name-handler' and which doesn't accept a VEC, > after applying your patch? And if yes, couldn't we apply usual error > handling? There's `tramp-archive-file-name-p' and `tramp-crypt-file-name-p', which both want a string filename. I looked over the implementation for those and couldn't figure out an easy way to convert them to take a VEC. Maybe it's possible though. I also looked into passing both the string form and the vec form as separate arguments, but that turned out to be even more complex than this implementation. In addition, I did it this way to prevent any breakage for third-party code that calls `tramp-register-foreign-file-name-handler'. If we change `tramp-find-foreign-file-name-handler' to pass a VEC all the time, then any code out there that expects a string will break. This is probably rare, but I've seen a few examples of people doing stuff like this over the years, e.g. . I'm not quite sure what you mean by the "usual error handling" though. If there's a simpler way to do this, I'm happy to change the implementation. So long as we can minimize the number of times `tramp-dissect-file-name' is called, it should be possible to get similar performance improvements to the current version of my patch. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 10 07:17:18 2021 Received: (at 51699) by debbugs.gnu.org; 10 Nov 2021 12:17:18 +0000 Received: from localhost ([127.0.0.1]:37181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkmXW-0008Ey-4f for submit@debbugs.gnu.org; Wed, 10 Nov 2021 07:17:18 -0500 Received: from mout.gmx.net ([212.227.17.20]:54607) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkmXU-0008Em-Qv for 51699@debbugs.gnu.org; Wed, 10 Nov 2021 07:17:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636546629; bh=vIW21CoB2ycGnJUw8FJ8mN5FqtXUyElxsEwDhS625m8=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=AeOct/IoW51+lfsoOWaex3iTmwnWGHvHgpMOUmaYqoHCz6XgO9ywC8rmjOJ5hOB+l svQ3Ru4T56uXwLOQC/Ekh6DInSaqWNPMEpPd0ps2p0QR+GLFkLeNv1YaZfaBYnv1os wtSu5JYDii3/Jr5jtitT2r0b7/s4vudPRbc9+WhA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([213.220.148.170]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mplbx-1mNDVQ2jPB-00qBfO; Wed, 10 Nov 2021 13:17:09 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> <87ee7pqg2e.fsf@gmx.de> <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> Date: Wed, 10 Nov 2021 13:17:08 +0100 In-Reply-To: <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> (Jim Porter's message of "Tue, 9 Nov 2021 13:22:11 -0800") Message-ID: <87wnlgtdbv.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:MFhxCdLLX+CeeSkeU6e0JU483C94T8P9kK5fpxrE6BxaeskY1fW T5vAyxv2ya9iwOVcR+lBrgIMEe0zw3fQYsbjvSUhTOs4I3R/ZQeTJhstUsY0D02aNLp0a6f i2Lqd+oT/dZA+OOO+aTxAGSgsQ5W0dlJT3DVYDrzVYN6Sxs8KBH/8y6oJlcxQRBjQBlRUhZ eE6auCgHJNoqUq1VDm3Ig== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:lxY2i3X3N54=:X8RZ/t879fu1Swcpo5jHUT ykYBVwGI10xpps0yAtTwTznT+Hw3Mhmygr6qOmxm7PaKkJF+fYPslPMYBfZvkstWO6N3/fMfw ePAXfPWsQDWNRmHjnMwcVefexRHhFej9osh/0YG9tUfk3oZJ+Yk7Ch/H9lrwxFeih9FlZWglv G5ZGGK1e4cJfEyySlp6u1Tq9KURBYNs48sbRq2HeYCs4d3tktqjn9o8PIzRyBcZ+vXpLjKLSX NcKqK+IQhnE9ebITtySmh8LB9WDVoojrEifo7vHZ0aFV4D9WehEWUmQPDVh98I+kjj7QAMaDb TdVR4J4VfW6TSU9xe0LIkeRBRuAvwYyYQ+FceIdw5QNU8xaNSAo5rh/IQpWqnK3YiTASZyj8b L0DFodFFSmUjHHsTui1Dce/UoUM+2o0H2qSaO6mQIdCirNLpL/nx1+xttu63zRwdECxOZvuwX FZyByjYkypPltXlEAaWXyDHZAN2BfkVIusph1y5h6fy9jqdsp3pkGQ/tZmHlOMbaY8Uoh3YBJ JK5US9sU5JoKxgFVpS6v3XuM0Elzkb6DLYJV9HAJAxZQecvNX88ktbFTaZfHzgytYZRL/p5y4 WnD5JnP2xu4sMPwTG1k9nnMEPhHYrUqkghHLJNiGg88XSsYluHHF4OzZ/oTM8oRBfpJOS5xxn xITUH/qRGmRxx5icrQvLf5Lj2lHxp9k0mj+HGWcHLtTuxif8A9imK3/HYA/6QFMoRnZ7dFVrW 6gPiDRFRc0eS3SLtSlDFdOc/m9OnnRY8wODGmIfVPOzOg50RbZwtzCXWSO9f6bykuExKzbwca kXNUWRLMZJeuW5XJCjVmho+PRv61srHC8d3Em4LiWYvTqEUVW95hQY9tmTNn0/mSL7zq3F9Db sjqoXes4G3biWZBy36+zBHFDkdD18aHH6mmGnKr8qHqrGS4RJMXXX44L2rYnwWvVP377JdiAp JEk6ANfmvApdPOaW82U8urqIFMx3Ga5IdNRQ2M2/XE155+Dfy5RfkYQjxWSbAQOr04MZBk+Pw ZQl2HJX6mZVdvrqou9mln0by4XSSaKWxz2FlkD5L61A4QRi2u0VE6cCq1MlBTz2T9czdnkYb1 lPKKlu8r8MrbTw= X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51699 Cc: 51699@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jim Porter writes: Hi Jim, >>> Most Tramp methods have a 'tramp-FOO-file-name-p', and most of *those* >>> take a file name string and dissect it. This is a lot of duplicated >>> effort, so I modified 'tramp-find-foreign-file-name-handler' to pass >>> the dissected file name to any of the functions that support it (this >>> is indicated by an 'accepts-vec' property on the function). This >>> probably warrants some documentation (at least a NEWS entry), but I >>> wanted to be sure the strategy made sense before I wrote any docs. >> Yes, this makes sense, and it works in my environment (more >> regression >> tests running). I don't understand why you need the 'accepts-vec' >> property -- is there any operation left, which is passed to >> `tramp-find-foreign-file-name-handler' and which doesn't accept a VEC, >> after applying your patch? And if yes, couldn't we apply usual error >> handling? > > There's `tramp-archive-file-name-p' and `tramp-crypt-file-name-p', > which both want a string filename. I looked over the implementation > for those and couldn't figure out an easy way to convert them to take > a VEC. Maybe it's possible though. I also looked into passing both the > string form and the vec form as separate arguments, but that turned > out to be even more complex than this implementation. `tramp-find-foreign-file-name-handler' loops through `tramp-register-foreign-file-name-handler'. Only operations registered there need to support a VEC-OR-FILENAME argument. `tramp-archive-file-name-p' and `tramp-crypt-file-name-p' are not registered, so no change is needed. > In addition, I did it this way to prevent any breakage for third-party > code that calls `tramp-register-foreign-file-name-handler'. If we > change `tramp-find-foreign-file-name-handler' to pass a VEC all the > time, then any code out there that expects a string will break. This > is probably rare, but I've seen a few examples of people doing stuff > like this over the years, > e.g. . Yes, and there's also . These packages use a lot of internal Tramp functions which are not documented publicly. So they have always the risk that something fails. We could (and should) inform the authors of both packages, that the signature for the `tramp-FOO-file-name-p' functions will change with Tramp 2.6. As I can see, there's no problem to adapt `magit-tramp-file-name-p' and `tramp-jumper-file-name-p'. And yes, an entry in etc/NEWS should be added as well. > I'm not quite sure what you mean by the "usual error handling" > though. If there's a simpler way to do this, I'm happy to change the > implementation. So long as we can minimize the number of times > `tramp-dissect-file-name' is called, it should be possible to get > similar performance improvements to the current version of my patch. The most simple approach in `tramp-find-foreign-file-name-handler' is --8<---------------cut here---------------start------------->8--- (when (ignore-errors (funcall (car elt) vec)) --8<---------------cut here---------------end--------------->8--- A little bit more friendly for debugging: --8<---------------cut here---------------start------------->8--- ;; The signature of `tramp-FOO-file-name-p' has changed, it ;; expects a VEC here. (when (with-demoted-errors "Error: %S" (funcall (car elt) vec)) --8<---------------cut here---------------end--------------->8--- Best regards, Michael. From debbugs-submit-bounces@debbugs.gnu.org Wed Nov 10 19:48:15 2021 Received: (at 51699) by debbugs.gnu.org; 11 Nov 2021 00:48:15 +0000 Received: from localhost ([127.0.0.1]:39529 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkyGE-0007pH-AK for submit@debbugs.gnu.org; Wed, 10 Nov 2021 19:48:15 -0500 Received: from mail-pg1-f182.google.com ([209.85.215.182]:42523) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mkyGB-0007p3-Dp for 51699@debbugs.gnu.org; Wed, 10 Nov 2021 19:48:12 -0500 Received: by mail-pg1-f182.google.com with SMTP id r132so1544841pgr.9 for <51699@debbugs.gnu.org>; Wed, 10 Nov 2021 16:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=Wq73PYtHESg88fRSsXRizyWq5wZ6J5QHEoF8/VFwark=; b=JCq9EDMDr5VstXb/JycVs5kX+128Alky+xh0dHOJuMuMBNMdefUyO2tCMAM1hQ1oYF RfTL+ars04DbZt2anfZg30vHHuOq4cB8WSRy/oBRljXCo5BeRagGtS8EW47xFz9ZqGhm xGlR4oT8u8YLqEUE33kUqrPhFrIE1xJYE+ZyFSTUPwr0ESYLfPXfTHtlIzaOUNGTZ8dG kV2++kBkuLFxT6WETm7h2DhuT8mx/pdQIjH0mVPwK+O3SndyTUHNqnQ2uPOU9gftVdrX A8d3iNlSEutnzK4nHzvGk62PAuu2VGRTxQZS3d7Sf3qi//pKjunxz5abiGfdy0+2nH4K 7q/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=Wq73PYtHESg88fRSsXRizyWq5wZ6J5QHEoF8/VFwark=; b=G1vj1ifCMKBlYGbemncUS7JfKIfvRB7UKH+U40fEPquxvyJkq2ggkXwbT4GeHddTjm mlZAdNj7mEM8dTFxcEPj4+YSkNUClcEI2uXwmVhm6sEemBi8rQeTPwFVTfvqfUYKdDvo DfOIoA6K1oN0Xx6x2ADrpuxavE5dZcuIDd8TTPcUrlKvLhNgWJDoGHs7b4hZsSXnSckG ZhTwEKXRHnQqQmOf5Nn26aUK5wccgbRA2S+QtTFgidrc1hltejarQshhnowcxGF0aYSi /ytXr3eTUk/lhpsHfqpFd9RbujIOsE5Mukk9SB52kwDH03JxGbT9gujOKAxUu67jD1/Z uT2g== X-Gm-Message-State: AOAM531gX/pNoFR3YYt2dZgh0OGZqPoZWh+GVZodfwHRv5zmyBnTlMHC rzWyhP9k/TYfUJGKasH5/+2PYJ2t6XQ= X-Google-Smtp-Source: ABdhPJzvkqURPpVSlejDFruPNgxfom9Inu0krtDWZC53YmMigy80DieZudpQildr6v0HJ0XMweIccQ== X-Received: by 2002:a62:150e:0:b0:49f:9a61:962f with SMTP id 14-20020a62150e000000b0049f9a61962fmr3037887pfv.58.1636591685432; Wed, 10 Nov 2021 16:48:05 -0800 (PST) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s3sm687984pjk.41.2021.11.10.16.48.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 10 Nov 2021 16:48:04 -0800 (PST) Subject: Re: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files To: Michael Albinus References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> <87ee7pqg2e.fsf@gmx.de> <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> <87wnlgtdbv.fsf@gmx.de> From: Jim Porter Message-ID: <0f898153-b128-c39b-f366-55cb1bacad57@gmail.com> Date: Wed, 10 Nov 2021 16:48:03 -0800 MIME-Version: 1.0 In-Reply-To: <87wnlgtdbv.fsf@gmx.de> Content-Type: multipart/mixed; boundary="------------FAA6A051A5FADAAFAACEFF10" Content-Language: en-US X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 51699 Cc: 51699@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. --------------FAA6A051A5FADAAFAACEFF10 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/10/2021 4:17 AM, Michael Albinus wrote: > `tramp-find-foreign-file-name-handler' loops through > `tramp-register-foreign-file-name-handler'. Only operations registered > there need to support a VEC-OR-FILENAME argument. > `tramp-archive-file-name-p' and `tramp-crypt-file-name-p' are not > registered, so no change is needed. Ah ha. I didn't realize they weren't included (I thought I just had to configure something to add them in `tramp-foreign-file-name-handler-alist'). In that case, it definitely makes sense eliminate the `accepts-vec' bits from my patch. > We could (and should) inform the authors of both packages, that the > signature for the `tramp-FOO-file-name-p' functions will change with > Tramp 2.6. As I can see, there's no problem to adapt > `magit-tramp-file-name-p' and `tramp-jumper-file-name-p'. And yes, an > entry in etc/NEWS should be added as well. Sounds good to me. I've added a NEWS entry that hopefully explains the change fairly clearly. Just to be extra-certain, I re-ran my performance tests from before and the results are the same. > A little bit more friendly for debugging: > > --8<---------------cut here---------------start------------->8--- > ;; The signature of `tramp-FOO-file-name-p' has changed, it > ;; expects a VEC here. > (when (with-demoted-errors "Error: %S" (funcall (car elt) vec)) > --8<---------------cut here---------------end--------------->8--- I went with this since it should make it easier for third parties to notice the issue and make the appropriate update to their code. Thanks for the pointer. --------------FAA6A051A5FADAAFAACEFF10 Content-Type: text/plain; charset=UTF-8; name="0001-Improve-performance-of-tramp-find-foreign-file-name-.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Improve-performance-of-tramp-find-foreign-file-name-.pa"; filename*1="tch" RnJvbSAyYWVjOGUyMWEzZTM3NzI4YTk5MGM0ZjExNmY2MGM4YjEyYmIyMTEwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFdlZCwgMTAgTm92IDIwMjEgMTY6NDE6MDAgLTA4MDAKU3ViamVjdDogW1BB VENIXSBJbXByb3ZlIHBlcmZvcm1hbmNlIG9mICd0cmFtcC1maW5kLWZvcmVpZ24tZmlsZS1u YW1lLWhhbmRsZXInCgpQcmV2aW91c2x5LCBlYWNoIGZ1bmN0aW9uIGluICd0cmFtcC1mb3Jl aWduLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0Jwp3b3VsZCBjYWxsICd0cmFtcC1kaXNzZWN0 LWZpbGUtbmFtZScsIHJlc3VsdGluZyBpbiBpdCBiZWluZyBjYWxsZWQKc2V2ZXJhbCB0aW1l cyB3aGVuZXZlciAndHJhbXAtZmluZC1mb3JlaWduLWZpbGUtbmFtZS1oYW5kbGVyJyB3YXMK Y2FsbGVkLiAgTm93LCBmdW5jdGlvbnMgdGFrZSB0aGUgZGlzc2VjdGVkIGZpbGUgbmFtZSB0 byBhdm9pZCB0aGlzCmR1cGxpY2F0ZWQgZWZmb3J0LgoKKiBsaXNwL25ldC90cmFtcC5lbCAo dHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUpOiBOZXcgZnVuY3Rpb24uCih0cmFt cC1maW5kLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIpOiBQYXNzIGRpc3NlY3RlZCBmaWxl IG5hbWUgdG8KZnVuY3Rpb25zLgoodHJhbXAtY29ubmVjdGFibGUtcCk6IFVzZSAndHJhbXAt ZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUnLgoKKiBsaXNwL25ldC90cmFtcC1hZGIuZWwg KHRyYW1wLWFkYi1maWxlLW5hbWUtcCk6CiogbGlzcC9uZXQvdHJhbXAtZnRwLmVsICh0cmFt cC1mdHAtZmlsZS1uYW1lLXApOgoqIGxpc3AvbmV0L3RyYW1wLWd2ZnMuZWwgKHRyYW1wLWd2 ZnMtZmlsZS1uYW1lLXApOgoqIGxpc3AvbmV0L3RyYW1wLXJjbG9uZS5lbCAodHJhbXAtcmNs b25lLWZpbGUtbmFtZS1wKToKKiBsaXNwL25ldC90cmFtcC1zbWIuZWwgKHRyYW1wLXNtYi1m aWxlLW5hbWUtcCk6CiogbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwgKHRyYW1wLXNzaGZzLWZp bGUtbmFtZS1wKToKKiBsaXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbCAodHJhbXAtc3Vkb2Vk aXQtZmlsZS1uYW1lLXApOgpBY2NlcHQgZGlzc2VjdGVkIGZpbGUgbmFtZXMuCgoqIGV0Yy9O RVdTOiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAg ICAgICB8ICA2ICsrKysrKwogbGlzcC9uZXQvdHJhbXAtYWRiLmVsICAgICAgfCAgOSArKysr LS0tLS0KIGxpc3AvbmV0L3RyYW1wLWZ0cC5lbCAgICAgIHwgIDkgKysrKy0tLS0tCiBsaXNw L25ldC90cmFtcC1ndmZzLmVsICAgICB8IDExICsrKysrLS0tLS0tCiBsaXNwL25ldC90cmFt cC1yY2xvbmUuZWwgICB8ICA5ICsrKystLS0tLQogbGlzcC9uZXQvdHJhbXAtc21iLmVsICAg ICAgfCAgOSArKysrLS0tLS0KIGxpc3AvbmV0L3RyYW1wLXNzaGZzLmVsICAgIHwgIDkgKysr Ky0tLS0tCiBsaXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbCB8ICA5ICsrKystLS0tLQogbGlz cC9uZXQvdHJhbXAuZWwgICAgICAgICAgfCAyNiArKysrKysrKysrKysrKysrKystLS0tLS0t LQogOSBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4IDgwN2YzMWZhMzMuLjlm M2E3NzNhNWIgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0Yy9ORVdTCkBAIC01NzEs NiArNTcxLDEyIEBAIGdldCBwcm9wZXIgbG9jYWxlLWRlcGVuZGVudCBkb3duY2FzaW5nLCB0 aGUgc3RyaW5nIGhhcyB0byBiZSBjb252ZXJ0ZWQKIHRvIG11bHRpYnl0ZSBmaXJzdC4gIChU aGlzIGdvZXMgZm9yIHRoZSBvdGhlciBjYXNlLWNoYW5naW5nIGZ1bmN0aW9ucywKIHRvby4p CiAKKy0tLQorKiogRnVuY3Rpb25zIGluICd0cmFtcC1mb3JlaWduLWZpbGUtbmFtZS1oYW5k bGVyLWFsaXN0JyBoYXZlIGNoYW5nZWQuCitGdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHdoaWNo IFRyYW1wIGZpbGUgbmFtZSBoYW5kbGVyIHRvIHVzZSBhcmUgbm93CitwYXNzZWQgYSBmaWxl IG5hbWUgaW4gZGlzc2VjdGVkIGZvcm0gKHZpYSAndHJhbXAtZGlzc2VjdC1maWxlLW5hbWUn KQoraW5zdGVhZCBvZiBpbiBzdHJpbmcgZm9ybS4KKwogLS0tCiAqKiAnZGVmJyBpbmRlbnRh dGlvbiBjaGFuZ2VzLgogSW4gJ2VtYWNzLWxpc3AtbW9kZScsIGZvcm1zIHdpdGggYSBzeW1i b2wgd2l0aCBhIG5hbWUgdGhhdCBzdGFydCB3aXRoCmRpZmYgLS1naXQgYS9saXNwL25ldC90 cmFtcC1hZGIuZWwgYi9saXNwL25ldC90cmFtcC1hZGIuZWwKaW5kZXggMzYyYTI1OGY0My4u ZTdmZTA3ZTQxNyAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtYWRiLmVsCisrKyBiL2xp c3AvbmV0L3RyYW1wLWFkYi5lbApAQCAtMTkxLDExICsxOTEsMTAgQEAgdHJhbXAtYWRiLWZp bGUtbmFtZS1oYW5kbGVyLWFsaXN0CiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0JyBpbiBv cmRlciB0byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRkZWZzLmVs LiAgT3RoZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRpbmcuCiA7 OzsjIyN0cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLWFkYi1maWxlLW5hbWUtcCAo ZmlsZW5hbWUpCi0gICJDaGVjayBpZiBpdCdzIGEgRklMRU5BTUUgZm9yIEFEQi4iCi0gIChh bmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJh bXAtZmlsZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUp KQotCQl0cmFtcC1hZGItbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJhbXAtYWRiLWZpbGUtbmFt ZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdzIGEgVkVDLU9SLUZJTEVO QU1FIGZvciBBREIuIgorICAod2hlbi1sZXQqICgodmVjICh0cmFtcC1lbnN1cmUtZGlzc2Vj dGVkLWZpbGUtbmFtZSB2ZWMtb3ItZmlsZW5hbWUpKSkKKyAgICAoc3RyaW5nPSAodHJhbXAt ZmlsZS1uYW1lLW1ldGhvZCB2ZWMpIHRyYW1wLWFkYi1tZXRob2QpKSkKIAogOzs7IyMjdHJh bXAtYXV0b2xvYWQKIChkZWZ1biB0cmFtcC1hZGItZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJh dGlvbiAmcmVzdCBhcmdzKQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtZnRwLmVsIGIv bGlzcC9uZXQvdHJhbXAtZnRwLmVsCmluZGV4IDExY2NkYzhhNGMuLmY3OGMwOGVjNDEgMTAw NjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLWZ0cC5lbAorKysgYi9saXNwL25ldC90cmFtcC1m dHAuZWwKQEAgLTE3NSwxMSArMTc1LDEwIEBAIHRyYW1wLWZ0cC1maWxlLW5hbWUtaGFuZGxl cgogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUgd2hv bGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhlcmUg d291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0b2xvYWQK LShkZWZzdWJzdCB0cmFtcC1mdHAtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQotICAiQ2hlY2sg aWYgaXQncyBhIEZJTEVOQU1FIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byBBbmdlLUZU UC4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3Ry aW5nPSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUg ZmlsZW5hbWUpKQotCQl0cmFtcC1mdHAtbWV0aG9kKSkpCisoZGVmc3Vic3QgdHJhbXAtZnRw LWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdzIGEgVkVD LU9SLUZJTEVOQU1FIHRoYXQgc2hvdWxkIGJlIGZvcndhcmRlZCB0byBBbmdlLUZUUC4iCisg ICh3aGVuLWxldCogKCh2ZWMgKHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZl Yy1vci1maWxlbmFtZSkpKQorICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9k IHZlYykgdHJhbXAtZnRwLW1ldGhvZCkpKQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKHRy YW1wLS13aXRoLXN0YXJ0dXAKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLWd2ZnMuZWwg Yi9saXNwL25ldC90cmFtcC1ndmZzLmVsCmluZGV4IGNhYjkxMmJkOTMuLjFmOWQ5ZDk0MTUg MTAwNjQ0Ci0tLSBhL2xpc3AvbmV0L3RyYW1wLWd2ZnMuZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtZ3Zmcy5lbApAQCAtODM0LDEyICs4MzQsMTEgQEAgdHJhbXAtZ3Zmcy1maWxlLW5hbWUt aGFuZGxlci1hbGlzdAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8g cHVzaCB0aGUgd2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVy d2lzZSwgdGhlcmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJh bXAtYXV0b2xvYWQKLShkZWZzdWJzdCB0cmFtcC1ndmZzLWZpbGUtbmFtZS1wIChmaWxlbmFt ZSkKLSAgIkNoZWNrIGlmIGl0J3MgYSBGSUxFTkFNRSBoYW5kbGVkIGJ5IHRoZSBHVkZTIGRh ZW1vbi4iCi0gIChhbmQgKHRyYW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAo bGV0ICgobWV0aG9kCi0JICAgICAgKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgKHRyYW1wLWRp c3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkpKQotCSAoYW5kIChzdHJpbmdwIG1ldGhvZCkg KG1lbWJlciBtZXRob2QgdHJhbXAtZ3Zmcy1tZXRob2RzKSkpKSkKKyhkZWZzdWJzdCB0cmFt cC1ndmZzLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBpZiBpdCdz IGEgVkVDLU9SLUZJTEVOQU1FIGhhbmRsZWQgYnkgdGhlIEdWRlMgZGFlbW9uLiIKKyAgKHdo ZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9y LWZpbGVuYW1lKSkpCisgICAgKGxldCAoKG1ldGhvZCAodHJhbXAtZmlsZS1uYW1lLW1ldGhv ZCB2ZWMpKSkKKyAgICAgIChhbmQgKHN0cmluZ3AgbWV0aG9kKSAobWVtYmVyIG1ldGhvZCB0 cmFtcC1ndmZzLW1ldGhvZHMpKSkpKQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZnVu IHRyYW1wLWd2ZnMtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpk aWZmIC0tZ2l0IGEvbGlzcC9uZXQvdHJhbXAtcmNsb25lLmVsIGIvbGlzcC9uZXQvdHJhbXAt cmNsb25lLmVsCmluZGV4IDgxMmUwNmYzZjEuLjY0YjAxNzZkMDggMTAwNjQ0Ci0tLSBhL2xp c3AvbmV0L3RyYW1wLXJjbG9uZS5lbAorKysgYi9saXNwL25ldC90cmFtcC1yY2xvbmUuZWwK QEAgLTE1NiwxMSArMTU2LDEwIEBAIHRyYW1wLXJjbG9uZS1maWxlLW5hbWUtaGFuZGxlci1h bGlzdAogOzsgSXQgbXVzdCBiZSBhIGBkZWZzdWJzdCcgaW4gb3JkZXIgdG8gcHVzaCB0aGUg d2hvbGUgY29kZSBpbnRvCiA7OyB0cmFtcC1sb2FkZGVmcy5lbC4gIE90aGVyd2lzZSwgdGhl cmUgd291bGQgYmUgcmVjdXJzaXZlIGF1dG9sb2FkaW5nLgogOzs7IyMjdHJhbXAtYXV0b2xv YWQKLShkZWZzdWJzdCB0cmFtcC1yY2xvbmUtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQotICAi Q2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciByY2xvbmUuIgotICAoYW5kICh0cmFtcC10 cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKHN0cmluZz0gKHRyYW1wLWZpbGUtbmFt ZS1tZXRob2QgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIGZpbGVuYW1lKSkKLQkJdHJhbXAt cmNsb25lLW1ldGhvZCkpKQorKGRlZnN1YnN0IHRyYW1wLXJjbG9uZS1maWxlLW5hbWUtcCAo dmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1GSUxFTkFNRSBm b3IgcmNsb25lLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3Rl ZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmluZz0gKHRyYW1wLWZp bGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1yY2xvbmUtbWV0aG9kKSkpCiAKIDs7OyMjI3Ry YW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtcmNsb25lLWZpbGUtbmFtZS1oYW5kbGVyIChv cGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1wLXNtYi5l bCBiL2xpc3AvbmV0L3RyYW1wLXNtYi5lbAppbmRleCA0OWYwNDlkM2YzLi5hZWFiYzY5MjQ2 IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1zbWIuZWwKKysrIGIvbGlzcC9uZXQvdHJh bXAtc21iLmVsCkBAIC0zMzAsMTEgKzMzMCwxMCBAQCB0cmFtcC1zbWItd2luZXhlLXNoZWxs LWNvbW1hbmQtc3dpdGNoCiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0JyBpbiBvcmRlciB0 byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRkZWZzLmVsLiAgT3Ro ZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRpbmcuCiA7OzsjIyN0 cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLXNtYi1maWxlLW5hbWUtcCAoZmlsZW5h bWUpCi0gICJDaGVjayBpZiBpdCdzIGEgRklMRU5BTUUgZm9yIFNNQiBzZXJ2ZXJzLiIKLSAg KGFuZCAodHJhbXAtdHJhbXAtZmlsZS1wIGZpbGVuYW1lKQotICAgICAgIChzdHJpbmc9ICh0 cmFtcC1maWxlLW5hbWUtbWV0aG9kICh0cmFtcC1kaXNzZWN0LWZpbGUtbmFtZSBmaWxlbmFt ZSkpCi0JCXRyYW1wLXNtYi1tZXRob2QpKSkKKyhkZWZzdWJzdCB0cmFtcC1zbWItZmlsZS1u YW1lLXAgKHZlYy1vci1maWxlbmFtZSkKKyAgIkNoZWNrIGlmIGl0J3MgYSBWRUMtT1ItRklM RU5BTUUgZm9yIFNNQiBzZXJ2ZXJzLiIKKyAgKHdoZW4tbGV0KiAoKHZlYyAodHJhbXAtZW5z dXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9yLWZpbGVuYW1lKSkpCisgICAgKHN0cmlu Zz0gKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgdmVjKSB0cmFtcC1zbWItbWV0aG9kKSkpCiAK IDs7OyMjI3RyYW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtc21iLWZpbGUtbmFtZS1oYW5k bGVyIChvcGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3AvbmV0L3RyYW1w LXNzaGZzLmVsIGIvbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKaW5kZXggYTEwMDc4NjM0NS4u NGJjODA0NTcxZSAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKKysrIGIv bGlzcC9uZXQvdHJhbXAtc3NoZnMuZWwKQEAgLTE1NiwxMSArMTU2LDEwIEBAIHRyYW1wLXNz aGZzLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0CiA7OyBJdCBtdXN0IGJlIGEgYGRlZnN1YnN0 JyBpbiBvcmRlciB0byBwdXNoIHRoZSB3aG9sZSBjb2RlIGludG8KIDs7IHRyYW1wLWxvYWRk ZWZzLmVsLiAgT3RoZXJ3aXNlLCB0aGVyZSB3b3VsZCBiZSByZWN1cnNpdmUgYXV0b2xvYWRp bmcuCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAotKGRlZnN1YnN0IHRyYW1wLXNzaGZzLWZpbGUt bmFtZS1wIChmaWxlbmFtZSkKLSAgIkNoZWNrIGlmIGl0J3MgYSBGSUxFTkFNRSBmb3Igc3No ZnMuIgotICAoYW5kICh0cmFtcC10cmFtcC1maWxlLXAgZmlsZW5hbWUpCi0gICAgICAgKHN0 cmluZz0gKHRyYW1wLWZpbGUtbmFtZS1tZXRob2QgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1l IGZpbGVuYW1lKSkKLQkgICAgICAgIHRyYW1wLXNzaGZzLW1ldGhvZCkpKQorKGRlZnN1YnN0 IHRyYW1wLXNzaGZzLWZpbGUtbmFtZS1wICh2ZWMtb3ItZmlsZW5hbWUpCisgICJDaGVjayBp ZiBpdCdzIGEgVkVDLU9SLUZJTEVOQU1FIGZvciBzc2hmcy4iCisgICh3aGVuLWxldCogKCh2 ZWMgKHRyYW1wLWVuc3VyZS1kaXNzZWN0ZWQtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFtZSkp KQorICAgIChzdHJpbmc9ICh0cmFtcC1maWxlLW5hbWUtbWV0aG9kIHZlYykgdHJhbXAtc3No ZnMtbWV0aG9kKSkpCiAKIDs7OyMjI3RyYW1wLWF1dG9sb2FkCiAoZGVmdW4gdHJhbXAtc3No ZnMtZmlsZS1uYW1lLWhhbmRsZXIgKG9wZXJhdGlvbiAmcmVzdCBhcmdzKQpkaWZmIC0tZ2l0 IGEvbGlzcC9uZXQvdHJhbXAtc3Vkb2VkaXQuZWwgYi9saXNwL25ldC90cmFtcC1zdWRvZWRp dC5lbAppbmRleCA4NDVmMzFkMDliLi40OGM4MWE1OTg4IDEwMDY0NAotLS0gYS9saXNwL25l dC90cmFtcC1zdWRvZWRpdC5lbAorKysgYi9saXNwL25ldC90cmFtcC1zdWRvZWRpdC5lbApA QCAtMTQ4LDExICsxNDgsMTAgQEAgdHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLWhhbmRsZXIt YWxpc3QKIDs7IEl0IG11c3QgYmUgYSBgZGVmc3Vic3QnIGluIG9yZGVyIHRvIHB1c2ggdGhl IHdob2xlIGNvZGUgaW50bwogOzsgdHJhbXAtbG9hZGRlZnMuZWwuICBPdGhlcndpc2UsIHRo ZXJlIHdvdWxkIGJlIHJlY3Vyc2l2ZSBhdXRvbG9hZGluZy4KIDs7OyMjI3RyYW1wLWF1dG9s b2FkCi0oZGVmc3Vic3QgdHJhbXAtc3Vkb2VkaXQtZmlsZS1uYW1lLXAgKGZpbGVuYW1lKQot ICAiQ2hlY2sgaWYgaXQncyBhIEZJTEVOQU1FIGZvciBTVURPRURJVC4iCi0gIChhbmQgKHRy YW1wLXRyYW1wLWZpbGUtcCBmaWxlbmFtZSkKLSAgICAgICAoc3RyaW5nPSAodHJhbXAtZmls ZS1uYW1lLW1ldGhvZCAodHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgZmlsZW5hbWUpKQotCQl0 cmFtcC1zdWRvZWRpdC1tZXRob2QpKSkKKyhkZWZzdWJzdCB0cmFtcC1zdWRvZWRpdC1maWxl LW5hbWUtcCAodmVjLW9yLWZpbGVuYW1lKQorICAiQ2hlY2sgaWYgaXQncyBhIFZFQy1PUi1G SUxFTkFNRSBmb3IgU1VET0VESVQuIgorICAod2hlbi1sZXQqICgodmVjICh0cmFtcC1lbnN1 cmUtZGlzc2VjdGVkLWZpbGUtbmFtZSB2ZWMtb3ItZmlsZW5hbWUpKSkKKyAgICAoc3RyaW5n PSAodHJhbXAtZmlsZS1uYW1lLW1ldGhvZCB2ZWMpIHRyYW1wLXN1ZG9lZGl0LW1ldGhvZCkp KQogCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZnVuIHRyYW1wLXN1ZG9lZGl0LWZpbGUt bmFtZS1oYW5kbGVyIChvcGVyYXRpb24gJnJlc3QgYXJncykKZGlmZiAtLWdpdCBhL2xpc3Av bmV0L3RyYW1wLmVsIGIvbGlzcC9uZXQvdHJhbXAuZWwKaW5kZXggYTg5NzJjZTY5ZS4uODVl ZmZlMWEwNCAxMDA2NDQKLS0tIGEvbGlzcC9uZXQvdHJhbXAuZWwKKysrIGIvbGlzcC9uZXQv dHJhbXAuZWwKQEAgLTE2NjksNiArMTY2OSwxNiBAQCB0cmFtcC1kaXNzZWN0LWZpbGUtbmFt ZQogCiAocHV0ICMndHJhbXAtZGlzc2VjdC1maWxlLW5hbWUgJ3RyYW1wLXN1cHByZXNzLXRy YWNlIHQpCiAKKyhkZWZ1biB0cmFtcC1lbnN1cmUtZGlzc2VjdGVkLWZpbGUtbmFtZSAodmVj LW9yLWZpbGVuYW1lKQorICAiUmV0dXJuIGEgYHRyYW1wLWZpbGUtbmFtZScgc3RydWN0dXJl IGZvciBWRUMtT1ItRklMRU5BTUUuCisKK1ZFQy1PUi1GSUxFTkFNRSBtYXkgYmUgZWl0aGVy IGEgc3RyaW5nIG9yIGEgYHRyYW1wLWZpbGUtbmFtZScuCitJZiBpdCdzIG5vdCBhIFRyYW1w IGZpbGVuYW1lLCByZXR1cm4gbmlsLiIKKyAgKGNvbmQKKyAgICgodHJhbXAtZmlsZS1uYW1l LXAgdmVjLW9yLWZpbGVuYW1lKSB2ZWMtb3ItZmlsZW5hbWUpCisgICAoKHRyYW1wLXRyYW1w LWZpbGUtcCB2ZWMtb3ItZmlsZW5hbWUpCisgICAgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1l IHZlYy1vci1maWxlbmFtZSkpKSkKKwogKGRlZnVuIHRyYW1wLWRpc3NlY3QtaG9wLW5hbWUg KG5hbWUgJm9wdGlvbmFsIG5vZGVmYXVsdCkKICAgIlJldHVybiBhIGB0cmFtcC1maWxlLW5h bWUnIHN0cnVjdHVyZSBvZiBgaG9wJyBwYXJ0IG9mIE5BTUUuCiBTZWUgYHRyYW1wLWRpc3Nl Y3QtZmlsZS1uYW1lJyBmb3IgZGV0YWlscy4iCkBAIC0yNTUyLDExICsyNTYyLDE0IEBAIHRy YW1wLWZpbmQtZm9yZWlnbi1maWxlLW5hbWUtaGFuZGxlcgogICAiUmV0dXJuIGZvcmVpZ24g ZmlsZSBuYW1lIGhhbmRsZXIgaWYgZXhpc3RzLiIKICAgKHdoZW4gKHRyYW1wLXRyYW1wLWZp bGUtcCBmaWxlbmFtZSkKICAgICAobGV0ICgoaGFuZGxlciB0cmFtcC1mb3JlaWduLWZpbGUt bmFtZS1oYW5kbGVyLWFsaXN0KQorICAgICAgICAgICh2ZWMgKHRyYW1wLWRpc3NlY3QtZmls ZS1uYW1lIGZpbGVuYW1lKSkKIAkgIGVsdCByZXMpCiAgICAgICAod2hpbGUgaGFuZGxlcgog CShzZXRxIGVsdCAoY2FyIGhhbmRsZXIpCiAJICAgICAgaGFuZGxlciAoY2RyIGhhbmRsZXIp KQotCSh3aGVuIChmdW5jYWxsIChjYXIgZWx0KSBmaWxlbmFtZSkKKyAgICAgICAgOzsgUHJl dmlvdXNseSwgdGhpcyBmdW5jdGlvbiB3YXMgY2FsbGVkIHdpdGggRklMRU5BTUUsIGJ1dCBu b3cKKyAgICAgICAgOzsgaXQncyBjYWxsZWQgd2l0aCB0aGUgVkVDLgorICAgICAgICAod2hl biAod2l0aC1kZW1vdGVkLWVycm9ycyAiRXJyb3I6ICVTIiAoZnVuY2FsbCAoY2FyIGVsdCkg dmVjKSkKIAkgIChzZXRxIGhhbmRsZXIgbmlsCiAJCXJlcyAoY2RyIGVsdCkpKSkKICAgICAg IHJlcykpKQpAQCAtMjc1NSw4ICsyNzY4LDkgQEAgdHJhbXAtcmVnaXN0ZXItZmlsZS1uYW1l LWhhbmRsZXJzCiAoZGVmdW4gdHJhbXAtcmVnaXN0ZXItZm9yZWlnbi1maWxlLW5hbWUtaGFu ZGxlcgogICAgIChmdW5jIGhhbmRsZXIgJm9wdGlvbmFsIGFwcGVuZCkKICAgIlJlZ2lzdGVy IChGVU5DIC4gSEFORExFUikgaW4gYHRyYW1wLWZvcmVpZ24tZmlsZS1uYW1lLWhhbmRsZXIt YWxpc3QnLgotRlVOQyBpcyB0aGUgZnVuY3Rpb24sIHdoaWNoIGRldGVybWluZXMgd2hldGhl ciBIQU5ETEVSIGlzIHRvIGJlIGNhbGxlZC4KLUFkZCBvcGVyYXRpb25zIGRlZmluZWQgaW4g YEhBTkRMRVItYWxpc3QnIHRvIGB0cmFtcC1maWxlLW5hbWUtaGFuZGxlcicuIgorRlVOQyBp cyB0aGUgZnVuY3Rpb24sIHdoaWNoIHRha2VzIGEgZGlzc2VjdGVkIGZpbGVuYW1lIGFuZCBk ZXRlcm1pbmVzCit3aGV0aGVyIEhBTkRMRVIgaXMgdG8gYmUgY2FsbGVkLiAgQWRkIG9wZXJh dGlvbnMgZGVmaW5lZCBpbgorYEhBTkRMRVItYWxpc3QnIHRvIGB0cmFtcC1maWxlLW5hbWUt aGFuZGxlcicuIgogICAoYWRkLXRvLWxpc3QKICAgICd0cmFtcC1mb3JlaWduLWZpbGUtbmFt ZS1oYW5kbGVyLWFsaXN0IGAoLGZ1bmMgLiAsaGFuZGxlcikgYXBwZW5kKQogICA7OyBNYXJr IGBvcGVyYXRpb25zJyB0aGUgaGFuZGxlciBpcyByZXNwb25zaWJsZSBmb3IuCkBAIC0yODE0 LDExICsyODI4LDcgQEAgdHJhbXAtY29ubmVjdGFibGUtcAogVGhpcyBpcyB0cnVlLCBpZiBl aXRoZXIgdGhlIHJlbW90ZSBob3N0IGlzIGFscmVhZHkgY29ubmVjdGVkLCBvciBpZiB3ZSBh cmUKIG5vdCBpbiBjb21wbGV0aW9uIG1vZGUuIgogICAobGV0ICgodHJhbXAtdmVyYm9zZSAw KQotCSh2ZWMKLQkgKGNvbmQKLQkgICgodHJhbXAtZmlsZS1uYW1lLXAgdmVjLW9yLWZpbGVu YW1lKSB2ZWMtb3ItZmlsZW5hbWUpCi0JICAoKHRyYW1wLXRyYW1wLWZpbGUtcCB2ZWMtb3It ZmlsZW5hbWUpCi0JICAgKHRyYW1wLWRpc3NlY3QtZmlsZS1uYW1lIHZlYy1vci1maWxlbmFt ZSkpKSkpCisJKHZlYyAodHJhbXAtZW5zdXJlLWRpc3NlY3RlZC1maWxlLW5hbWUgdmVjLW9y LWZpbGVuYW1lKSkpCiAgICAgKG9yIDs7IFdlIGNoZWNrIHRoaXMgZm9yIHRoZSBwcm9jZXNz IHJlbGF0ZWQgdG8KIAk7OyBgdHJhbXAtYnVmZmVyLW5hbWUnOyBvdGhlcndpc2UgYHN0YXJ0 LWZpbGUtcHJvY2VzcycKIAk7OyB3b3VsZG4ndCBydW4gZXZlciB3aGVuIGBub24tZXNzZW50 aWFsJyBpcyBub24tbmlsLgotLSAKMi4yNS4xCgo= --------------FAA6A051A5FADAAFAACEFF10-- From debbugs-submit-bounces@debbugs.gnu.org Thu Nov 11 13:51:23 2021 Received: (at 51699-done) by debbugs.gnu.org; 11 Nov 2021 18:51:24 +0000 Received: from localhost ([127.0.0.1]:42253 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlFAR-0006tH-NE for submit@debbugs.gnu.org; Thu, 11 Nov 2021 13:51:23 -0500 Received: from mout.gmx.net ([212.227.15.19]:59355) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mlFAP-0006t3-VS for 51699-done@debbugs.gnu.org; Thu, 11 Nov 2021 13:51:22 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1636656675; bh=KMhZv5FYP7oDN7SNCjNxdICbHZe8+RcS9gyqN3NOFJc=; h=X-UI-Sender-Class:From:To:Cc:Subject:References:Date:In-Reply-To; b=GFRdfjlA96QihHPBVtT0KSvpH8cg4BwA2RPBQunBfxVXbDIoC/wx71UlO23RjOvFP z+JVWYCTUmLpzM6HoDhWOWVav5Zc5/QRTSCe3/erDm9TUBmSQHV/u1eJCrrgk38x3R Jmu61m1Wflxf5nCdyT9WXzhxV2iFJGs7Ca8NtIek= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from gandalf.gmx.de ([213.220.159.17]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MHGCo-1myQRW3qIS-00DIwU; Thu, 11 Nov 2021 19:51:15 +0100 From: Michael Albinus To: Jim Porter Subject: Re: bug#51699: 29.0.50; [PATCH] Improve performance of 'file-name-case-insensitive-p' for Tramp files References: <0b41b0c1-0887-8a21-e2e4-eeb35d5a9bd0@gmail.com> <87ee7pqg2e.fsf@gmx.de> <5834652a-5624-a463-fe56-5c8f0841787b@gmail.com> <87wnlgtdbv.fsf@gmx.de> <0f898153-b128-c39b-f366-55cb1bacad57@gmail.com> Date: Thu, 11 Nov 2021 19:51:14 +0100 In-Reply-To: <0f898153-b128-c39b-f366-55cb1bacad57@gmail.com> (Jim Porter's message of "Wed, 10 Nov 2021 16:48:03 -0800") Message-ID: <874k8iil0d.fsf@gmx.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:4s2vvl24VkAKHr47yhwJ9Lvw7lKQKMMvhIKxb/iYvwAZ8+/eJo6 BlwosQbVS63cm1JASykGAVDZFJpnIeorFygQJbBTA0hkI1JlsTQ+qWfWsl1tVkkIGx6QTFq 8tOhW0aY0pecw/I4FIjPtpv0rvmbCnx/hCH/cUImyPrBtoyVJWNRa1DyqwfnX1MT1qhBx9h fw8aeFhbcbSwPFR/Chj/A== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:t3qBmH35lCk=:OqbTQaY5/fGolN/CWWqTao KrrqAMqXKGXk9oZRR1CjqiFgmpRRWnTzy4RTMjfRLzjb+8egLZGyUhdU6cmqOQUNqMqF0AmLH vHKlLdIDVl2h3lvzV7OYcbgT9YuqUqwnpZrRiGpUZzd7pDFUOz3qaK3UTRN+lHjiMUOwqkXrX kCNZDI73iyDbQwcK+06V8P2i6I7roMKwFq6W267IxqlHcb+F9KrA2yfljbJTk0i/fkoL8q7tz 9IEZib5TZCFzNk0lO1x7DEhIRGYBYF/f2rp9Peep6mU9Utq5mQOYwaHYEuWScI3Fk/EQTpe63 EBW5awJscfiKLkF7U+4PFnPKz4GgQdMbWWqjcF+7BDRPYY0JYAovO3FRMT+8FPo0a/9bT34LY N7jp1p68/N+7oQmoGuZgWilZkqNlTTm8k6c6DDHdkyB0h8w8n9K54XM22uJkl6v1s/p0Gwovy PTr4pc5i8FDbvLqgjgE478tAmyR0B3+YJR3joN//H8+so8rLuznaYQH2LEUV1oU0IJT680TZT X8OQ6LobmSH7RJ86E+8Vq67WsHotHRRycSe3MRIGkCc4fKuAtO6NoZW4nHi4hBPSd55U0HMPg mvtMpf3qM70/sz2LMXPgOTlfRXQj5di2cfq4NpmsYj0hTKtirrVEPoB3phMR+CbhwPIxnBaLc S/FXxGBuMQsZG3TnELGh4z4R2q2g6KcHcXWQKEV0DoJBvtm3z8yYxNpiDOiO4hgKt51Zyb6YO 2+QWFcc+dfkKGCm1cRmLrIKfRgWu8sII6QNogsseY9m2Er6a+SOBlxX8wY5dlixIjwhbcZyVw 29iIgXnJMaSKuNFdwVqUUCjgCYPykMO8r36OJzIslH7ynwThVIs+y4bwvQao7EK+u8kUmfUZ8 AtS/YHhWL7eLaMWZX2eFQl0Ay89lI/hZmlzjB6AqXXk3sz8/xb2O/8sa358VKkg6+u3924nl4 Wnd/cb1gqIO13hax/vnc6MEL508FZLBeO40MJUoNdsrNtB+l5h9PKJ4zP7kemjI3psxZH/vn3 jGAIbCfbC6ZJTyoMX4IYEYs/o+F+T6ALmLKl81frDplnwI0lcOTxJtD9WS5i0QFhStxl+wvWA 7sH7ervshgnrsI= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 51699-done Cc: 51699-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.7 (-) Version: 29.1 Jim Porter writes: Hi Jim, > From 2aec8e21a3e37728a990c4f116f60c8b12bb2110 Mon Sep 17 00:00:00 2001 > From: Jim Porter > Date: Wed, 10 Nov 2021 16:41:00 -0800 > Subject: [PATCH] Improve performance of 'tramp-find-foreign-file-name-handler' Thanks for this final patch. I've applied it to master. It makes tramp-tests.el faster for most of the test cases, not only for file-name-case-insensitive-p tests. :-) Closing this bug. Best regards, Michael. From unknown Fri Aug 15 14:46:39 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 10 Dec 2021 12:24:14 +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