From unknown Thu Aug 14 18:36:05 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#66806 <66806@debbugs.gnu.org> To: bug#66806 <66806@debbugs.gnu.org> Subject: Status: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Reply-To: bug#66806 <66806@debbugs.gnu.org> Date: Fri, 15 Aug 2025 01:36:05 +0000 retitle 66806 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules = to the search program reassign 66806 emacs submitter 66806 Jim Porter severity 66806 normal tag 66806 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 01:36:56 2023 Received: (at submit) by debbugs.gnu.org; 29 Oct 2023 05:36:56 +0000 Received: from localhost ([127.0.0.1]:40242 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwyTn-0003LW-Ph for submit@debbugs.gnu.org; Sun, 29 Oct 2023 01:36:56 -0400 Received: from lists.gnu.org ([2001:470:142::17]:43914) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwyTi-0003LE-NV for submit@debbugs.gnu.org; Sun, 29 Oct 2023 01:36:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwyT6-0007WU-9l for bug-gnu-emacs@gnu.org; Sun, 29 Oct 2023 01:36:12 -0400 Received: from mail-il1-x135.google.com ([2607:f8b0:4864:20::135]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qwyT4-00062V-HY for bug-gnu-emacs@gnu.org; Sun, 29 Oct 2023 01:36:12 -0400 Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-35906265d80so3402535ab.0 for ; Sat, 28 Oct 2023 22:36:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698557769; x=1699162569; darn=gnu.org; h=subject:from:to:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=rncAl5UBZ5banhCS7pv++aNnvkp1vj+h7IyD3+m+E1o=; b=HzI/n5+6XQC82Dxs0YjvcVjcXHzGjoxQg7oyDc/+JAD2ZigOhEIGYB493DWeY096V/ Zkgy+cBuGAHsGcZpWRZyPk8r09BfmS8yuaHYnx9VP2eHlCIf0Ob3HYpqjxc71JNlWVy9 Q6uBj8EO+ucS6wJOi5Q8JHbysSPoSdIzU78L+VmoJqNAfGwjjfTXmnUOvWQ1mlQCJq6n 4JY87fMsRHkiC7+u3TsB7mT+v8GYNaFxGvO1ZIb1UuqIEql3O63icgIJM06h8iozLuQr j4BpU1CHtsy7PXtGP9m97fm4LQXMJLgPmrAJLyyl4NhJlcmkQKpNurGTZQqsvnqGiirp si9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698557769; x=1699162569; h=subject:from:to:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rncAl5UBZ5banhCS7pv++aNnvkp1vj+h7IyD3+m+E1o=; b=gswg6v+CV3Xh7YnTtegPJ1HjM2+FI1iDFIbYBAx1s5z46YGFdKyMtDDeImpY7w9JCQ Lxityy9ocP5KZxJcwHph3mye7KubTo4W2vk4qQlTOb2LFJLim6R/qRGBMn53fTunHIl1 IhyYtpRwxJFj8pk+VkQN9h0dOtfFf+QdojnoToLZ9fP3weHWFq9jbMOXIxUpTfKy/pN3 3FmH0ZJLIAOLn9pRm7iRFep/Z60GMXzRRwsR/7WzJwJGu1nX8a3DbhtlW9CT6gfv6TWd JEeAJ98aKKO3TewwGwz6WPHMKsjJH1l0yGi6Txkp41JHS1QxUhs5E/URslCujuExID1e mBBw== X-Gm-Message-State: AOJu0Yy/HDTuUAwtYYhZXlDdbuSj4ytCH5CDm8j/OhYBYw8b/SqrkXnR yGje7Vy4BOwpEzM2/PA+nV/y8g2gs5U= X-Google-Smtp-Source: AGHT+IHIxskWcdJwtBnm7cGdjScAujhFiH/nO3GsC+vq06jNfxMsHOD6JkuSp10IMR2tNX9WQasBfw== X-Received: by 2002:a05:6e02:152a:b0:357:46e3:58be with SMTP id i10-20020a056e02152a00b0035746e358bemr9937389ilu.1.1698557768834; Sat, 28 Oct 2023 22:36: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 iz11-20020a170902ef8b00b001cc436e9806sm415778plb.81.2023.10.28.22.36.07 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 28 Oct 2023 22:36:07 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------y8rocPDD6xT7cy0sLCc5h52C" Message-ID: Date: Sat, 28 Oct 2023 22:36:07 -0700 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US To: bug-gnu-emacs@gnu.org From: Jim Porter Subject: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Received-SPF: pass client-ip=2607:f8b0:4864:20::135; envelope-from=jporterbugs@gmail.com; helo=mail-il1-x135.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) This is a multi-part message in MIME format. --------------y8rocPDD6xT7cy0sLCc5h52C Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Debbugs-Cc: dmitry@gutov.dev To see this in action, you can do the following, starting from "emacs -Q" inside of a Git repo that contains submodules: M-x trace-function RET project-files RET C-x p g some-string RET If you look at the trace, you'll see that the files in your submodules are returned from 'project-files', but so is the submodule directory. That's not really correct, since 'project-files' is supposed to return *files*, not directories. (There are already workarounds for this in 'project-search' and 'project-query-replace-regexp'.) By default, this is just a theoretical problem, but if you customize 'xref-search-program-alist' and 'xref-search-program' to include some other program, this can cause real issues. For example, I tried to add "ag" to this list[1], and unfortunately, it just doesn't work in this case. The results for submodules get duplicated, and there's no way I can see with ag to search only the specified *files*, ignoring any directories. (Looking at the definition for ripgrep, I'm guessing the "-g '!*/'" is the trick for that program, but nothing similar works for ag.) Attached are two possible patches for this: a minimal version that just fixes 'project-find-regexp', and a maximal version that fixes this in general, and should theoretically speed up 'project-search' and 'project-query-replace-regexp' since they no longer need to call 'file-regular-p' on every file. Do either of these patches look ok? [1] This is a long story, simplified for this message since the gory details aren't especially relevant. --------------y8rocPDD6xT7cy0sLCc5h52C Content-Type: text/plain; charset=UTF-8; name="minimal_0001-Exclude-Git-submodules-when-getting-list-of-files-fo.patch" Content-Disposition: attachment; filename*0="minimal_0001-Exclude-Git-submodules-when-getting-list-of-fil"; filename*1="es-fo.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZjlmYzZhNjA2YmRkMTYxMGQ0NDBkOWIxMzBhYWEzMGFhNjY1OTdhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMjMgMjI6MTE6MzAgLTA3MDAKU3ViamVjdDogW1BB VENIXSBFeGNsdWRlIEdpdCBzdWJtb2R1bGVzIHdoZW4gZ2V0dGluZyBsaXN0IG9mIGZpbGVz IGZvcgogJ3Byb2plY3QtZmluZC1yZWdleHAnCgoqIGxpc3AvcHJvZ21vZGVzL3Byb2plY3Qu ZWwgKHByb2plY3QtZmluZC1yZWdleHApOiBGaWx0ZXIgb3V0Cm5vbi1yZWd1bGFyIGZpbGVz LgotLS0KIGxpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgfCAzICsrLQogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2xpc3Av cHJvZ21vZGVzL3Byb2plY3QuZWwgYi9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsCmluZGV4 IGZkYTEwODFlYjYyLi5lMjQ1ZTc5NDMxOCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMv cHJvamVjdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsCkBAIC05NjAsNyAr OTYwLDggQEAgcHJvamVjdC1maW5kLXJlZ2V4cAogICAgICAgICAgKGRlZmF1bHQtZGlyZWN0 b3J5IChwcm9qZWN0LXJvb3QgcHIpKQogICAgICAgICAgKGZpbGVzCiAgICAgICAgICAgKGlm IChub3QgY3VycmVudC1wcmVmaXgtYXJnKQotICAgICAgICAgICAgICAocHJvamVjdC1maWxl cyBwcikKKyAgICAgICAgICAgICAgOzsgWFhYOiBTZWUgdGhlIGNvbW1lbnQgaW4gcHJvamVj dC1xdWVyeS1yZXBsYWNlLXJlZ2V4cC4KKyAgICAgICAgICAgICAgKGNsLWRlbGV0ZS1pZi1u b3QgIydmaWxlLXJlZ3VsYXItcCAocHJvamVjdC1maWxlcyBwcikpCiAgICAgICAgICAgICAo bGV0ICgoZGlyIChyZWFkLWRpcmVjdG9yeS1uYW1lICJCYXNlIGRpcmVjdG9yeTogIgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsZXItZGlyIG5p bCB0KSkpCiAgICAgICAgICAgICAgIChwcm9qZWN0LS1maWxlcy1pbi1kaXJlY3RvcnkgZGly Ci0tIAoyLjI1LjEKCg== --------------y8rocPDD6xT7cy0sLCc5h52C Content-Type: text/plain; charset=UTF-8; name="maximal_0001-Exclude-Git-submodules-from-project-files.patch" Content-Disposition: attachment; filename*0="maximal_0001-Exclude-Git-submodules-from-project-files.patch" Content-Transfer-Encoding: base64 RnJvbSBmZGI3YTk5ZGNkNDdlM2ExMTA1N2ZiNDcyMjFhNWU2ZjQwYjJkYjZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMjMgMjI6MjA6NDEgLTA3MDAKU3ViamVjdDogW1BB VENIXSBFeGNsdWRlIEdpdCBzdWJtb2R1bGVzIGZyb20gJ3Byb2plY3QtZmlsZXMnCgoqIGxp c3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgKHByb2plY3QtLXZjLWxpc3QtZmlsZXMpOiBFeGNs dWRlIEdpdApzdWJtb2R1bGVzLgoocHJvamVjdC1zZWFyY2gsIHByb2plY3QtcXVlcnktcmVw bGFjZS1yZWdleHApOiBSZW1vdmUgbm93LXVubmVlZGVkCndvcmthcm91bmQuCi0tLQogbGlz cC9wcm9nbW9kZXMvcHJvamVjdC5lbCB8IDIwICsrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVj dC5lbAppbmRleCBmZGExMDgxZWI2Mi4uOTJiM2VkNTI2MDAgMTAwNjQ0Ci0tLSBhL2xpc3Av cHJvZ21vZGVzL3Byb2plY3QuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbApA QCAtNjQ3LDYgKzY0Nyw3IEBAIHByb2plY3QtLXZjLWxpc3QtZmlsZXMKICAgICAgICAgICAg IChpbmNsdWRlLXVudHJhY2tlZCAocHJvamVjdC0tdmFsdWUtaW4tZGlyCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LXZjLWluY2x1ZGUtdW50cmFja2VkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcikpCisgICAgICAgICAgICAoc3Vi bW9kdWxlcyAocHJvamVjdC0tZ2l0LXN1Ym1vZHVsZXMpKQogICAgICAgICAgICAgZmlsZXMp CiAgICAgICAgKHNldHEgYXJncyAoYXBwZW5kIGFyZ3MKICAgICAgICAgICAgICAgICAgICAg ICAgICAgJygiLWMiICItLWV4Y2x1ZGUtc3RhbmRhcmQiKQpAQCAtNjgwLDEzICs2ODEsMTQg QEAgcHJvamVjdC0tdmMtbGlzdC1maWxlcwogICAgICAgIChzZXRxIGZpbGVzCiAgICAgICAg ICAgICAgKG1hcGNhcgogICAgICAgICAgICAgICAobGFtYmRhIChmaWxlKSAoY29uY2F0IGRl ZmF1bHQtZGlyZWN0b3J5IGZpbGUpKQotICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0g ICAgICAgICAgICAgICAoYXBwbHkgIyd2Yy1naXQtLXJ1bi1jb21tYW5kLXN0cmluZyBuaWwg ImxzLWZpbGVzIiBhcmdzKQotICAgICAgICAgICAgICAgIlwwIiB0KSkpCisgICAgICAgICAg ICAgIChjbC1zZXQtZGlmZmVyZW5jZQorICAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZwor ICAgICAgICAgICAgICAgIChhcHBseSAjJ3ZjLWdpdC0tcnVuLWNvbW1hbmQtc3RyaW5nIG5p bCAibHMtZmlsZXMiIGFyZ3MpCisgICAgICAgICAgICAgICAgIlwwIiB0KQorICAgICAgICAg ICAgICAgc3VibW9kdWxlcyA6dGVzdCAjJ3N0cmluZz0pKSkKICAgICAgICAod2hlbiAocHJv amVjdC0tdmMtbWVyZ2Utc3VibW9kdWxlcy1wIGRlZmF1bHQtZGlyZWN0b3J5KQogICAgICAg ICAgOzsgVW5mb3J0dW5hdGVseSwgJ2xzLWZpbGVzIC0tcmVjdXJzZS1zdWJtb2R1bGVzJyBj b25mbGljdHMgd2l0aCAnLW8nLgotICAgICAgICAgKGxldCogKChzdWJtb2R1bGVzIChwcm9q ZWN0LS1naXQtc3VibW9kdWxlcykpCi0gICAgICAgICAgICAgICAgKHN1Yi1maWxlcworICAg ICAgICAgKGxldCAoKHN1Yi1maWxlcwogICAgICAgICAgICAgICAgICAobWFwY2FyCiAgICAg ICAgICAgICAgICAgICAobGFtYmRhIChtb2R1bGUpCiAgICAgICAgICAgICAgICAgICAgICh3 aGVuIChmaWxlLWRpcmVjdG9yeS1wIG1vZHVsZSkKQEAgLTEzMjYsOCArMTMyOCw3IEBAIHBy b2plY3Qtc2VhcmNoCiAgIChpbnRlcmFjdGl2ZSAic1NlYXJjaCAocmVnZXhwKTogIikKICAg KGZpbGVsb29wLWluaXRpYWxpemUtc2VhcmNoCiAgICByZWdleHAKLSAgIDs7IFhYWDogU2Vl IHRoZSBjb21tZW50IGluIHByb2plY3QtcXVlcnktcmVwbGFjZS1yZWdleHAuCi0gICAoY2wt ZGVsZXRlLWlmLW5vdCAjJ2ZpbGUtcmVndWxhci1wIChwcm9qZWN0LWZpbGVzIChwcm9qZWN0 LWN1cnJlbnQgdCkpKQorICAgKHByb2plY3QtZmlsZXMgKHByb2plY3QtY3VycmVudCB0KSkK ICAgICdkZWZhdWx0KQogICAoZmlsZWxvb3AtY29udGludWUpKQogCkBAIC0xMzQ4LDEwICsx MzQ5LDcgQEAgcHJvamVjdC1xdWVyeS1yZXBsYWNlLXJlZ2V4cAogICAgICAgIChsaXN0IGZy b20gdG8pKSkpCiAgIChmaWxlbG9vcC1pbml0aWFsaXplLXJlcGxhY2UKICAgIGZyb20gdG8K LSAgIDs7IFhYWDogRmlsdGVyIG91dCBHaXQgc3VibW9kdWxlcywgd2hpY2ggYXJlIG5vdCBy ZWd1bGFyIGZpbGVzLgotICAgOzsgYHByb2plY3QtZmlsZXMnIGNhbiByZXR1cm4gdGhvc2Us IHdoaWNoIGlzIGFyZ3VhYmx5IHN1Ym9wdGltYWwsCi0gICA7OyBidXQgcmVtb3ZpbmcgdGhl bSBlYWdlcmx5IGhhcyBwZXJmb3JtYW5jZSBjb3N0LgotICAgKGNsLWRlbGV0ZS1pZi1ub3Qg IydmaWxlLXJlZ3VsYXItcCAocHJvamVjdC1maWxlcyAocHJvamVjdC1jdXJyZW50IHQpKSkK KyAgIChwcm9qZWN0LWZpbGVzIChwcm9qZWN0LWN1cnJlbnQgdCkpCiAgICAnZGVmYXVsdCkK ICAgKGZpbGVsb29wLWNvbnRpbnVlKSkKIAotLSAKMi4yNS4xCgo= --------------y8rocPDD6xT7cy0sLCc5h52C-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 02:07:43 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 06:07:43 +0000 Received: from localhost ([127.0.0.1]:40249 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwyxa-0004Rz-Qf for submit@debbugs.gnu.org; Sun, 29 Oct 2023 02:07:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56750) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qwyxY-0004Rf-3r for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 02:07:41 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qwyww-0002Gr-7S; Sun, 29 Oct 2023 02:07: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=g7V7sFfrHI4rEkJUSGf/qawxaYEvUpYEWqgEgir4r2U=; b=L8sCbvGmSBsf 2tMX43p1muJMkX0N3DJ1aPq5J1fMJeP6M13wZB15OWEu13yurxss2qhyn1ZKqUWYNvnQRGupkP5aa fmRXCLDwFHouAbcL+mt0bN2jf2lPnjL9J9FaYTH0tQrm1d7PGH5gTWjqCv4iPZGvxZLyuekVe2GBm UHr5tgmx+og+TI4/mgJSIuQP5jPE9O/tlWx0cD6aqHxHvVsBKbDlRE2SUxGE+HQ63WppxtDgFsOQH OqqqrdhzShJBTfTTcYOl6uaWDJ3COFeiTU0WXBwwyjTQBUE7pCa7NecvCGSTJM0z9QW0ynvh0Y09Z zV4AFw+DZ5tIoz/k/zWxRw==; Date: Sun, 29 Oct 2023 08:06:44 +0200 Message-Id: <83wmv6arnv.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: (message from Jim Porter on Sat, 28 Oct 2023 22:36:07 -0700) Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66806 Cc: dmitry@gutov.dev, 66806@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: dmitry@gutov.dev > Date: Sat, 28 Oct 2023 22:36:07 -0700 > From: Jim Porter > > --- a/lisp/progmodes/project.el > +++ b/lisp/progmodes/project.el > @@ -960,7 +960,8 @@ project-find-regexp > (default-directory (project-root pr)) > (files > (if (not current-prefix-arg) > - (project-files pr) > + ;; XXX: See the comment in project-query-replace-regexp. > + (cl-delete-if-not #'file-regular-p (project-files pr)) ^^^^^^^^^^^^^^^^ I think we want to prefer using seq.el functions, since seq.el is nowadays preloaded. Is there a good reason to use cl-delete-if-not here? From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 13:55:09 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 17:55:09 +0000 Received: from localhost ([127.0.0.1]:43301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxA0C-0001YW-NY for submit@debbugs.gnu.org; Sun, 29 Oct 2023 13:55:09 -0400 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]:51354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxA0A-0001Xz-1i for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 13:55:07 -0400 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-1efad296d42so837376fac.2 for <66806@debbugs.gnu.org>; Sun, 29 Oct 2023 10:54:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698602067; x=1699206867; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=YFq28jztC5rTDIyyNAajlfu8N2FgCD271FCmGIVsigA=; b=kmMn4DxtIGwLK/0jRYfIqdMJXbRZTW0wNF+++fLyGy5F/6aESA8BJOhddXCfMgPQjB Gag2tnl++h7IWSKrlKJDyvsBY3ozOFfZ+cearvHm+qtyYnFfunZKkGCyebmRRbclr5en VqwjVi7YnkfZSB2A96F9aLrxxFOFaaE05ig1+uzMLO4brkiEVhVU4CVLm8hSyjpEnrPe acgnlPBByCJ5FP8XYK+AUbHH3iPfflWrAf3VGChvgxXjLCyZJz76Hs3lm+vz1GOw6Omd Mzor8q09lDNYk4uoOmlfFZdfw9dlJuzu3W6IoAwoBpi85+Hth+yUcfQbI1EKqfru4p5a QujA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698602067; x=1699206867; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=YFq28jztC5rTDIyyNAajlfu8N2FgCD271FCmGIVsigA=; b=mSO6SpTuqdHWo6J6iV+j8b3YvicwtStN6gRLGXvJc/p23eXPxGTwIOCn/9ifOUAHXV 9Br2Vb/MOZN6oZmEfgpETZENGatd7d4yLwsACa41wzA1fzyDV3hYFXHKrBz+VxeK3qzU Zt2VSHjyJ1Etzaenn3co3dApbRqeHoli7CL1kSEl4UX0OK4xnAWlynzulFAGZbKAyYDG E85OxxnokrQxDIVI7FqurLgPa8SOow6JoHffVCZCTUovzLCVXYjoy04PLz/2hBguKddz 1ftfKinDeNzrKwzZqxTx+CpRtMoPh2DV4QUOLG7t+osKoRWUkC6pw7PehGoUp/cWONEu m1Yw== X-Gm-Message-State: AOJu0Yz4wiP1+cNVEyGKcLahozTgQiAmkSiewI+b0pFevPugfqX3WhQj blG5OR7CO+lwnX3OmodPSW4yHFAcUlQ= X-Google-Smtp-Source: AGHT+IEiQ/lCZptTBPIvY9xv+tvmjlGLXfm5H7K00no9NhgoZ4IL1I4w6Y+Xh9VMbKYdH7ANH9iO4Q== X-Received: by 2002:a05:6871:8f83:b0:1ef:bebf:80e6 with SMTP id aa3-20020a0568718f8300b001efbebf80e6mr2950174oac.34.1698602067307; Sun, 29 Oct 2023 10:54:27 -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 f22-20020a633816000000b005af7ee01ab4sm3582459pga.6.2023.10.29.10.54.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Oct 2023 10:54:26 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------aUB1Hkq6u5pQSLx0rIrCXxXu" Message-ID: <80277522-c366-2014-8b52-250634090f2e@gmail.com> Date: Sun, 29 Oct 2023 10:54:28 -0700 MIME-Version: 1.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Eli Zaretskii References: <83wmv6arnv.fsf@gnu.org> From: Jim Porter In-Reply-To: <83wmv6arnv.fsf@gnu.org> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66806 Cc: dmitry@gutov.dev, 66806@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. --------------aUB1Hkq6u5pQSLx0rIrCXxXu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/28/2023 11:06 PM, Eli Zaretskii wrote: >> Cc: dmitry@gutov.dev >> Date: Sat, 28 Oct 2023 22:36:07 -0700 >> From: Jim Porter >> >> --- a/lisp/progmodes/project.el >> +++ b/lisp/progmodes/project.el >> @@ -960,7 +960,8 @@ project-find-regexp >> (default-directory (project-root pr)) >> (files >> (if (not current-prefix-arg) >> - (project-files pr) >> + ;; XXX: See the comment in project-query-replace-regexp. >> + (cl-delete-if-not #'file-regular-p (project-files pr)) > ^^^^^^^^^^^^^^^^ > I think we want to prefer using seq.el functions, since seq.el is > nowadays preloaded. Is there a good reason to use cl-delete-if-not > here? Well, that's just copy-pasted from some other functions in project.el. If we want to go the minimal route, I could update all those workarounds. Or we could go the maximal route and fix it at its source. Here's an updated patch for the maximal route that uses 'seq-difference'. Assuming we're ok with the performance characteristics of the maximal patch, I think the maximal route is best: it fixes the issue at its source. For performance, it should be faster by default, but a bit slower when 'project-vc-merge-submodules' is nil (since we need an extra call to "git" to get the list of submodules). However, that slowness is compensated for by eliminating the need to call 'file-regular-p' on all the results for some functions that really do need 'project-files' to return only files. (If we're really concerned about *exact* perf numbers, I can try to collect some. Just let me know.) --------------aUB1Hkq6u5pQSLx0rIrCXxXu Content-Type: text/plain; charset=UTF-8; name="maximal_0001-Exclude-Git-submodules-from-project-files.patch" Content-Disposition: attachment; filename*0="maximal_0001-Exclude-Git-submodules-from-project-files.patch" Content-Transfer-Encoding: base64 RnJvbSAyYTE3ZDVhY2ZjZjBiNzQ4YWFhZDlkMDFmZjM0MWVkNmRhMzE1YTQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMjMgMjI6MjA6NDEgLTA3MDAKU3ViamVjdDogW1BB VENIXSBFeGNsdWRlIEdpdCBzdWJtb2R1bGVzIGZyb20gJ3Byb2plY3QtZmlsZXMnCgoqIGxp c3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgKHByb2plY3QtLXZjLWxpc3QtZmlsZXMpOiBFeGNs dWRlIEdpdApzdWJtb2R1bGVzLgoocHJvamVjdC1zZWFyY2gsIHByb2plY3QtcXVlcnktcmVw bGFjZS1yZWdleHApOiBSZW1vdmUgbm93LXVubmVlZGVkCndvcmthcm91bmQuCi0tLQogbGlz cC9wcm9nbW9kZXMvcHJvamVjdC5lbCB8IDIwICsrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVj dC5lbAppbmRleCBmZGExMDgxZWI2Mi4uYTNmYTFiMzIwYTggMTAwNjQ0Ci0tLSBhL2xpc3Av cHJvZ21vZGVzL3Byb2plY3QuZWwKKysrIGIvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbApA QCAtNjQ3LDYgKzY0Nyw3IEBAIHByb2plY3QtLXZjLWxpc3QtZmlsZXMKICAgICAgICAgICAg IChpbmNsdWRlLXVudHJhY2tlZCAocHJvamVjdC0tdmFsdWUtaW4tZGlyCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdwcm9qZWN0LXZjLWluY2x1ZGUtdW50cmFja2VkCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcikpCisgICAgICAgICAgICAoc3Vi bW9kdWxlcyAocHJvamVjdC0tZ2l0LXN1Ym1vZHVsZXMpKQogICAgICAgICAgICAgZmlsZXMp CiAgICAgICAgKHNldHEgYXJncyAoYXBwZW5kIGFyZ3MKICAgICAgICAgICAgICAgICAgICAg ICAgICAgJygiLWMiICItLWV4Y2x1ZGUtc3RhbmRhcmQiKQpAQCAtNjgwLDEzICs2ODEsMTQg QEAgcHJvamVjdC0tdmMtbGlzdC1maWxlcwogICAgICAgIChzZXRxIGZpbGVzCiAgICAgICAg ICAgICAgKG1hcGNhcgogICAgICAgICAgICAgICAobGFtYmRhIChmaWxlKSAoY29uY2F0IGRl ZmF1bHQtZGlyZWN0b3J5IGZpbGUpKQotICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nCi0g ICAgICAgICAgICAgICAoYXBwbHkgIyd2Yy1naXQtLXJ1bi1jb21tYW5kLXN0cmluZyBuaWwg ImxzLWZpbGVzIiBhcmdzKQotICAgICAgICAgICAgICAgIlwwIiB0KSkpCisgICAgICAgICAg ICAgIChzZXEtZGlmZmVyZW5jZQorICAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZworICAg ICAgICAgICAgICAgIChhcHBseSAjJ3ZjLWdpdC0tcnVuLWNvbW1hbmQtc3RyaW5nIG5pbCAi bHMtZmlsZXMiIGFyZ3MpCisgICAgICAgICAgICAgICAgIlwwIiB0KQorICAgICAgICAgICAg ICAgc3VibW9kdWxlcykpKQogICAgICAgICh3aGVuIChwcm9qZWN0LS12Yy1tZXJnZS1zdWJt b2R1bGVzLXAgZGVmYXVsdC1kaXJlY3RvcnkpCiAgICAgICAgICA7OyBVbmZvcnR1bmF0ZWx5 LCAnbHMtZmlsZXMgLS1yZWN1cnNlLXN1Ym1vZHVsZXMnIGNvbmZsaWN0cyB3aXRoICctbycu Ci0gICAgICAgICAobGV0KiAoKHN1Ym1vZHVsZXMgKHByb2plY3QtLWdpdC1zdWJtb2R1bGVz KSkKLSAgICAgICAgICAgICAgICAoc3ViLWZpbGVzCisgICAgICAgICAobGV0ICgoc3ViLWZp bGVzCiAgICAgICAgICAgICAgICAgIChtYXBjYXIKICAgICAgICAgICAgICAgICAgIChsYW1i ZGEgKG1vZHVsZSkKICAgICAgICAgICAgICAgICAgICAgKHdoZW4gKGZpbGUtZGlyZWN0b3J5 LXAgbW9kdWxlKQpAQCAtMTMyNiw4ICsxMzI4LDcgQEAgcHJvamVjdC1zZWFyY2gKICAgKGlu dGVyYWN0aXZlICJzU2VhcmNoIChyZWdleHApOiAiKQogICAoZmlsZWxvb3AtaW5pdGlhbGl6 ZS1zZWFyY2gKICAgIHJlZ2V4cAotICAgOzsgWFhYOiBTZWUgdGhlIGNvbW1lbnQgaW4gcHJv amVjdC1xdWVyeS1yZXBsYWNlLXJlZ2V4cC4KLSAgIChjbC1kZWxldGUtaWYtbm90ICMnZmls ZS1yZWd1bGFyLXAgKHByb2plY3QtZmlsZXMgKHByb2plY3QtY3VycmVudCB0KSkpCisgICAo cHJvamVjdC1maWxlcyAocHJvamVjdC1jdXJyZW50IHQpKQogICAgJ2RlZmF1bHQpCiAgIChm aWxlbG9vcC1jb250aW51ZSkpCiAKQEAgLTEzNDgsMTAgKzEzNDksNyBAQCBwcm9qZWN0LXF1 ZXJ5LXJlcGxhY2UtcmVnZXhwCiAgICAgICAgKGxpc3QgZnJvbSB0bykpKSkKICAgKGZpbGVs b29wLWluaXRpYWxpemUtcmVwbGFjZQogICAgZnJvbSB0bwotICAgOzsgWFhYOiBGaWx0ZXIg b3V0IEdpdCBzdWJtb2R1bGVzLCB3aGljaCBhcmUgbm90IHJlZ3VsYXIgZmlsZXMuCi0gICA7 OyBgcHJvamVjdC1maWxlcycgY2FuIHJldHVybiB0aG9zZSwgd2hpY2ggaXMgYXJndWFibHkg c3Vib3B0aW1hbCwKLSAgIDs7IGJ1dCByZW1vdmluZyB0aGVtIGVhZ2VybHkgaGFzIHBlcmZv cm1hbmNlIGNvc3QuCi0gICAoY2wtZGVsZXRlLWlmLW5vdCAjJ2ZpbGUtcmVndWxhci1wIChw cm9qZWN0LWZpbGVzIChwcm9qZWN0LWN1cnJlbnQgdCkpKQorICAgKHByb2plY3QtZmlsZXMg KHByb2plY3QtY3VycmVudCB0KSkKICAgICdkZWZhdWx0KQogICAoZmlsZWxvb3AtY29udGlu dWUpKQogCi0tIAoyLjI1LjEKCg== --------------aUB1Hkq6u5pQSLx0rIrCXxXu-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 15:23:51 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 19:23:51 +0000 Received: from localhost ([127.0.0.1]:43384 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBO3-0000n2-Cz for submit@debbugs.gnu.org; Sun, 29 Oct 2023 15:23:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxBO1-0000mm-GK for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 15:23:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qxBNO-0006B5-SK; Sun, 29 Oct 2023 15:23:11 -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=MFDQK18uKruF09CdxcODKASfjLzrgpwfBEQvVKoOfYQ=; b=RUP6Z9M24lB8 z8oVKRg4rnLEZa9fjreDCSu89I94LaO5DAESjmMydGTp1IZJQAixFrqbmFb/KiHTeHXMdAUdIJoSi Yqv9CoHk0aEqvhyQ4q77o24zPwMZFfzTmSLGyVSqH/PnRD3WCB0kPz+4cwnp09pScPzw0W22+60CQ lSAYFG5N/yWyD2V5yXuYDUxjFWEvQxu3FTAIiDFAZDffHgNCnxF5SbaZnepcsTON7zAV7W7e1RDQ7 VvzEHV7hP5qjgwV2YPnumZy5uACzlXEq53FoqTKa4PpTmUZ0NE0MiQ94m5SrWbvniGHeAatrXbokM NiNkaATA+9aIn1FlVCnjNA==; Date: Sun, 29 Oct 2023 21:22:54 +0200 Message-Id: <834ji9b5dd.fsf@gnu.org> From: Eli Zaretskii To: Jim Porter In-Reply-To: <80277522-c366-2014-8b52-250634090f2e@gmail.com> (message from Jim Porter on Sun, 29 Oct 2023 10:54:28 -0700) Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program References: <83wmv6arnv.fsf@gnu.org> <80277522-c366-2014-8b52-250634090f2e@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66806 Cc: dmitry@gutov.dev, 66806@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: Sun, 29 Oct 2023 10:54:28 -0700 > Cc: dmitry@gutov.dev, 66806@debbugs.gnu.org > From: Jim Porter > > >> - (project-files pr) > >> + ;; XXX: See the comment in project-query-replace-regexp. > >> + (cl-delete-if-not #'file-regular-p (project-files pr)) > > ^^^^^^^^^^^^^^^^ > > I think we want to prefer using seq.el functions, since seq.el is > > nowadays preloaded. Is there a good reason to use cl-delete-if-not > > here? > > Well, that's just copy-pasted from some other functions in project.el. > If we want to go the minimal route, I could update all those workarounds. > > Or we could go the maximal route and fix it at its source. Here's an > updated patch for the maximal route that uses 'seq-difference'. That's up to Dmitry; from my POV it is enough that new code prefers seq.el. From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 17:42:15 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 21:42:15 +0000 Received: from localhost ([127.0.0.1]:43515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxDXz-0004Wp-2g for submit@debbugs.gnu.org; Sun, 29 Oct 2023 17:42:15 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:52369) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxDXw-0004WY-LZ for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 17:42:13 -0400 Received: from compute7.internal (compute7.nyi.internal [10.202.2.48]) by mailout.nyi.internal (Postfix) with ESMTP id 84B945C0062; Sun, 29 Oct 2023 17:41:33 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Sun, 29 Oct 2023 17:41:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-type: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=fm2; t=1698615693; x=1698702093; bh=G+ ad9i+2f/220J2rOEZZ0C9GDJE1sefG9twqPnhz+dc=; b=KqqhL10LlIHHmlpLZ2 PH5t9rl5ugyhn6kXJKeJLCxxLFq7EfiUXLCmwiejcYlasUNBv49UaQzJjek/Xe9f mhxglPmD87EXf9spwhe6uWoG01h662o0qXbRTSC7tA25+dUuSstdvZiZg7MQUGCc pHyPSk7IT1d+eWZeWFZG1fva9DWZ6keOMNEPfKsjJC690UVNnSvENW/QV64LfCj1 1aY7hdTDWsCU/jjUqjflFH61AVdbU8WqRUUJ51HZZqXBEUrevCJSseD0SqWnHjDa mEj37AocM8NNFYpMqJqI2iugaiYft8f7fMBj2Hr49l05i8h0dG1+yoeOdgdPzX/i 1nOg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type: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=fm3; t=1698615693; x=1698702093; bh=G+ad9i+2f/220 J2rOEZZ0C9GDJE1sefG9twqPnhz+dc=; b=ugatVJRNYbr0NdD7cfn+2y0CVDvZG dXTBNDiRDrM2iB9pHQJvmjyp95dh6+uHUiHilNoSmjnyT7ymW1LfByEJY+wElwBC YCmpSqL/LAhdBiXqKsciMUIFY00LLPjKl2oF8FmzYyjfkxfOIrEviw+o1QJ54YD1 g1ofg5m5b0tMX0meKUXBxexPC+xQhS20BaDxrkOAvhCPWE0HY+g/M3L2+WcrY87k reEmOePqetv7Vk+LV0AocO0n7NNn9ZbcPXYR9F/VyTAGv0YkNubnYkxqIqaJJ3FC kS2L6tv2GZbsL++xt5CFvYp7lKRAkHvy3KyJkTMYldOhhzflmQ2iwtMRA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleekgdduheduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffvfhfhjgesmhdtre ertdefjeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhht ohhvrdguvghvqeenucggtffrrghtthgvrhhnpedtjeegteeifffhjeffgfffieeiteetvd etgfeuueeiveejtdeguedvheegfeehvdenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 29 Oct 2023 17:41:32 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------os10heuQi9iOgbWx03nDw2dB" Message-ID: <7136cdaa-25ea-17f7-396c-e217d845e837@gutov.dev> Date: Sun, 29 Oct 2023 23:41:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Jim Porter , 66806@debbugs.gnu.org References: From: Dmitry Gutov In-Reply-To: X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 66806 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.2 (---) This is a multi-part message in MIME format. --------------os10heuQi9iOgbWx03nDw2dB Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Jim, On 29/10/2023 07:36, Jim Porter wrote: > By default, this is just a theoretical problem, but if you customize > 'xref-search-program-alist' and 'xref-search-program' to include some > other program, this can cause real issues. For example, I tried to add > "ag" to this list[1], and unfortunately, it just doesn't work in this > case. The results for submodules get duplicated, and there's no way I > can see with ag to search only the specified *files*, ignoring any > directories. (Looking at the definition for ripgrep, I'm guessing the > "-g '!*/'" is the trick for that program, but nothing similar works for > ag.) > > Attached are two possible patches for this: a minimal version that just > fixes 'project-find-regexp', and a maximal version that fixes this in > general, and should theoretically speed up 'project-search' and > 'project-query-replace-regexp' since they no longer need to call > 'file-regular-p' on every file. I kept this unfortunate situation around because every obvious fix brought non-negligible performance regressions: the version with file-regular-p slowed one of my examples (Mozilla's repo) by 370%. Your cl-set-difference version slowed it down by 10-14% -- better, but still something that seemed worse on balance when I tried this before, so I preferred to work around it in command implementations: the "-s" or "--no-messages" flags xref-search-program-alist. And that's not to mention usage over Tramp (which would be affected by the +1 process call that you mentioned as well, but that seems unavoidable). Anyway, after recent experience micro-optimizing list operations, I came up with this version where the impact seems minimal. WDYT? --------------os10heuQi9iOgbWx03nDw2dB Content-Type: text/x-patch; charset=UTF-8; name="project-no-submodules.diff" Content-Disposition: attachment; filename="project-no-submodules.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgYi9saXNwL3Byb2dtb2Rl cy9wcm9qZWN0LmVsCmluZGV4IGZkYTEwODFlYjYyLi5lM2U3NjU0ZTY4NyAxMDA2NDQKLS0t IGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9wcm9q ZWN0LmVsCkBAIC02NDcsNiArNjQ3LDcgQEAgcHJvamVjdC0tdmMtbGlzdC1maWxlcwogICAg ICAgICAgICAgKGluY2x1ZGUtdW50cmFja2VkIChwcm9qZWN0LS12YWx1ZS1pbi1kaXIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QtdmMtaW5jbHVkZS11bnRy YWNrZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyKSkKKyAgICAgICAg ICAgIChzdWJtb2R1bGVzIChwcm9qZWN0LS1naXQtc3VibW9kdWxlcykpCiAgICAgICAgICAg ICBmaWxlcykKICAgICAgICAoc2V0cSBhcmdzIChhcHBlbmQgYXJncwogICAgICAgICAgICAg ICAgICAgICAgICAgICAnKCItYyIgIi0tZXhjbHVkZS1zdGFuZGFyZCIpCkBAIC02ODAsMTMg KzY4MSwyNCBAQCBwcm9qZWN0LS12Yy1saXN0LWZpbGVzCiAgICAgICAgKHNldHEgZmlsZXMK ICAgICAgICAgICAgICAobWFwY2FyCiAgICAgICAgICAgICAgIChsYW1iZGEgKGZpbGUpIChj b25jYXQgZGVmYXVsdC1kaXJlY3RvcnkgZmlsZSkpCi0gICAgICAgICAgICAgIChzcGxpdC1z dHJpbmcKLSAgICAgICAgICAgICAgIChhcHBseSAjJ3ZjLWdpdC0tcnVuLWNvbW1hbmQtc3Ry aW5nIG5pbCAibHMtZmlsZXMiIGFyZ3MpCi0gICAgICAgICAgICAgICAiXDAiIHQpKSkKKyAg ICAgICAgICAgICAgKGxldCogKChmaWxlcworICAgICAgICAgICAgICAgICAgICAgIChzcGxp dC1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgKGFwcGx5ICMndmMtZ2l0LS1ydW4t Y29tbWFuZC1zdHJpbmcgbmlsICJscy1maWxlcyIgYXJncykKKyAgICAgICAgICAgICAgICAg ICAgICAgIlwwIiB0KSkKKyAgICAgICAgICAgICAgICAgICAgIHJlZikKKyAgICAgICAgICAg ICAgICAod2hlbiBzdWJtb2R1bGVzCisgICAgICAgICAgICAgICAgICA7OyBIYW5kLW9wdGlt aXplZCB2ZXJzaW9uIG9mIG5zZXQtZGlmZmVyZW5jZS4KKyAgICAgICAgICAgICAgICAgICh3 aGlsZSAobWVtYmVyIChjYXIgZmlsZXMpIHN1Ym1vZHVsZXMpCisgICAgICAgICAgICAgICAg ICAgIChzZXRxIGZpbGVzIChjZHIgZmlsZXMpKSkKKyAgICAgICAgICAgICAgICAgIChzZXRx IHJlZiBmaWxlcykKKyAgICAgICAgICAgICAgICAgICh3aGlsZSByZWYKKyAgICAgICAgICAg ICAgICAgICAgKGlmIChtZW1iZXIgKGNhZHIgcmVmKSBzdWJtb2R1bGVzKQorICAgICAgICAg ICAgICAgICAgICAgICAgKHNldGNkciByZWYgKGNkZHIgcmVmKSkKKyAgICAgICAgICAgICAg ICAgICAgICAoc2V0cSByZWYgKGNkciByZWYpKSkpKQorICAgICAgICAgICAgICAgIGZpbGVz KSkpCiAgICAgICAgKHdoZW4gKHByb2plY3QtLXZjLW1lcmdlLXN1Ym1vZHVsZXMtcCBkZWZh dWx0LWRpcmVjdG9yeSkKICAgICAgICAgIDs7IFVuZm9ydHVuYXRlbHksICdscy1maWxlcyAt LXJlY3Vyc2Utc3VibW9kdWxlcycgY29uZmxpY3RzIHdpdGggJy1vJy4KLSAgICAgICAgIChs ZXQqICgoc3VibW9kdWxlcyAocHJvamVjdC0tZ2l0LXN1Ym1vZHVsZXMpKQotICAgICAgICAg ICAgICAgIChzdWItZmlsZXMKKyAgICAgICAgIChsZXQgKChzdWItZmlsZXMKICAgICAgICAg ICAgICAgICAgKG1hcGNhcgogICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobW9kdWxlKQog ICAgICAgICAgICAgICAgICAgICAod2hlbiAoZmlsZS1kaXJlY3RvcnktcCBtb2R1bGUpCg== --------------os10heuQi9iOgbWx03nDw2dB-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 18:03:32 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 22:03:32 +0000 Received: from localhost ([127.0.0.1]:43682 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxDsZ-0005CF-Pu for submit@debbugs.gnu.org; Sun, 29 Oct 2023 18:03:32 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:53069) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxDsX-0005Bz-6r for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 18:03:30 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 00E4D5C003E; Sun, 29 Oct 2023 18:02:51 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Sun, 29 Oct 2023 18:02:50 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-transfer-encoding:content-type: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=fm2; t= 1698616970; x=1698703370; bh=lQvll08dW6rsOqqDdVSQvO0PJ3i4w/GMCq4 4zlPderw=; b=GfvgTDbKnmkj+lZdV7LyD8tJ9VaCeQJptzoIAAAvm09pO+fvRIL vSwOPt6YIrcagb6vOjcc7EbQUgFzeE2+1wvN4K34Re/9M0B7KdqppguiDdv42e2n /uzONcgthnz3ON/KefKUQ57z2ROhu7CXQSS6qvd+tc7QCch1D1i6nFMxY13uT/n1 +xuPeQE+Jxz3/2yFTpNzq4wN1Efl1s1imxB5NYaYACotVIUcmp1Jptse2ymqb4zv e3O8MvtWkZG9Ltt5yb7YXggUfEOGVyKWIbJ4Suz3ppklNMIPNTVGqoXkkAFQ1eKc tgcAE9V53M/pWgkLATj0ir0tUlDBmrHU0ZA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :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=fm3; t=1698616970; x= 1698703370; bh=lQvll08dW6rsOqqDdVSQvO0PJ3i4w/GMCq44zlPderw=; b=P /W4ru8RKJI36KqWs7LZO5JA9BsO5e8C+SA4mE4bls5OleuxRlCbrUzN2t0AFmcu8 dHSBMQ1B4J7jU6FlTEXfVy+0JnvUYyebwbcF1UkriRUYY/rLSWK5hpMXRYP3Hu3J 8S+OlJUcEX8rhy+WpC9m8G2IbtsrUeE2ucssSxLizztL9m6iv0hLNOC+c8P7buiL 6hmvZU1ktIpztdJA52RDIiLVXBkCtoH4uPNygJV44jgDJgR93qcjaAgQpqEkaf2o wz3TU5R/QSZrfzR6BxTAGyVmB0dqTEA7b2TYV0eXcsvJ4oSVPuwzqnsbNthN5Bl7 9CIgWsz1sqBk7LmGijkmw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleekgdduheehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfuvfhfhfgjtgfgsehtje ertddtfeejnecuhfhrohhmpeffmhhithhrhicuifhuthhovhcuoegumhhithhrhiesghhu thhovhdruggvvheqnecuggftrfgrthhtvghrnhepgeehtdehudejieetuedttdejkeehje etueekheffuddtjeeuvdefveeuveeiuddunecuvehluhhsthgvrhfuihiivgeptdenucfr rghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 29 Oct 2023 18:02:49 -0400 (EDT) Message-ID: <3c9c9b20-fe67-4665-5664-13c974bd9eb4@gutov.dev> Date: Mon, 30 Oct 2023 00:02:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Jim Porter , 66806@debbugs.gnu.org References: From: Dmitry Gutov In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 66806 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.2 (---) On 29/10/2023 07:36, Jim Porter wrote: > (Looking at the definition for ripgrep, I'm guessing the "-g '!*/'" is > the trick for that program, but nothing similar works for ag.) Actually, it's a failed solution which I copied from the rg's issue tracker but I didn't test it enough or it broke in some later versions, and then I put off dealing with it when finally noticed. Maybe it never worked and only could filter out directories when those are passed with a trailing slash. What should work, is adding the argument "--max-depth 0" (stopping the traversal of passed directories). For ag, the corresponding fix seems to be "--depth 0", but I haven't tested that in practice. Anyway, see the other email, which should make it all unnecessary (unless you have a 3rd party package which has to work with older project.el too). From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 18:15:31 2023 Received: (at 66806) by debbugs.gnu.org; 29 Oct 2023 22:15:31 +0000 Received: from localhost ([127.0.0.1]:43973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxE4A-0005ra-Lr for submit@debbugs.gnu.org; Sun, 29 Oct 2023 18:15:31 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:44383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxE49-0005rN-6e for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 18:15:30 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 2DB045C00FF; Sun, 29 Oct 2023 18:14:51 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Sun, 29 Oct 2023 18:14:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type: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=fm2; t= 1698617691; x=1698704091; bh=U7zg5eAa4LTRxIP2OjTQgdGhKza7ZNlU0gT 0M37ylbw=; b=gln9laRo2z8NTjCOSIvCQ7C5E6JCYcHHmLe5EShm9arJpox7al4 GRiRUnApM6P3aI9TGW9Kdz2t3ZOzdgYzFDa8RoQMoefFkElI1FsR4IOrF66dq0yK P++HUiQhwGH9ho/6WK0qZXxbfv+NxelfoWP8HxpMPS5/2hIbncBEjtR6JMrMX27T 5v/gPgvRxRBDAGVu/cI9SvtsQd9taHkepN8MK61z2+YmgRXgHV2jxq1ZnUZgrPaH +6xJLXk2n/uYEam1xLagANTQ/FNt819TF6tCe8S7a40FUqV6yT0G2KHeRBuWv8pf N9xg/VTM7I0UweJxjGmtZ1BXFqYL1WbdFUg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type: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=fm3; t= 1698617691; x=1698704091; bh=U7zg5eAa4LTRxIP2OjTQgdGhKza7ZNlU0gT 0M37ylbw=; b=eyYnjr8HCT3MLGpooroQm8m0gQg2EjO0IYKBiSyEKTDHwrQAgUv JWZ5DG5sy2JY4ZBd7CF+WMgixBT5gOsI73WOgj+S1ppJxwCYDbOz95HeSPmw9EHt eKbAudmc4d6nKaOGM6kH9GCdF1Gd6Yq76wBBgSC9McIBtQFqHgBxW8Xc1n2bsGg3 GW9gscsAyjwhTkItR8mi78iG5E5fxDr8dPjkJH/N7FhDK802e+FMuFMXIifpmfQW 5jcW2EoSfT4m1I82V5os4bZxFam/K3jGRFvxSWeaz4F0D53nl2Cmz1gHv1q9oe7f NlGLqD/wBL8aG9IQmcu/1Py4WhSEbAwSc7Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleekgdduheejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtjeertddtfeejnecuhfhrohhmpeffmhhi thhrhicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrth htvghrnhepiefgteevheevveffheeltdeukeeiieekueefgedugfefgefhudelgfefveel vdevnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepug hmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 29 Oct 2023 18:14:49 -0400 (EDT) Message-ID: <1d4683d3-197f-567e-043d-cb66eb67a95a@gutov.dev> Date: Mon, 30 Oct 2023 00:14:48 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Eli Zaretskii , Jim Porter References: <83wmv6arnv.fsf@gnu.org> From: Dmitry Gutov In-Reply-To: <83wmv6arnv.fsf@gnu.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 66806 Cc: 66806@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.2 (---) On 29/10/2023 08:06, Eli Zaretskii wrote: >> Cc:dmitry@gutov.dev >> Date: Sat, 28 Oct 2023 22:36:07 -0700 >> From: Jim Porter >> >> --- a/lisp/progmodes/project.el >> +++ b/lisp/progmodes/project.el >> @@ -960,7 +960,8 @@ project-find-regexp >> (default-directory (project-root pr)) >> (files >> (if (not current-prefix-arg) >> - (project-files pr) >> + ;; XXX: See the comment in project-query-replace-regexp. >> + (cl-delete-if-not #'file-regular-p (project-files pr)) > ^^^^^^^^^^^^^^^^ > I think we want to prefer using seq.el functions, since seq.el is > nowadays preloaded. Is there a good reason to use cl-delete-if-not > here? I'm okay with using seq with other things equal, but in this case both cl- approaches are too slow, and seq-difference is no better because of consing and indirection overhead (about 10-20% slower than current). I'd say it's a shortcoming of seq.el: only having non-destructive versions. I had some hope for cl-nset-difference, but looking at the implementation it just delegates to the non-destructive cousin (I guess providing the optimized implementation was left as TODO). From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 20:26:20 2023 Received: (at 66806) by debbugs.gnu.org; 30 Oct 2023 00:26:20 +0000 Received: from localhost ([127.0.0.1]:44035 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxG6m-0000sR-69 for submit@debbugs.gnu.org; Sun, 29 Oct 2023 20:26:20 -0400 Received: from mail-pg1-x531.google.com ([2607:f8b0:4864:20::531]:57652) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxG6h-0000sC-P6 for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 20:26:19 -0400 Received: by mail-pg1-x531.google.com with SMTP id 41be03b00d2f7-5ab53b230f1so2558879a12.3 for <66806@debbugs.gnu.org>; Sun, 29 Oct 2023 17:25:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698625537; x=1699230337; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=o0NiQ6O7eGxxy/NbFdF1EUF7i20GvrM+as4D4B5mDCs=; b=OcDVmDTKqSVFa2ewmSRlwqPGz9caoIfNOO18igziF/Vz3hZolhPPitrLIrIQm3JLHn b0vk8rW6LS04Evf5cU0MGuSpFl5nsg70L92e/vHFrxBjRAlk3IsfMigQstNBPAGdHD5K M9BgaHSZPA5Em0XeBGhFr8rOT91dEzJ1fXF3IwBmHEl0NJlQthgXiHg/Xyj7xrutKD0I Re41Mm5SXWDzOF7WqRn+0qNnZvy+OKvzLpdqwP5hfdEoaQ3r7vJoegoKvjd+aNWo/CcY +JHnN9GBJqZgEBt59acTs6dJ5nXtha+79oWOkQSTb/6OmuFmGegqQ5/rx1fuZGUKxNfb d4Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698625537; x=1699230337; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=o0NiQ6O7eGxxy/NbFdF1EUF7i20GvrM+as4D4B5mDCs=; b=qUFMZH8Kw8pZUCr+iD8q7BWxXt9MEllwDi9XS8euMjjyDxRwRaVAgl4I9lZxpdh6Uj U75QJ8THYf1xVZZ0LUyRs1Svujp0P7zkq/W1+Pfy0RNY3TrkQz/weVt1is2CP1t87m9T VeXjiwij2IDGVM8sJV17xVRXocnQEQuMtWpK6zPtg1UVehwSJ0meDRzBva22nkmD1qM/ EYj9LwbyjjEPS1y50/si9RLpgzGlo8Cz/2No6D3KPm+EmoUu+C1UKMPZ1Qt6JQc8QKZq cNxptZHv8LtPh8yYSvuQwJiT/5O4n7J7nJIjsEIYWKTk+Wft1Hix5i/B611DdcCh0A3q yv/w== X-Gm-Message-State: AOJu0Ywvg6J9dR+KvCJ/G3sYeiBa5Cs6LDlR2UB9AqT8nM5oD8lBV4l8 5avq3+h88+zSbbjn3gFNjdo= X-Google-Smtp-Source: AGHT+IEnWb3Z97RPoc+Ou6RZGtjiqImCyp73RnCWOctpoYqXaVDf8sqoOoLGSjmZD91f+JElfxDsrQ== X-Received: by 2002:a05:6a20:c901:b0:17f:c6f0:b54c with SMTP id gx1-20020a056a20c90100b0017fc6f0b54cmr4031407pzb.18.1698625536884; Sun, 29 Oct 2023 17:25: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 c5-20020a170902d90500b001cc32f46757sm2979336plz.107.2023.10.29.17.25.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Oct 2023 17:25:36 -0700 (PDT) Message-ID: <00ad1b07-9231-0731-35f9-a169c9cf6bed@gmail.com> Date: Sun, 29 Oct 2023 17:25:36 -0700 MIME-Version: 1.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Dmitry Gutov , 66806@debbugs.gnu.org References: <3c9c9b20-fe67-4665-5664-13c974bd9eb4@gutov.dev> From: Jim Porter In-Reply-To: <3c9c9b20-fe67-4665-5664-13c974bd9eb4@gutov.dev> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66806 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 10/29/2023 3:02 PM, Dmitry Gutov wrote: > What should work, is adding the argument "--max-depth 0" (stopping the > traversal of passed directories). For ag, the corresponding fix seems to > be "--depth 0", but I haven't tested that in practice. I tried that, and sadly it didn't work. That could be a bug in ag though. From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 20:58:46 2023 Received: (at 66806) by debbugs.gnu.org; 30 Oct 2023 00:58:46 +0000 Received: from localhost ([127.0.0.1]:44041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxGcA-0001jG-5m for submit@debbugs.gnu.org; Sun, 29 Oct 2023 20:58:46 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]:48499) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxGc4-0001iz-UL for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 20:58:44 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-1c9b95943beso35179115ad.1 for <66806@debbugs.gnu.org>; Sun, 29 Oct 2023 17:58:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698627482; x=1699232282; darn=debbugs.gnu.org; h=in-reply-to:from:references:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=4f1NAOSCCKC0bE6rY0Bdv1D7N0heHE36KoTG8Ek0nmI=; b=MiB1emFQn9/BnEDsX9SzCYX5u6UsWu2XxL9apQbzQ8FyzLHFFTcwatJDXm3Tl2vt+4 lbvmQNNM8xgZ/wGekUyoQZV8USNy28+u1y0rXFZMpwZNDIdPDPjUrcjpWwtjA8jtFtFt JkMlMwSHUgPBxcFvRLT0Ddr5xl/qGXTp94ITcdW4On/keGQclHR7y36/DbBNuQL8a1lt E5hKAlf0i7SyPWqyIuYfFATOwFazb74BFIL3lQRMDMwdpYTZRxk1EeC38iGFzHLjbYLf zDbNkgD4kMIqqDulThU4rfU1fW6Knhug3CWu1LCcnGUFGN4KDVQeJlQXiZnDtFJmKvHM Bbbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698627482; x=1699232282; h=in-reply-to:from:references:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=4f1NAOSCCKC0bE6rY0Bdv1D7N0heHE36KoTG8Ek0nmI=; b=vCJRHE4XUiEenf6EDwbhJG1g5ico1VyqzJwsKd9uqh+73R974f2Bnf48I+ujdz25ZI lRdXEUMxYGfYQ7Zj+IYaOA/28fqKcl4+h4tLqmLxXwf/Ox0/osNKcW4KfqZ3Y3o3Sefm tUNE7SG69pH6gnPoROq9dGYaBXuUT8nd1lpYxJXZyPtucG7Ly7P7ZzragNrE/beIPBRH nkA4K6ZRDFMAhwRJh2TYQDu3E6WhZF5CGIIPiQqh2bzFsOUSdZJ8U6Nf1XhKuXDXYrFK Cy2tels6YuuqxLLDMSX/ZHGSR9IxX12eYBVt18xxzZPdhZ7oklY+uGZCWVZrNSo/lfXc ItVw== X-Gm-Message-State: AOJu0Yx8okaQ0IOw/lGATezn/rOSTjpfogoVh5Lpq6cjEOsYTrY1ktKF KAHoMqhZNmjhKy3C24G8KIE= X-Google-Smtp-Source: AGHT+IHUxBAqIrcXnBz/gcZAQBxCgu9ucMeXyrEJl7k/8RDZlmjyXys7XrdiGTkLKmRs40lrfL7Miw== X-Received: by 2002:a17:902:c70c:b0:1cc:2eda:bde8 with SMTP id p12-20020a170902c70c00b001cc2edabde8mr5187906plp.24.1698627481913; Sun, 29 Oct 2023 17:58:01 -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 i11-20020a170902c94b00b001c7443d0890sm4995636pla.102.2023.10.29.17.58.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Oct 2023 17:58:01 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------MJxkvC36hvsKTwJHBfLIh4p2" Message-ID: <64f0f8b9-ea72-4bba-7d90-0e6c300e6154@gmail.com> Date: Sun, 29 Oct 2023 17:58:01 -0700 MIME-Version: 1.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Dmitry Gutov , 66806@debbugs.gnu.org References: <7136cdaa-25ea-17f7-396c-e217d845e837@gutov.dev> From: Jim Porter In-Reply-To: <7136cdaa-25ea-17f7-396c-e217d845e837@gutov.dev> X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66806 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. --------------MJxkvC36hvsKTwJHBfLIh4p2 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/29/2023 2:41 PM, Dmitry Gutov wrote: > And that's not to mention usage over Tramp (which would be affected by > the +1 process call that you mentioned as well, but that seems > unavoidable). Yeah, I don't see a way around that, unless we constructed a complex command to run via Tramp that does it all in one go. (I looked into using the "--stage" argument for "git ls-files", which gets most of the way to fixing this, but you could break that logic with evil file names not in the tree...) > Anyway, after recent experience micro-optimizing list operations, I came > up with this version where the impact seems minimal. > > WDYT? Thanks, that helped form the basis for the attached patch. It moves the 'member' call into the lambda for the original 'mapcar', and then we can just 'delq' all the nil elements. Benchmarking against the Emacs repo, this still seems to have a minimal perf impact. There might also be a benefit to using "git ls-files --recurse-submodules" when we can (i.e. when not using "-o"), but maybe we can leave that optimization for another day. --------------MJxkvC36hvsKTwJHBfLIh4p2 Content-Type: text/plain; charset=UTF-8; name="0001-Exclude-Git-submodules-from-project-files.patch" Content-Disposition: attachment; filename="0001-Exclude-Git-submodules-from-project-files.patch" Content-Transfer-Encoding: base64 RnJvbSBiMGUwMTgwNmUzNmM4NjcxMjc5ZTZmZmViNmJhMjM5NzY1NWEzZjVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMjMgMjI6MjA6NDEgLTA3MDAKU3ViamVjdDogW1BB VENIXSBFeGNsdWRlIEdpdCBzdWJtb2R1bGVzIGZyb20gJ3Byb2plY3QtZmlsZXMnCgoqIGxp c3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgKHByb2plY3QtLXZjLWxpc3QtZmlsZXMpOiBFeGNs dWRlIEdpdApzdWJtb2R1bGVzLgoocHJvamVjdC1zZWFyY2gsIHByb2plY3QtcXVlcnktcmVw bGFjZS1yZWdleHApOiBSZW1vdmUgbm93LXVubmVlZGVkCndvcmthcm91bmQuCi0tLQogbGlz cC9wcm9nbW9kZXMvcHJvamVjdC5lbCB8IDQxICsrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDIxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3Byb2plY3QuZWwgYi9s aXNwL3Byb2dtb2Rlcy9wcm9qZWN0LmVsCmluZGV4IGZkYTEwODFlYjYyLi5iYjQ0Y2ZlZmE1 NCAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHJvamVjdC5lbAorKysgYi9saXNwL3By b2dtb2Rlcy9wcm9qZWN0LmVsCkBAIC02NDcsNiArNjQ3LDcgQEAgcHJvamVjdC0tdmMtbGlz dC1maWxlcwogICAgICAgICAgICAgKGluY2x1ZGUtdW50cmFja2VkIChwcm9qZWN0LS12YWx1 ZS1pbi1kaXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2plY3QtdmMt aW5jbHVkZS11bnRyYWNrZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGly KSkKKyAgICAgICAgICAgIChzdWJtb2R1bGVzIChwcm9qZWN0LS1naXQtc3VibW9kdWxlcykp CiAgICAgICAgICAgICBmaWxlcykKICAgICAgICAoc2V0cSBhcmdzIChhcHBlbmQgYXJncwog ICAgICAgICAgICAgICAgICAgICAgICAgICAnKCItYyIgIi0tZXhjbHVkZS1zdGFuZGFyZCIp CkBAIC02NzgsMjMgKzY3OSwyNSBAQCBwcm9qZWN0LS12Yy1saXN0LWZpbGVzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSkpKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBleHRyYS1pZ25vcmVzKSkpKSkKICAgICAgICAoc2V0cSBm aWxlcwotICAgICAgICAgICAgIChtYXBjYXIKLSAgICAgICAgICAgICAgKGxhbWJkYSAoZmls ZSkgKGNvbmNhdCBkZWZhdWx0LWRpcmVjdG9yeSBmaWxlKSkKLSAgICAgICAgICAgICAgKHNw bGl0LXN0cmluZwotICAgICAgICAgICAgICAgKGFwcGx5ICMndmMtZ2l0LS1ydW4tY29tbWFu ZC1zdHJpbmcgbmlsICJscy1maWxlcyIgYXJncykKLSAgICAgICAgICAgICAgICJcMCIgdCkp KQorICAgICAgICAgICAgIChkZWxxIG5pbAorICAgICAgICAgICAgICAgICAgIChtYXBjYXIK KyAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgICAgICAg ICAgICAodW5sZXNzIChtZW1iZXIgZmlsZSBzdWJtb2R1bGVzKQorICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbmNhdCBkZWZhdWx0LWRpcmVjdG9yeSBmaWxlKSkpCisgICAgICAgICAg ICAgICAgICAgIChzcGxpdC1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgIChhcHBseSAj J3ZjLWdpdC0tcnVuLWNvbW1hbmQtc3RyaW5nIG5pbCAibHMtZmlsZXMiIGFyZ3MpCisgICAg ICAgICAgICAgICAgICAgICAiXDAiIHQpKSkpCiAgICAgICAgKHdoZW4gKHByb2plY3QtLXZj LW1lcmdlLXN1Ym1vZHVsZXMtcCBkZWZhdWx0LWRpcmVjdG9yeSkKICAgICAgICAgIDs7IFVu Zm9ydHVuYXRlbHksICdscy1maWxlcyAtLXJlY3Vyc2Utc3VibW9kdWxlcycgY29uZmxpY3Rz IHdpdGggJy1vJy4KLSAgICAgICAgIChsZXQqICgoc3VibW9kdWxlcyAocHJvamVjdC0tZ2l0 LXN1Ym1vZHVsZXMpKQotICAgICAgICAgICAgICAgIChzdWItZmlsZXMKLSAgICAgICAgICAg ICAgICAgKG1hcGNhcgotICAgICAgICAgICAgICAgICAgKGxhbWJkYSAobW9kdWxlKQotICAg ICAgICAgICAgICAgICAgICAod2hlbiAoZmlsZS1kaXJlY3RvcnktcCBtb2R1bGUpCi0gICAg ICAgICAgICAgICAgICAgICAgKHByb2plY3QtLXZjLWxpc3QtZmlsZXMKLSAgICAgICAgICAg ICAgICAgICAgICAgKGNvbmNhdCBkZWZhdWx0LWRpcmVjdG9yeSBtb2R1bGUpCi0gICAgICAg ICAgICAgICAgICAgICAgIGJhY2tlbmQKLSAgICAgICAgICAgICAgICAgICAgICAgZXh0cmEt aWdub3JlcykpKQotICAgICAgICAgICAgICAgICAgc3VibW9kdWxlcykpKQorICAgICAgICAg KGxldCAoKHN1Yi1maWxlcworICAgICAgICAgICAgICAgIChtYXBjYXIKKyAgICAgICAgICAg ICAgICAgKGxhbWJkYSAobW9kdWxlKQorICAgICAgICAgICAgICAgICAgICh3aGVuIChmaWxl LWRpcmVjdG9yeS1wIG1vZHVsZSkKKyAgICAgICAgICAgICAgICAgICAgIChwcm9qZWN0LS12 Yy1saXN0LWZpbGVzCisgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCBkZWZhdWx0LWRp cmVjdG9yeSBtb2R1bGUpCisgICAgICAgICAgICAgICAgICAgICAgYmFja2VuZAorICAgICAg ICAgICAgICAgICAgICAgIGV4dHJhLWlnbm9yZXMpKSkKKyAgICAgICAgICAgICAgICAgc3Vi bW9kdWxlcykpKQogICAgICAgICAgICAoc2V0cSBmaWxlcwogICAgICAgICAgICAgICAgICAo YXBwbHkgIyduY29uYyBmaWxlcyBzdWItZmlsZXMpKSkpCiAgICAgICAgOzsgJ2dpdCBscy1m aWxlcycgcmV0dXJucyBkdXBsaWNhdGUgZW50cmllcyBmb3IgbWVyZ2UgY29uZmxpY3RzLgpA QCAtMTMyNiw4ICsxMzI5LDcgQEAgcHJvamVjdC1zZWFyY2gKICAgKGludGVyYWN0aXZlICJz U2VhcmNoIChyZWdleHApOiAiKQogICAoZmlsZWxvb3AtaW5pdGlhbGl6ZS1zZWFyY2gKICAg IHJlZ2V4cAotICAgOzsgWFhYOiBTZWUgdGhlIGNvbW1lbnQgaW4gcHJvamVjdC1xdWVyeS1y ZXBsYWNlLXJlZ2V4cC4KLSAgIChjbC1kZWxldGUtaWYtbm90ICMnZmlsZS1yZWd1bGFyLXAg KHByb2plY3QtZmlsZXMgKHByb2plY3QtY3VycmVudCB0KSkpCisgICAocHJvamVjdC1maWxl cyAocHJvamVjdC1jdXJyZW50IHQpKQogICAgJ2RlZmF1bHQpCiAgIChmaWxlbG9vcC1jb250 aW51ZSkpCiAKQEAgLTEzNDgsMTAgKzEzNTAsNyBAQCBwcm9qZWN0LXF1ZXJ5LXJlcGxhY2Ut cmVnZXhwCiAgICAgICAgKGxpc3QgZnJvbSB0bykpKSkKICAgKGZpbGVsb29wLWluaXRpYWxp emUtcmVwbGFjZQogICAgZnJvbSB0bwotICAgOzsgWFhYOiBGaWx0ZXIgb3V0IEdpdCBzdWJt b2R1bGVzLCB3aGljaCBhcmUgbm90IHJlZ3VsYXIgZmlsZXMuCi0gICA7OyBgcHJvamVjdC1m aWxlcycgY2FuIHJldHVybiB0aG9zZSwgd2hpY2ggaXMgYXJndWFibHkgc3Vib3B0aW1hbCwK LSAgIDs7IGJ1dCByZW1vdmluZyB0aGVtIGVhZ2VybHkgaGFzIHBlcmZvcm1hbmNlIGNvc3Qu Ci0gICAoY2wtZGVsZXRlLWlmLW5vdCAjJ2ZpbGUtcmVndWxhci1wIChwcm9qZWN0LWZpbGVz IChwcm9qZWN0LWN1cnJlbnQgdCkpKQorICAgKHByb2plY3QtZmlsZXMgKHByb2plY3QtY3Vy cmVudCB0KSkKICAgICdkZWZhdWx0KQogICAoZmlsZWxvb3AtY29udGludWUpKQogCi0tIAoy LjI1LjEKCg== --------------MJxkvC36hvsKTwJHBfLIh4p2-- From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 22:01:43 2023 Received: (at 66806-done) by debbugs.gnu.org; 30 Oct 2023 02:01:43 +0000 Received: from localhost ([127.0.0.1]:44106 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxHb3-0003VC-SH for submit@debbugs.gnu.org; Sun, 29 Oct 2023 22:01:43 -0400 Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:43293) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxHay-0003Ul-Nv for 66806-done@debbugs.gnu.org; Sun, 29 Oct 2023 22:01:40 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id C62D73200900; Sun, 29 Oct 2023 22:00:55 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sun, 29 Oct 2023 22:00:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-transfer-encoding:content-type: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=fm2; t= 1698631255; x=1698717655; bh=LKjoJkLxr6pQaAJG4Qa47dQ37KYM8gh94NB N3GIuOCg=; b=DS7fCxJy8I69EqQ+RJT/bUUPG+HzKhV3xHj3YCwDpn7CfdwdxCK cT2iFQnpwUYYNZaSAcOKPesu3+I0Uennu+r3qYwTwelPDPLGrsZgB6ZDXvOmNYOh 5j+kv2wgUS0abepFKZIFSraUKDkPn0SkkgCVZu/4iEmjNhXUi+ZzMxLS1dmP21EI tykZIuOq2TbIEYgusYAOMywwBDRPJFeUPmjBa/xUYPURpawTubDRGc5UtSLJSKk8 2DISkVhON+c+Wqrruxe1El/J/Cc0v2Fe1bNURmrZpWK4KK+GPpTFH2igN48cTitX oxXiwd0wZ0QSJkIOfPtBVZxk+irKxtOzxgQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :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=fm3; t=1698631255; x= 1698717655; bh=LKjoJkLxr6pQaAJG4Qa47dQ37KYM8gh94NBN3GIuOCg=; b=F DehorE/jcit5KSSD6pQNGrrr74l/p5oDqHB59JKZ8zAvokfwAuOybPi1Rzwr3HVc QUYBiD2pgGBPfHOLIiJI05wvg04LCmOncIF7eeNzAP1sYN8Er0cZ7y7oInw587A8 cM3Js6XLVUZxVEOl8J6ZRIfeoDJcD7lymPJikGqVtjET11fydEIoLyfdUXMYR2V+ TRPVISkmlGTvcI8r229skOfg7spvrEkM1mPVuTP7gHzkqRiIRYQeKbQpCaFtOscj D3lr7CxbNg/2GedAEylovgIa97nhpGBgyomLebbAnl4wl1AWCvUqHGtQzhfvWtJC RmXVbzZsUg8f2EwG4Pjrw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrleelgdegfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfuffvfhfhjggtgfesthejre dttdefjeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhht ohhvrdguvghvqeenucggtffrrghtthgvrhhnpeeghedthedujeeiteeutddtjeekheejte eukeehffdutdejuedvfeevueevieduudenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 29 Oct 2023 22:00:54 -0400 (EDT) Message-ID: Date: Mon, 30 Oct 2023 04:00:51 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: Jim Porter , 66806-done@debbugs.gnu.org References: <7136cdaa-25ea-17f7-396c-e217d845e837@gutov.dev> <64f0f8b9-ea72-4bba-7d90-0e6c300e6154@gmail.com> From: Dmitry Gutov In-Reply-To: <64f0f8b9-ea72-4bba-7d90-0e6c300e6154@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.2 (--) X-Debbugs-Envelope-To: 66806-done 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.2 (---) Version: 30.1 On 30/10/2023 02:58, Jim Porter wrote: > On 10/29/2023 2:41 PM, Dmitry Gutov wrote: >> And that's not to mention usage over Tramp (which would be affected by >> the +1 process call that you mentioned as well, but that seems >> unavoidable). > > Yeah, I don't see a way around that, unless we constructed a complex > command to run via Tramp that does it all in one go. > > (I looked into using the "--stage" argument for "git ls-files", which > gets most of the way to fixing this, but you could break that logic with > evil file names not in the tree...) Filtering out gitlinks based on the mode bits? Clever. Would probably slow down the parsing of the output, though. Not sure by how much. >> Anyway, after recent experience micro-optimizing list operations, I >> came up with this version where the impact seems minimal. >> >> WDYT? > > Thanks, that helped form the basis for the attached patch. It moves the > 'member' call into the lambda for the original 'mapcar', and then we can > just 'delq' all the nil elements. Benchmarking against the Emacs repo, > this still seems to have a minimal perf impact. Ah, nice. delq is pretty handy to abbreviate the relinking. We could combine both steps to eliminate an extra list altogether, but that only yields a further 2-3% improvement. Maybe later. > There might also be a benefit to using "git ls-files > --recurse-submodules" when we can (i.e. when not using "-o"), but maybe > we can leave that optimization for another day. As long as it doesn't result in too much code duplication. Anyway, I've pushed your latest patch. Thanks! And closing. From debbugs-submit-bounces@debbugs.gnu.org Sun Oct 29 23:54:05 2023 Received: (at 66806) by debbugs.gnu.org; 30 Oct 2023 03:54:05 +0000 Received: from localhost ([127.0.0.1]:44119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxJLp-0006S6-Bd for submit@debbugs.gnu.org; Sun, 29 Oct 2023 23:54:05 -0400 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:55320) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxJLm-0006Ra-Dp for 66806@debbugs.gnu.org; Sun, 29 Oct 2023 23:54:03 -0400 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-27ddc1b1652so3494678a91.2 for <66806@debbugs.gnu.org>; Sun, 29 Oct 2023 20:53:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698638003; x=1699242803; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=xM5dLW/m5IyunEx/Jw/MSGRAaKAQEtqwznH6ftAxBQY=; b=llFA0FGdeaf+fRietTkCSpm3HX3VjqbupqoZ4dqzb0Us2NubzuL8hAVAuOiBAjw947 8axzLwLhStomhv4Hg2T0m0x87tO3o2Gga3PfVA1nKhjqV6Jvno7D5QLjmqBkXFavNDwR 6wWqyvZWkb37Eq4RB0CAUCcXQ8UprbJTyFkWp1d0QxZsSTS8MYu2btx9mmEYrgm26RPX fNMMDHbnFSlGhuqc7bmFZ9yKOcwtQuaoMmhvRt77TZBOxysK8M2QmoX79DJI584/rI3c b5QebXqNhBhDQmr5Dq0XV/wFuvi5ahEE7eE4CljIZFhol5tz9E4Osah25pmuPkEfWUpZ XR/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698638003; x=1699242803; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=xM5dLW/m5IyunEx/Jw/MSGRAaKAQEtqwznH6ftAxBQY=; b=EHFmsutyBVz7nVXVRgDKr2gnsHIBRiEDmOCsafoR9dqf7sqrUCzebclBvtOJbVoU0F rq6lIU7HOvhUKL5l+fUqJy0nuPhiDWXr8+GzQ4WubqrluekB29rUqIQcnQkIy3y88IkH 1w0SJyH3SGl5V2a0SIikho+FgKTkzs6aUMRqlo0tai+8EgdasyvOrF4+e5xOeP/o48mk /ZZA66W+1cKgX5+98mTEM2oyDcyKojdXZzJ4k7PlmZFqrt3YqBUMyPnXsVpO+hrJvqmj zon2OKB6g5XJe2tI22V4nNB81bIybFROJX9cfWfs5ENfXLyJ7+bjxKr1flzvPJcE++Z4 tmwg== X-Gm-Message-State: AOJu0YzEamq3Ew+wzzeKuO/5cd0OeJc1PxyeDF9C5QqW3KfaSEQ2Z2UP H8fDy4iY0ofELWEuXJZjD7H796QEjD0= X-Google-Smtp-Source: AGHT+IFpWkhVgaI2R+YqAXC3z2FZ2Zxid721xp6Kla+Q+sMhsxTaxlXj00MJJKBdKoO5fnThex5zIA== X-Received: by 2002:a17:90a:e654:b0:280:17a2:a90d with SMTP id ep20-20020a17090ae65400b0028017a2a90dmr5577585pjb.4.1698638003388; Sun, 29 Oct 2023 20:53: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 p13-20020a17090a348d00b002609cadc56esm4989696pjb.11.2023.10.29.20.53.22 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Oct 2023 20:53:23 -0700 (PDT) Message-ID: Date: Sun, 29 Oct 2023 20:53:23 -0700 MIME-Version: 1.0 Subject: Re: bug#66806: 30.0.50; [PATCH] 'project-find-regexp' passes Git submodules to the search program Content-Language: en-US To: 66806@debbugs.gnu.org, dmitry@gutov.dev References: <7136cdaa-25ea-17f7-396c-e217d845e837@gutov.dev> <64f0f8b9-ea72-4bba-7d90-0e6c300e6154@gmail.com> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66806 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 10/29/2023 7:00 PM, Dmitry Gutov wrote: > On 30/10/2023 02:58, Jim Porter wrote: >> (I looked into using the "--stage" argument for "git ls-files", which >> gets most of the way to fixing this, but you could break that logic >> with evil file names not in the tree...) > > Filtering out gitlinks based on the mode bits? Clever. Well, it'd be even more clever if it weren't for the issue I mentioned. ;) > Anyway, I've pushed your latest patch. Thanks! And closing. Thanks for merging! From unknown Thu Aug 14 18:36:05 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 27 Nov 2023 12: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