GNU bug report logs - #58875
29.0.50; emoji-insert triggers a Lisp error

Previous Next

Package: emacs;

Reported by: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>

Date: Sat, 29 Oct 2022 20:29:02 UTC

Severity: normal

Found in version 29.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 58875 <at> debbugs.gnu.org (full text, mbox):

From: Jonas Bernoulli <jonas <at> bernoul.li>
To: Kévin Le Gouguec <kevin.legouguec <at> gmail.com>,
 58875 <at> debbugs.gnu.org
Cc: Lars Ingebrigtsen <larsi <at> gnus.org>
Subject: Re: bug#58875: 29.0.50; emoji-insert triggers a Lisp error
Date: Wed, 02 Nov 2022 23:39:04 +0100
Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:

> Kévin Le Gouguec <kevin.legouguec <at> gmail.com> writes:
>
>> If I revert 2022-10-28 "* lisp/transient.el: Update to package version
>> v0.3.7-173-g81b29ca" (de5a3fa1e5), then I no longer get an error.
>>
>> Haven't dug deeper yet.  FWIW it's not clear to me if the fault lies on
>> the side of transient.el or emoji.el: Magit and rg.el's transients work
>> fine AFAICT.
>
> Bisecting the transient repo with…
>
> ~/src/emacs/master/src/emacs -Q --batch \
>     -L ~/.emacs.d/elpa/compat-28.1.2.2  \
>     -L ~/src/emacs/transient/lisp       \
>     -eval '(emoji-insert)'              || false
>
> … points to:
>
>   ea851f3bde0b769b04ad03ab1a1341c013d0ddc6 is the first bad commit
>   commit ea851f3bde0b769b04ad03ab1a1341c013d0ddc6
>   Author: Jonas Bernoulli <jonas <at> bernoul.li>
>   Date:   Thu Oct 20 12:19:22 2022 +0200
>
>       Turn suffix specifications into code instead of data
>
>       The macro `transient-define-prefix' manipulates its GROUP arguments,
>       but until now it expanded to new vectors using vector syntax, i.e.,
>       data.  An effort was made to evaluate lambda expressions, but that did
>       not really work.
>
>       Now the GROUP arguments are expanded into code, which evaluates to new
>       vectors.  This way lambda expressions are automatically evaluated and
>       byte-compiled, but we now have to take care to quote certain lists and
>       symbols.
>
>       Functions such as `transient-insert-suffix' take group and suffix
>       specs of the same form as `transient-define-prefix' but because there
>       is no macro expansion step, they have to `eval' the result of parsing
>       these specifications.
>
>       Add a new macro `transient-define-groups', which can be used to define
>       suffix groups that are shared between multiple prefix commands, but
>       don't use it for `transient-common-commands' to avoid having to make
>       a bunch of functions available at compile time.
>
> Still haven't actually looked at what the fuss is about.  Based solely
> on emoji.el's use of internal transient-- functions, I'd be tempted to
> conclude that emoji--define-transient needs to be updated 🤔

Fixed with da89281837ae85b7656070b7afbd3e6d94293b88.  Thanks for the
report.

     Cheers,
     Jonas




This bug report was last modified 2 years and 197 days ago.

Previous Next


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