emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs 22.2 release plans - request for a slight delay.


From: Alan Mackenzie
Subject: Re: Emacs 22.2 release plans - request for a slight delay.
Date: Thu, 6 Mar 2008 22:38:57 +0000
User-agent: Mutt/1.5.9i

Hi, Yidong,

It's me again, causing trouble.  ;-(

On Wed, Mar 05, 2008 at 12:25:16PM -0500, Chong Yidong wrote:
> Hi,

> As a reminder, I'll be rolling the 22.1.92 pretest on Friday.  If any
> of you need to delay the pretest for whatever reason, please send an
> email.

I'm asking for a slight delay (perhaps over the weekend?) to fix a
serious bug in C mode, namely:

    Subject: Re: Unbearably slow editing in .h files
    From: martin rudalics <address@hidden> (and Stefan)
    Date: Sat, 23 Feb 2008 23:51:34 +0100
    Message-ID: <address@hidden>

    Visit lisp.h, go to the end of the buffer, and do

    M-x RET c-beginning-of-defun RET

This is horrendously slow (~30 seconds).

I've just had a look at c-beginning-of-defun, and I've narrowed the
fault down to `c-in-knr-argdecl', where the code laboriously trundles
back one paren pair at a time until it finds a "}" (or BOB).  This is
clearly suboptimal in a region with several hundred consecutive
declarations without brace-blocks.  There are ~900 consecutive
paren-pairs in the tail of lisp.h.

Even worse, c-in-knr-argdecl gets called twice, doubling the pain.

Just how many paren/bracket pairs can there be in the K&R region of the
header of a C function?  There is no absolute limit, but such a region
will typically look less extravagant than this:

   int foo (bar, baz, yuk)
       int bar [] ;
       int (*baz) (my_type) ;
       int (*) (void) (*yuk) (void) ;
   {

, which has 7 such pairs.  So perhaps if I put the limit at 32, this
will be safe for any function not appearing in the Obfuscated C
competition or deliberately written to break editors.  :-)

This will probably be a "quick and easy" change, taking, perhaps, an
hour.  However, it's probably worth while doing it calmly and carefully.
;-)

-- 
Alan Mackenzie (Nuremberg, Germany).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]