Subject: bug#73812: 30.0.91; ERC 5.6.0.30.1: Customizing erc-modules loads ERC when starting Emacs

From: "J.P." <[email-masked]>
Date: Fri, 01 Nov 2024 23:43:43 -0700

Hi Stefan, Corwin, all,

Corwin Brust <[email-masked]> writes:

> Hi All,
>
> On Fri, Nov 1, 2024 at 9:05 PM Stefan Kangas <[email-masked]> wrote:
>>
>> "J.P." <[email-masked]> writes:
>>
>> I can only add that some of our users are very concerned with Emacs's
>> startup time, and spend a lot of time optimizing it.  Unexpectedly
>> pulling in all of ERC in some cases certainly won't help them.
>>
>> > "J.P." <[email-masked]> writes:
>> >
>> >> Eli Zaretskii <[email-masked]> writes:
>> >>
>> >>>> All in all, I'd prefer to leave this alone in Emacs 30.  We have time
>> >>>> to try reverting this on master and seeing whether it's a net win or a
>> >>>> net loss, given the past history of the issue.  (AFAIU, if you remove
>> >>>> this line, some change is pertinent in the manual?)
>> >>
>> >> It's been reverted on master for ten days now with no complaints:
>> >>
>> >>   https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1854f275
>> >>
>> >> If that's long enough to qualify as a net win, can we proceed with a
>> >> backport?
>> >
>> > It's been two weeks now since I was tasked with reverting this on master
>> > in order to assess the damage, of which none has since been reported.
>> >
>> > Apologies if I'm out of line in pressing the issue, but I'm driven by a
>> > need to advocate for ERC's users, who've suffered greatly in the past
>> > due to my cowardliness in similar situations [1]. As such, I would very
>> > much appreciate a final verdict on this matter.
>>
>> I assume that we are talking about cherry-picking commit 1854f2751e3f to
>> the emacs-30 branch.

Yes, exactly.

FWIW, something like

  diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el
  index 30641c2bd88..807ca81ed6b 100644
  --- a/lisp/erc/erc.el
  +++ b/lisp/erc/erc.el
  @@ -2263,7 +2263,7 @@ erc--sort-modules
         (cl-pushnew mod (if (get mod 'erc--module) built-in third-party)))
       `(,@(sort built-in #'string-lessp) ,@(nreverse third-party))))

  -;;;###autoload(custom-autoload 'erc-modules "erc")
  +;;;###autoload(custom-autoload 'erc-modules "erc" 'noset)

   (defcustom erc-modules '( autojoin button completion fill imenu irccontrols
                             list match menu move-to-prompt netsplit

does appear to suppress autoloading on startup while still fulfilling
our original M-x customize-option RET mission (IOW, exactly what we
want). However, I'd sooner just revert to the way things have been for
20+ years. ("Once bitten," as they say.)

>>
>> Can removing the autoload cookie cause an issue outside of ERC, or for
>> non-users of ERC?  If it cannot, I don't know that I'm in a better
>> position than you, being the ERC maintainer, to determine what kind of
>> negative impact removing it might have.  If anything, it sounds like it
>> is more risky for non-users of ERC to leave things as is?
>>
>> In summary, my view is that removing it should be low risk, and it fixes
>> a known bug.  It's arguably minor, but does affect startup performance.
>> So I think it sounds good to have the patch on emacs-30.
>>
>> Let's see if Eli or Andrea has anything to add here first, though.
>>
>
> Thank you JP and Stefan for diligence on this.  I had flagged this for
> a reply but did not manage to make one before now.  (Two weeks
> already?  Good grief.)
>
> Perhaps importantly: I strongly suspect this bug is responsible for
> corruption of my customize file.  (Unfortunately I had a bunch of
> stuff in there and wasn't good and pushed my changes to that
> particular file to the repo where I version my config, so I've lost a
> bit of work.  On the plus side: it's generally of a cosmetic nature,
> mostly face tweaks which I found it convenient to "try out" using
> customize and then, because they were good, never got around to
> encoding into proper elisp.)  I didn't/haven't completed any sort of
> minimal reproducer: I could be completely wrong that this bug is what
> caused my configuration settings to get blown away.  But the timing is
> right.

So sorry about your data loss and for whatever hand my sloppiness might
have played in such a tragedy. It does indeed sound like a serious issue
that bears investigating. Unfortunately, I'm still a certified dunce
when it comes to all things Customize (but I do pledge to rectify this
situation eventually).

>
> I will also mention, back to the "known issue" caused by this, that I
> maintain separate "desktop shortcuts" for launching Emacs with and
> without automatically launching ERC connections.  It would be nice if
> this arrangement (once again) had the intended effect of not loading
> ERC when I'm not going to need it in the given session.
>
> In any event: +1
>
> I'd be grateful to see this resolved before cutting 30.1

Appreciate the input as always.