From: martin rudalics <rudalics@gmx.at>
To: Alan Mackenzie <acm@muc.de>
Cc: bug-cc-mode@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>,
emacs-devel@gnu.org
Subject: Re: Unbearably slow editing in .h files
Date: Sun, 24 Feb 2008 09:55:23 +0100 [thread overview]
Message-ID: <47C130FB.5000209@gmx.at> (raw)
In-Reply-To: <20080223232552.GC3476@muc.de>
> Yes, very. Sadly. It takes about 18 seconds for me (1.2 GHz Athlon).
> However, it is having to analyze over 54kBytes of C source between EOB
> and EO-last-defun. This time is taken up almost fully by the call to
> c-where-wrt-to-brace-construct. Maybe this could be optimised. Maybe,
> on the other hand, it's not reasonable to expect anything faster in this
> pathological case.
I think `c-beginning-of-defun' should also report an error within
reasonable time when defuns are malformed. How about providing some
`c-fast-beginning-of-defun' mechanism which might not be able to cater
with all possible ways to write a defun but is reasonably fast for
well-written ones?
> By comparison, if you do the same in lread.c, it takes much less than a
> second. It may be that the plethora of macros in lisp.h is causing the
> delay.
The plain idea of potentially scanning the entire buffer backwards is
tantalizing. There should be some way to avoid that.
> However, there are two problems conflated in this thread. There's the
> slowness in certain C files, and there's the way C-x 4 a calls
> c-\(beginning\|end\)-of-defun five times. Lets separate them!
>
> 5 x 18s = 1.5 minutes. This is the other thing that is slugging C-x 4 a.
> add-log-current-defun is _emulating_ c-where-wrt-to-brace-construct, and
> emulations tend to be slow. ;-)
Sure. I already mentioned in this thread that I fail to understand how
`add-log-current-defun' is organized. The problem is: Changing that
function may implicitly alter the way change logs entries get written.
This could go on - for some time - unnoticed and lead to considerable
confusions afterwards.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
next prev parent reply other threads:[~2008-02-24 8:55 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-04 21:18 patch: add-log.el: changelog find file under poin Jan Nieuwenhuizen
2007-11-06 23:45 ` Juri Linkov
2007-11-07 13:38 ` Jan Nieuwenhuizen
2007-11-09 8:40 ` Dan Nicolaescu
2007-11-09 9:40 ` Juri Linkov
2008-01-20 6:14 ` Richard Stallman
2008-01-21 3:02 ` Glenn Morris
2008-01-21 20:30 ` Richard Stallman
2008-01-21 20:35 ` Glenn Morris
2008-01-22 22:29 ` Richard Stallman
2008-01-22 22:38 ` Glenn Morris
2008-01-22 23:09 ` Dan Nicolaescu
2008-01-23 1:32 ` Juri Linkov
2008-01-23 2:25 ` Dan Nicolaescu
2008-01-23 9:28 ` Juri Linkov
2008-01-23 16:20 ` Richard Stallman
2008-01-27 19:54 ` Dan Nicolaescu
2008-01-28 10:20 ` martin rudalics
2008-01-30 2:58 ` Dan Nicolaescu
2008-02-18 19:46 ` patch: add-log.el: changelog find file under point martin rudalics
2008-02-18 20:09 ` Unbearably slow editing in .h files (was: patch: add-log.el: changelog find file under point) Stefan Monnier
2008-02-23 22:49 ` Alan Mackenzie
2008-02-23 22:51 ` Unbearably slow editing in .h files martin rudalics
2008-02-23 23:25 ` Alan Mackenzie
2008-02-24 8:55 ` martin rudalics [this message]
2008-04-02 22:07 ` Alan Mackenzie
2008-04-02 23:47 ` Dan Nicolaescu
2008-04-03 9:14 ` Alan Mackenzie
2008-04-03 13:10 ` Dan Nicolaescu
2008-04-03 14:17 ` Alan Mackenzie
2008-04-03 15:22 ` Dan Nicolaescu
2008-04-03 17:58 ` Alan Mackenzie
2008-02-24 0:37 ` Stefan Monnier
2008-02-24 8:39 ` Alan Mackenzie
2008-02-24 14:46 ` Jason Rumney
2008-02-24 19:48 ` Eli Zaretskii
2008-02-24 19:49 ` Eli Zaretskii
2008-02-24 10:28 ` Andreas Schwab
2008-02-24 13:49 ` Stefan Monnier
2008-02-24 14:41 ` Alan Mackenzie
2008-02-24 15:42 ` Stefan Monnier
2008-02-24 20:12 ` Alan Mackenzie
2008-02-24 22:29 ` Richard Stallman
2008-02-25 2:14 ` Stefan Monnier
2008-02-18 23:31 ` patch: add-log.el: changelog find file under point Juri Linkov
2008-02-19 6:34 ` martin rudalics
2008-02-20 21:29 ` Juri Linkov
2008-02-21 7:26 ` martin rudalics
2008-02-21 22:29 ` Richard Stallman
2008-02-22 19:26 ` martin rudalics
2008-02-23 19:28 ` Richard Stallman
2008-02-23 22:32 ` martin rudalics
2008-02-24 15:23 ` Richard Stallman
2008-02-24 15:23 ` Richard Stallman
2008-02-24 22:34 ` martin rudalics
2008-02-25 10:57 ` Richard Stallman
2008-02-25 14:05 ` martin rudalics
2008-01-22 0:08 ` patch: add-log.el: changelog find file under poin Juri Linkov
2008-01-22 1:17 ` Drew Adams
2008-01-22 9:54 ` Juri Linkov
2008-01-22 14:34 ` Drew Adams
2008-01-22 22:29 ` Richard Stallman
2008-01-23 1:29 ` Juri Linkov
2008-01-23 16:20 ` Richard Stallman
2008-01-28 8:55 ` Jan Nieuwenhuizen
2008-01-28 9:29 ` Johan Bockgård
2008-01-22 8:21 ` Dan Nicolaescu
2008-01-22 9:56 ` Juri Linkov
2008-01-22 23:13 ` Dan Nicolaescu
2008-01-22 22:29 ` Richard Stallman
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=47C130FB.5000209@gmx.at \
--to=rudalics@gmx.at \
--cc=acm@muc.de \
--cc=bug-cc-mode@gnu.org \
--cc=emacs-devel@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.