From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#12796: Optimize `ido-completing-read' for larger lists with flex matching enabled Date: Wed, 07 Nov 2012 21:05:54 -0500 Message-ID: References: <5096040B.50002@yandex.ru> <50982835.2050106@yandex.ru> <5099DE35.2060402@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1352340368 5908 80.91.229.3 (8 Nov 2012 02:06:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 8 Nov 2012 02:06:08 +0000 (UTC) Cc: Leo , 12796@debbugs.gnu.org, Kim Storm To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Nov 08 03:06:17 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TWHVZ-0005nB-Aq for geb-bug-gnu-emacs@m.gmane.org; Thu, 08 Nov 2012 03:06:17 +0100 Original-Received: from localhost ([::1]:50204 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWHVQ-0008Fz-05 for geb-bug-gnu-emacs@m.gmane.org; Wed, 07 Nov 2012 21:06:08 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:57339) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWHVM-0008Fa-ME for bug-gnu-emacs@gnu.org; Wed, 07 Nov 2012 21:06:05 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TWHVL-0007ps-JG for bug-gnu-emacs@gnu.org; Wed, 07 Nov 2012 21:06:04 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44808) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TWHVL-0007po-G7 for bug-gnu-emacs@gnu.org; Wed, 07 Nov 2012 21:06:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TWHVK-0004TP-BU for bug-gnu-emacs@gnu.org; Wed, 07 Nov 2012 21:06:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Stefan Monnier Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 08 Nov 2012 02:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 12796 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 12796-submit@debbugs.gnu.org id=B12796.135234035717185 (code B ref 12796); Thu, 08 Nov 2012 02:06:02 +0000 Original-Received: (at 12796) by debbugs.gnu.org; 8 Nov 2012 02:05:57 +0000 Original-Received: from localhost ([127.0.0.1]:55059 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TWHVF-0004T8-6i for submit@debbugs.gnu.org; Wed, 07 Nov 2012 21:05:57 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.182]:61712) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TWHVD-0004T0-1z for 12796@debbugs.gnu.org; Wed, 07 Nov 2012 21:05:55 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAG6Zu0/O+LEi/2dsb2JhbABEtBGBCIIVAQEEAVYjBQsLDiYSFBgNJIgcBboJkEQDiEKacYFYgwc X-IronPort-AV: E=Sophos;i="4.75,637,1330923600"; d="scan'208";a="206712351" Original-Received: from 206-248-177-34.dsl.teksavvy.com (HELO ceviche.home) ([206.248.177.34]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 07 Nov 2012 21:05:54 -0500 Original-Received: by ceviche.home (Postfix, from userid 20848) id 5338A6610A; Wed, 7 Nov 2012 21:05:54 -0500 (EST) In-Reply-To: <5099DE35.2060402@yandex.ru> (Dmitry Gutov's message of "Wed, 07 Nov 2012 08:06:13 +0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:66608 Archived-At: > - (setq re (mapconcat #'regexp-quote (split-string ido-text "") ".*")) > + (setq re (mapconcat #'regexp-quote (split-string ido-text "" t) > ".*")) Sounds like a good change. Tho: (mapconcat (lambda (c) (regexp-quote (string c))) ido-text ".*") would work as well. You could try to speed up the regexp matching some more by eliminating backtracking (which should mostly eliminate a few pathological cases): (let ((first t)) (mapconcat (lambda (c) (if first (progn (setq first nil) (regexp-quote (string c))) (concat "[^" (string c) "]*" (regexp-quote (string c))))) ido-text "")) > I'm still going to see if I can make while-no-input work here, though. Yes, that'd be very welcome. Stefan