From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.bugs Subject: bug#13369: 24.1; compile message parsing slow because of omake hack Date: Wed, 9 Jan 2013 12:11:33 +0100 Message-ID: <147C0505-44B3-4A7B-8328-A7B27D207ABD@bredband.net> References: <672E6DB1-196D-491C-BE42-F29CF1C7F1A5@bredband.net> <3FB0B562-759B-4486-90F4-789BF6CEA07F@bredband.net> <0AEEF1C6-8150-4E39-9CD9-30EC963D64D6@bredband.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1357729984 21206 80.91.229.3 (9 Jan 2013 11:13:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 9 Jan 2013 11:13:04 +0000 (UTC) Cc: 13369@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Jan 09 12:13:21 2013 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 1Tstav-0007Ac-D2 for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Jan 2013 12:13:17 +0100 Original-Received: from localhost ([::1]:60855 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tstaf-0006am-JU for geb-bug-gnu-emacs@m.gmane.org; Wed, 09 Jan 2013 06:13:01 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:36220) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tstaa-0006aB-5j for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:12:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TstaX-0007mn-BD for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:12:56 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44736) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TstaX-0007mj-7w for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:12:53 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1Tstag-0004Ib-8N for bug-gnu-emacs@gnu.org; Wed, 09 Jan 2013 06:13:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 09 Jan 2013 11:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13369 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 13369-submit@debbugs.gnu.org id=B13369.135772994716485 (code B ref 13369); Wed, 09 Jan 2013 11:13:02 +0000 Original-Received: (at 13369) by debbugs.gnu.org; 9 Jan 2013 11:12:27 +0000 Original-Received: from localhost ([127.0.0.1]:57977 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tsta5-0004Ho-CW for submit@debbugs.gnu.org; Wed, 09 Jan 2013 06:12:26 -0500 Original-Received: from smtprelay-b22.telenor.se ([195.54.99.213]:36028) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tsta1-0004HT-Tu for 13369@debbugs.gnu.org; Wed, 09 Jan 2013 06:12:23 -0500 Original-Received: from ipb3.telenor.se (ipb3.telenor.se [195.54.127.166]) by smtprelay-b22.telenor.se (Postfix) with ESMTP id 19B03E8C2D for <13369@debbugs.gnu.org>; Wed, 9 Jan 2013 12:11:34 +0100 (CET) X-SMTPAUTH-B2: [mategn] X-SENDER-IP: [85.229.35.241] X-LISTENER: [smtp.bredband.net] X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkGEAH5P7VBV5SPxPGdsb2JhbABEgkGBBocssl8WAwEBAQE4NIIeAQEEATgCPwULC0ZDFAaIJAq2GYxwgz9hA6lK X-IronPort-AV: E=Sophos;i="4.84,437,1355094000"; d="scan'208";a="262022080" Original-Received: from c-f123e555.032-29-73746f10.cust.bredbandsbolaget.se ([85.229.35.241]) by ipb3.telenor.se with ESMTP; 09 Jan 2013 12:11:34 +0100 In-Reply-To: X-Mailer: Apple Mail (2.936) 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:69539 Archived-At: 9 jan 2013 kl. 02.47 skrev Stefan Monnier: >>> all no omake gnu only >>> 32.7 3.4 0.3 standard code >>> 6.8 3.4 0.3 repaired regexp (escaped ^) >>> 3.4 3.4 0.3 COND expression removed >> OK, thank you. So having fixed the omake ^ issue, basically to me it >> just seems to be the case that the more entries are in >> compilation-error-regexp-alist, the slower things get. >> Maybe we should encourage people to prune it to only the entries they >> use, or maybe some less common elements should not be there by >> default. > > Yes, every entry costs time, which is why I've been resisting adding > more entries and would rather push the problem upstream to convince > the > tools's authors to stick to the standard GNU message format. Note however that the omake is still special - while its own regexp is fast and simple, its mere presence in the list causes the remaining parsing to become twice as slow (as seen from the measurements above). I'm also still somewhat suspicious of how the hack mutilates other regexps in ways that may change their meaning. In addition to fixing the regexp, I suggest omake be disabled by default because of its impact and since it's somewhat of a special need. > I think compile.el would benefit from a different regex engine where > we > could do a lex-style union of all regexp into a single automaton. That would be nice, especially if the result could be a DFA. I would also suggest switching to rx notation for the regexps. (The ^ quoting bug is one that would never have occurred with rx, and that is a very small regexp.) I actually wrote a simple regexp-to-rx translator, like rx in reverse, just to be able to make sense of the ones in compile.el. I'd be happy to share.