GNU bug report logs - #64391
30.0.50; buffer narrowing slowdown regression in emacs 29

Previous Next

Packages: gnus, emacs;

Reported by: Andrew Cohen <acohen <at> ust.hk>

Date: Sat, 1 Jul 2023 00:21:02 UTC

Severity: normal

Found in version 30.0.50

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Gregory Heytings <gregory <at> heytings.org>
Cc: acohen <at> ust.hk, 64391 <at> debbugs.gnu.org, eliz <at> gnu.org, mattias.engdegard <at> gmail.com
Subject: bug#64391: buffer narrowing slowdown regression in emacs 29
Date: Sun, 09 Jul 2023 14:52:52 -0400
>  \(fn START END [:label LABEL] BODY)"
>    (declare (indent 2) (debug t))
> -  (if (eq (car rest) :label)
> +  (if (and (eq (car rest) :label)
> +           (symbolp (cadr rest)))
>        `(internal--with-restriction ,start ,end (lambda () ,@(cddr rest))
>                                   ,(cadr rest))
>      `(internal--with-restriction ,start ,end (lambda () ,@rest))))

Doesn't look right: (cadr rest) should be an *expression* that evaluates
to a symbol, so in general it won't itself be a symbol.

>>> -When the optional argument @var{label}, a symbol, is present, the
>>> -narrowing is @dfn{labeled}.  A labeled narrowing differs from a
>>> -non-labeled one in several ways:
>>> +When the optional argument @var{label}, which is evaluated to get the
>>> +label to use and must not be @code{nil},
>> What "must not be nil": the label or the result of its evaluation?
> The result of the evaluation of the label argument.  I don't know how to
> make this clearer.

Maybe:

    When the optional argument @var{label}, which should evaluate to
    a non-nil value,


-- Stefan





This bug report was last modified 1 year and 342 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.