GNU bug report logs - #49866
28.0.50; gnus-summary-exit from the transient search buffer giving error

Previous Next

Package: emacs;

Reported by: Pankaj Jangid <pankaj <at> codeisgreat.org>

Date: Wed, 4 Aug 2021 06:42:02 UTC

Severity: normal

Tags: moreinfo

Merged with 49877

Found in version 28.0.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: Pankaj Jangid <pankaj <at> codeisgreat.org>
Cc: "Basil L. Contovounesios" <contovob <at> tcd.ie>, 49866 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi <at> gnus.org>, Andrew Cohen <cohen <at> bu.edu>, akater <nuclearspace <at> gmail.com>
Subject: bug#49866: 28.0.50; gnus-summary-exit from the transient search buffer giving error
Date: Sat, 07 Aug 2021 15:56:12 -0700
On 08/07/21 10:56 AM, Pankaj Jangid wrote:
> Eric Abrahamsen <eric <at> ericabrahamsen.net> writes:
>
>> On 08/06/21 19:14 PM, akater wrote:
>>> I was not aware of list-load-path-shadows but it doesn't show anything
>>> map-related.
>>
>> "make bootstrap" seems to have solved the problem for me. It's always
>> "make bootstrap"!!
>
> Now-a-days, I rely on complete cleanup. So I do,
>
> git checkout . && git pull && ./autogen.sh && ./configure && make -j8
>
> But this hasn’t solved the issue at my end.

Man, I have provided some really unhelpful suggestions in the course of
this thread. Turns out it wasn't "make bootstrap" (though that did
appear to work, just once), but in fact was some code in EBDB after all.
This method definition:

(cl-defmethod ebdb-records-cite ((_style (eql list))
				 (records list))
  (mapconcat (lambda (pair)
	       (format "%s <%s>"
		       ;; TODO: Wrap non-ASCII record names in double
		       ;; quotes?
		       (ebdb-string (car pair))
		       (ebdb-string (cdr pair))))
	     records "\n"))

uses the unquoted symbol 'list in the specializer, which I'd always
understood to be the normal way of doing it. Now that eql specializers
are evaluated, eval'ling the above definition apparently hoses all
methods specializing on (eql 'list) everywhere in Emacs, until they are
re-evaluated. I've got unquoted eql symbols all over the place in EBDB
and they work fine -- apparently only because in the other cases the
symbols don't clash with those used elsewhere.

This is a sneaky bug. Assuming that the quoted version of the
specializer is backward compatible with earlier code, I will of course
fix EBDB to use that. But NEWS says:

For compatibility, '(eql SYMBOL)' does not evaluate SYMBOL, for now.

Which kind of makes it sound like list should just be treated as 'list?
And the manual doesn't say anything about it at all. And does the same
change need to be to HEAD specializers?

In short, I still have questions :)

Eric




This bug report was last modified 3 years and 347 days ago.

Previous Next


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