all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
Cc: martin rudalics <rudalics@gmx.at>,
	emacs-devel@gnu.org, Richard Stallman <rms@gnu.org>,
	Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw.
Date: 14 Dec 2006 08:36:42 +0100	[thread overview]
Message-ID: <20061214084713.GA1333@muc.de> (raw)
In-Reply-To: <87odq72ssy.fsf@stupidchicken.com>

Good morning/evening, Chong!

On Wed, Dec 13, 2006 at 08:02:37PM -0500, Chong Yidong wrote:
> >> In any case, could someone check in Martin's optimization to
> >> c-beginning-of-defun-raw, or send me the patch with a changelog so
> >> that I can check it in?

> > Chong, especially: Please load xdisp.c with the following patch, and tell
> > me whether or not its slowness is still a problem.

> Before the changes beginning-to-defun-raw, doing M-> to move to the
> end of xdisp.c is instantaneous.

Hey, that's not fair!  When you raised this problem, you were
complaining about how slow a M-v was, after having got to EOF.  Is this
M-v now acceptably fast for you on your 1.7 GHz machine?

> With the patch applied, M-> takes four seconds.  This is on a Pentium 4
> 1700MHz computer.

It's worth pointing out that this is only the first time.  If you then
do M-< and another M->, these are then instantaneous.  If (some) cache
later gets disrupted, then the M-> would be a bit slow again.

Do you have any idea why M->, which is surely nothing more than
(goto-char (point-max)) is so slow?  I have an idea it is the filling of
CC Mode's cache.

> Is it really so bad to revert the changes for now?

Yes.

By "for now", you mean for Emacs 22.  If the changes are reverted "for
now", they'll stay reverted until the release of Emacs 23, sometime
around 2011.

> If the only files misfontified are Emacs source files, I don't think
> this "fix" is necessary for Emacs 22---especially if the files in
> question can be tweaked to avoid the bug.

It isn't only Emacs source files.  It happens a lot in normal users'
files.c.  There's a FAQ about it in the CC Mode manual.  After all,
having parentheses inside strings and comments in C is perfectly valid
and acceptable syntax, and it looks like a bug (which indeed it is), if
Emacs can't fontify such things properly.

xdisp.c, at ~750k, is an unusually large source file.  A 1.7 GHz machine
will become unusually old and slow during the lifetime of Emacs 22.

> (AFAIK, the issue of how to see this problem was never discussed on
> this mailing list, but I've certainly never come across it in my
> frequent perusal of the Emacs sources.)

The problem here is that CC Mode sets opic0ids to nil in a hard coded
fashion.  The solution must be that opic0ids in CC Mode should be nil by
default, yet give the user a way to set it to t.  How about the
following:

open-paren-in-column-0-is-defun-start should become a buffer-local
variable, with default value 'mode.  This symbol will mean "use the
major mode's default for the variable".  This will give the user the
flexibility she needs.

-- 
Alan.

  reply	other threads:[~2006-12-14  7:36 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87y7po2e9b.fsf@leeloo.anubex.internal>
     [not found] ` <45741FBE.3000107@swipnet.se>
     [not found]   ` <45742464.1090504@gmx.at>
2006-12-04 21:17     ` Mysterious fontification/C++ context issue Alan Mackenzie
2006-12-06  0:47       ` Richard Stallman
2006-12-06  9:04       ` martin rudalics
2006-12-06 12:22         ` Kim F. Storm
2006-12-06 16:31           ` Chong Yidong
2006-12-07  4:59             ` Richard Stallman
2006-12-09 17:46               ` Chong Yidong
2006-12-09 20:09                 ` Stefan Monnier
2006-12-11  1:05                   ` Richard Stallman
2006-12-11  2:27                     ` Stefan Monnier
2006-12-11  4:38                     ` Stefan Monnier
2006-12-12 16:24                       ` Chong Yidong
2006-12-12 17:10                         ` Stefan Monnier
2006-12-10  4:24                 ` Richard Stallman
2006-12-10  0:35               ` Alan Mackenzie
2006-12-10  1:11                 ` Chong Yidong
2006-12-10  9:12                   ` Alan Mackenzie
2006-12-10 12:46                     ` David Kastrup
2006-12-10 14:50                       ` Alan Mackenzie
2006-12-10 15:13                         ` David Kastrup
2006-12-10 20:30                     ` Chong Yidong
2006-12-13 21:29                       ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Alan Mackenzie
2006-12-14  1:02                         ` Chong Yidong
2006-12-14  7:36                           ` Alan Mackenzie [this message]
2006-12-14 10:47                             ` martin rudalics
2006-12-14 18:26                               ` Alan Mackenzie
2006-12-14 18:53                                 ` David Kastrup
2006-12-14 20:21                                 ` Chong Yidong
2006-12-14 20:35                                 ` Chong Yidong
2006-12-14 22:18                                   ` Alan Mackenzie
2006-12-14 22:51                                     ` Chong Yidong
2006-12-15  0:53                                     ` David Kastrup
2006-12-15 10:35                                     ` Johan Bockgård
2006-12-14 21:53                                 ` What `opic0ids' really is [was: Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw.] Stuart D. Herring
2006-12-15  7:32                                 ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw martin rudalics
2006-12-15 19:22                                   ` Alan Mackenzie
2006-12-15 22:20                                     ` David Kastrup
2006-12-16 10:17                                     ` martin rudalics
2006-12-17 11:44                                       ` Alan Mackenzie
2006-12-17 12:02                                         ` David Kastrup
2006-12-17 12:08                                           ` Alan Mackenzie
2006-12-17 12:14                                             ` David Kastrup
2006-12-17 12:26                                               ` Alan Mackenzie
2006-12-17 12:51                                                 ` David Kastrup
2006-12-17 17:28                                         ` martin rudalics
2006-12-17 18:36                                         ` Mysterious fontification/C++ context issue - Patch for c-basic-common-init Alan Mackenzie
2006-12-17 18:45                                           ` Chong Yidong
2006-12-17 22:18                                             ` Alan Mackenzie
2006-12-17 22:59                                               ` Chong Yidong
2006-12-18  0:06                                         ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Stefan Monnier
2006-12-15 23:24                               ` Stefan Monnier
2006-12-16 10:17                                 ` martin rudalics
2006-12-16 18:14                                   ` Chong Yidong
2006-12-16 18:27                                   ` martin rudalics
2006-12-16 19:00                                     ` martin rudalics
2006-12-16 19:33                                       ` Chong Yidong
2006-12-16 19:59                                         ` martin rudalics
2006-12-16 20:10                                           ` Chong Yidong
2006-12-16 21:26                                             ` Chong Yidong
2006-12-16 22:43                                               ` martin rudalics
2006-12-16 23:30                                               ` Stefan Monnier
2006-12-16 23:40                                                 ` martin rudalics
2006-12-17  0:04                                                   ` Stefan Monnier
2006-12-17  4:02                                                     ` Chong Yidong
2006-12-17 10:32                                                       ` martin rudalics
2006-12-17 10:26                                                     ` martin rudalics
2006-12-17 10:59                                                       ` David Kastrup
2006-12-17 23:23                                                       ` Stefan Monnier
2006-12-17 11:10                                                     ` Alan Mackenzie
2006-12-17 12:01                                                       ` David Kastrup
2006-12-18  0:04                                                       ` Stefan Monnier
2006-12-16 22:11                                             ` martin rudalics
2006-12-16 23:29                                           ` Stefan Monnier
2006-12-16 23:37                                             ` martin rudalics
2006-12-16 20:22                                         ` David Kastrup
2006-12-16 22:21                                           ` martin rudalics
2006-12-14 17:29                             ` Chong Yidong
2006-12-14 18:56                               ` David Kastrup
2006-12-14 22:57                               ` Alan Mackenzie
2006-12-15 22:56                           ` Stefan Monnier
2006-12-15 23:03                             ` David Kastrup
2006-12-14 10:45                         ` martin rudalics
2006-12-14 18:29                           ` Alan Mackenzie
2006-12-15 22:49                         ` Stefan Monnier
2006-12-10 21:39                     ` Mysterious fontification/C++ context issue Stefan Monnier
2006-12-10 23:14                       ` Kim F. Storm
2006-12-14  7:43                       ` Alan Mackenzie
2006-12-14  7:51                         ` Miles Bader
2006-12-15 23:36                         ` Stefan Monnier
2006-12-10  9:18                   ` martin rudalics
2006-12-11  1:23                     ` Stefan Monnier
2006-12-11  7:23                       ` martin rudalics
2006-12-11  7:36                         ` Stefan Monnier
2006-12-11  8:32                           ` martin rudalics
2006-12-11 16:30                             ` Stefan Monnier
2006-12-11  1:05                 ` Stefan Monnier
2006-12-11  1:06                 ` Richard Stallman
2006-12-06 18:44         ` Richard Stallman
2006-12-06 22:38           ` martin rudalics
2006-12-08  5:05             ` Richard Stallman
2006-12-09  9:42               ` martin rudalics
2006-12-10  4:24                 ` Richard Stallman
2006-12-10  8:38                   ` martin rudalics
2006-12-10 10:56                   ` Alan Mackenzie
2006-12-10 11:58                     ` martin rudalics
2006-12-10 14:30                       ` Slawomir Nowaczyk
2006-12-11  1:29                     ` Stefan Monnier
2006-12-06 20:52         ` Alan Mackenzie
2006-12-06 22:38           ` martin rudalics
2006-12-07  5:07           ` Stefan Monnier
2006-12-15  5:03 Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Richard Stallman
2006-12-15  6:31 ` Sean O'Rourke
2006-12-15 16:08   ` Chong Yidong
2006-12-15 16:16     ` Sean O'Rourke
2006-12-15 16:44       ` Chong Yidong
2006-12-15 20:46         ` Stuart D. Herring
2006-12-15 21:24   ` Richard Stallman
2006-12-15 22:31     ` Sean O'Rourke
2006-12-15 16:57 ` Chong Yidong
2006-12-15 23:33 ` 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=20061214084713.GA1333@muc.de \
    --to=acm@muc.de \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=rms@gnu.org \
    --cc=rudalics@gmx.at \
    /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.