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, 18 Oct 2024 10:55:07 -0700

Eli Zaretskii <[email-masked]> writes:

>> >  Why was this line added in the first place?
>> 
>> The line was initially added in a misguided attempt to allow new users
>> unfamiliar with Emacs to run M-x customize-option RET erc-modules RET
>> without first having to run M-: (require 'erc) RET.
>
> The commit log message says:
>
>     * lisp/erc/erc.el (erc-modules): Make good on decades old language in
>     info node "(erc) Modules" by ensuring `customize-option' can find this
>     option before its containing library is loaded.  Like
>     `gnus-select-method', this option serves as an entry point for
>     configuring the application and is presented that way in tutorials and
>     library front matter.  Moreover, it can't be reasonably autoloaded in
>     the traditional way because of its many dependencies and large textual
>     footprint.
>
> So there was some reasonable rationale to this change.

What the commit message doesn't mention is that its author (me) was
ignorant of the fact that customizing the option and saving it would
result in ERC being loaded unconditionally on startup rather than only
when summoned.

>
>> >  And why is it urgent to remove it before Emacs 30 is released?
>> 
>> ERC has a great many symbols, which people won't want to see in
>> completion tables, etc. Longtime ERC users trying Emacs 30 for the first
>> time may find ERC loading whenever they start Emacs, which may not be
>> desirable in all Emacs sessions. And since, as mentioned, `erc-modules'
>> is likely among the most commonly customized of ERC's options, this may
>> also affect non-ERC users who perhaps only tried it once many years ago
>> or even folks using a shared config containing such a customization. For
>> these reasons, I suspect we'll start noticing ERC-related pollution in
>> the automated evidence collection for bug reports filed with M-x
>> report-emacs-bug RET once Emacs 30 goes mainstream.
>
> 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?)

The manual currently says:

  4 Modules
  *********
  
  One way to add functionality to ERC is to customize which of its many
  modules are loaded.
  
     There is a spiffy customize interface, which may be reached by typing
  ‘M-x customize-option <RET> erc-modules <RET>’.

We could instead say something like:

  The main way to impact ERC's functionality is by choosing which
  modules it loads.  Do this by typing ‘C-h v erc-modules RET’ to view
  that option's help buffer, then click ‘customize’ near the bottom,
  where it says "You can _customize_ this variable."

(This assumes anyone needing detailed instructions hasn't disabled
`help-enable-completion-autoload'.)

In any case, I don't anticipate much blowback beyond the complaints we
used to get re "it says [no match]", etc. But I will make the change on
master for now, as suggested. Thanks.