From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#64735: 29.0.92; find invocations are ~15x slower because of ignores Date: Sun, 23 Jul 2023 22:27:38 +0300 Message-ID: <837cqqtolx.fsf@gnu.org> References: <1fd5e3ed-e1c3-5d6e-897f-1d5d55e379fa@gutov.dev> <87wmyupvlw.fsf@localhost> <5c4d9bea-3eb9-b262-138a-4ea0cb203436@gutov.dev> <87tttypp2e.fsf@localhost> <87r0p030w0.fsf@yahoo.com> <83sf9f6wm0.fsf@gnu.org> <83sf9eub9d.fsf@gnu.org> <2d844a34-857d-3d59-b897-73372baac480@gutov.dev> <83bkg2tsu6.fsf@gnu.org> <83a5vmtrog.fsf@gnu.org> <1ff691d6-67fe-7aa5-75bc-435438e59152@gutov.dev> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="26611"; mail-complaints-to="usenet@ciao.gmane.io" Cc: luangruo@yahoo.com, sbaugh@janestreet.com, yantar92@posteo.net, 64735@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jul 23 21:28:26 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qNekj-0006l7-4f for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 23 Jul 2023 21:28:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qNekN-0003ru-Re; Sun, 23 Jul 2023 15:28:03 -0400 Original-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 1qNekM-0003rR-SL for bug-gnu-emacs@gnu.org; Sun, 23 Jul 2023 15:28:02 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qNekM-0004mK-KC for bug-gnu-emacs@gnu.org; Sun, 23 Jul 2023 15:28:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qNekM-0004wb-DZ for bug-gnu-emacs@gnu.org; Sun, 23 Jul 2023 15:28:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 23 Jul 2023 19:28:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 64735 X-GNU-PR-Package: emacs Original-Received: via spool by 64735-submit@debbugs.gnu.org id=B64735.169014042818931 (code B ref 64735); Sun, 23 Jul 2023 19:28:02 +0000 Original-Received: (at 64735) by debbugs.gnu.org; 23 Jul 2023 19:27:08 +0000 Original-Received: from localhost ([127.0.0.1]:41248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qNejT-0004vH-Qy for submit@debbugs.gnu.org; Sun, 23 Jul 2023 15:27:08 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47780) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qNejR-0004un-Nc for 64735@debbugs.gnu.org; Sun, 23 Jul 2023 15:27:06 -0400 Original-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 1qNejM-0004di-BW; Sun, 23 Jul 2023 15:27:00 -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=bcrmXRIWQz+FPlz0O3TCToeHfSucAGZnDgu6yX3G6Hc=; b=BFGYpifczX9y TsPSJGbb8q67YkMg+uYwrlDNOsGUNhTx7Ay3BZkh4YDZGGsekfu0JqyOPvjwncqSAWyxjn+7n25r0 N5qmNwPc5zOQ0JhsVNqnOa1QxHXr9oTXp0nBb+Vwr+poS5fsgzeopv33z977aEI6l5vKt92tZYAbU uwhNXV/VbVcE/n4QYONQh/sur0Ono/9GWLn8HxKCDRgDnHSmG6dh0ATnlrVvnY6T/AHpgUK5sJCX7 AD52tISoAGAh5kfeVtDfZ2pIDN4wL3DwU5Lq2Yp6KpbTeywzV5mGDyOxD1dOnNOCAC3J01TC08vJ9 pmhgOsb/3aSetrfAQ9RR6w==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qNejJ-0002Uj-Lz; Sun, 23 Jul 2023 15:26:59 -0400 In-Reply-To: <1ff691d6-67fe-7aa5-75bc-435438e59152@gutov.dev> (message from Dmitry Gutov on Sun, 23 Jul 2023 22:07:17 +0300) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:265925 Archived-At: > Date: Sun, 23 Jul 2023 22:07:17 +0300 > Cc: luangruo@yahoo.com, sbaugh@janestreet.com, yantar92@posteo.net, > 64735@debbugs.gnu.org > From: Dmitry Gutov > > On 23/07/2023 21:21, Eli Zaretskii wrote: > >> Date: Sun, 23 Jul 2023 20:58:24 +0300 > >> Cc: luangruo@yahoo.com, sbaugh@janestreet.com, yantar92@posteo.net, > >> 64735@debbugs.gnu.org > >> From: Dmitry Gutov > >> > >> A possible advantage of doing it earlier, is that if filtering happens > >> in C code you could do it before allocating Lisp strings > > > > That's not what happens today. And it isn't easy to do what you > > suggest, since the file names we get from the C APIs need to be > > decoded, and that is awkward at best with C strings. > > It is what happens today when 'find' is used, though. No, I was talking about what file-name-all-completions does. > Far be it from me to insist, though, but if we indeed reimplemented all > the good parts of 'find', that would make the new function a suitable > replacement/improvement, at least on local hosts (instead of it just > being used as a fallback). The basic problem here is this: the regexp or pattern to filter out ignorables is specified as a Lisp string, which is in the internal Emacs representation of characters. So to compare file names we receive either from Find or from a C API, we need either to decode the file names we receive (which in practice means they should be Lisp strings), or encode the regexp and use its C string payload.