Subject: Re: bug#64543: [PATCH] package-report-bug: don't fail on custom groups defined by eval

From: Philip Kaludercic <[email-masked]>
Date: Sun, 16 Jul 2023 12:33:59 +0000

[email-masked] writes:

> Philip Kaludercic <[email-masked]> writes:
>
>> Eli Zaretskii <[email-masked]> writes:
>>
>>>> Date: Sat, 15 Jul 2023 09:12:48 +0000 (UTC)
>>>> From: Spencer Baugh <[email-masked]>
>>>> Cc: Philip Kaludercic <[email-masked]>, [email-masked],
>>>> 	[email-masked]
>>>> 
>>>> On Jul 15, 2023 04:57, Eli Zaretskii <[email-masked]> wrote:
>>>> 
>>>>  >   >> Previously we just assumed that the car of an element of 
>>>>  >   >> custom-current-group-alist was a filename.  But actually it
>>>>  >   >> can be nil
>>>>  >   >> if a custom group was defined by just evaling Lisp. 
>>>>  >   > 
>>>>  >   > Where is this behaviour documented?  I couldn't reproduce it with a 
>>>>  >   > simple experiment. 
>>>>  > 
>>>>  >   To reproduce: 
>>>>  >   M-: (defgroup mygroup nil "my group") RET 
>>>>  > 
>>>>  > The patch would ensure that if groups like these are defined (which 
>>>>  > might happen by mistake), then `package-report-bug' will remain robust 
>>>>  > and not fail due to a unrelated issue. 
>>>> 
>>>>  Is this case important enough to make this change so late in the 
>>>>  pretest?  Spencer, how did you bump into this situation in Real Life?
>>>> 
>>>> I evaled a buffer containing a defgroup with C-c C-e (or maybe just
>>>> a region?)
>>>
>>> Why did you do that?
>>
>> Evaluating an entire buffer with C-c C-e is not unreasonable, but it
>> will not bind `load-file-name', which `load-file' would have done, but
>> there is no binding for that.
>
> Maybe we should add a binding for load-file?  Or maybe C-c C-e should
> bind load-file-name if the region is not active?

I am not familiar enough with the intention between distinguishing
evaluation and loading to comment on this, or where the distinction
/should/ matter.

> Btw, just curious: how do others test modifications they make to Lisp
> files?  I usually make a couple changes to several functions or
> variables and then reloading the whole file is easier than going defun
> by defun.

I either eval the defuns right after editing them using C-M-x or I'd
infrequently use M-x load-file.