all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Mattias Engdegård" <mattiase@bredband.net>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: 13369@debbugs.gnu.org
Subject: bug#13369: 24.1; compile message parsing slow because of omake hack
Date: Wed, 9 Jan 2013 12:11:33 +0100	[thread overview]
Message-ID: <147C0505-44B3-4A7B-8328-A7B27D207ABD@bredband.net> (raw)
In-Reply-To: <jwvy5g32ktc.fsf-monnier+emacs@gnu.org>

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.






  reply	other threads:[~2013-01-09 11:11 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-06 20:03 bug#13369: 24.1; compile message parsing slow because of omake hack Mattias Engdegård
2013-01-07  1:24 ` Glenn Morris
2013-01-07  1:41   ` Mattias Engdegård
2013-01-07  8:14     ` Glenn Morris
2013-01-07 21:50       ` Mattias Engdegård
2013-01-08 20:14         ` Glenn Morris
2013-01-08 21:09           ` Mattias Engdegård
2013-01-08 22:40             ` Glenn Morris
2013-01-09  1:47               ` Stefan Monnier
2013-01-09 11:11                 ` Mattias Engdegård [this message]
2013-01-09 13:42                   ` Jambunathan K
2013-01-09 14:31                     ` Mattias Engdegård
2013-01-09 15:17                       ` Jambunathan K
2013-01-10 18:55                         ` Mattias Engdegård
2013-01-10 19:34                           ` Stefan Monnier
2013-01-09 20:20                   ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=147C0505-44B3-4A7B-8328-A7B27D207ABD@bredband.net \
    --to=mattiase@bredband.net \
    --cc=13369@debbugs.gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.