Subject: bug#71537: closed (Re: bug#71537: 30.0.50; [PATCH] missing autoload cookies)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 14 Jun 2024 11:01:02 +0000

Your bug report

#71537: 30.0.50; [PATCH] missing autoload cookies

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
71537: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=71537
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#71537: 30.0.50; [PATCH] missing autoload cookies
From: Eli Zaretskii <[email-masked]>
To: Gerard Vermeulen <[email-masked]>
Cc: [email-masked]
Date: Fri, 14 Jun 2024 14:00:11 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Fri, 14 Jun 2024 08:29:01 +0000
> From: Gerard Vermeulen <[email-masked]>
> Cc: [email-masked]
> 
> 
> 
> On 14.06.2024 08:43, Eli Zaretskii wrote:
> >> Date: Thu, 13 Jun 2024 20:57:50 +0000
> >> From: Gerard Vermeulen <[email-masked]>
> >> Cc: [email-masked]
> >> 
> >> > Thanks, but I don't understand why what we have now constitutes a
> >> > problem.  help-fns loads shortdoc when it needs it, and
> >> > pulse-momentary-highlight-one-line is autoloaded already (you don't
> >> > need to auto-load variables to assign values to them).
> >> >
> >> > Can you describe the problems you have if you delete those 'require's
> >> > from your init file, and explain why manually requiring them is a
> >> > problem?
> >> 
> >> I try: after deleting those require's:
> >> 
> >> 1. and after doing "M-x describe-function shortdoc" before shortdoc 
> >> has
> >> been
> >>      (auto)loaded by something else, I get in my message window:
> >> 
> >>      help-fns--run-describe-functions: Symbol’s function definition is
> >> void: shortdoc-help-fns-examples-function
> >> 
> >>      and the help window does not show (is not created).
> > 
> > I cannot reproduce this.  For me, the *Help* buffer is displayed
> > without any error message.  Are you using the latest master branch of
> > the Emacs Git repository?  Is this in "emacs -Q"?
> 
> It works in "emacs -Q" in yesterday's master branch.
> 
> In the process, I figured out what was the issue in my init.el:
> 
> shortdoc-help-fns-examples-function was the first item in
> the help-fns-describe-function-functions list and this needs the 
> require.
> 
> After moving shortdoc-help-fns-examples-function after all 
> help-fns--XXXX
> functions in the list, everything works fine without the require.
> 
> > 
> >> 2. and after calling "other-window" flash-line-around-point gets 
> >> called,
> >>      but I get in my message window:
> >> 
> >>      byte-code: Defining as dynamic an already lexical var:
> >> pulse-iterations
> > 
> > You should use setq (or setopt) instead of let-binding.  These two
> > variables are user options, so let-binding them is not appropriate.
> 
> Indeed, it works with setq.
> 
> Thanks a lot. You can close the bug, as far as I am concerned.

Done, thanks.

Subject: 30.0.50; [PATCH] missing autoload cookies
From: Gerard Vermeulen <[email-masked]>
To: Bug gnu emacs <[email-masked]>
Date: Thu, 13 Jun 2024 14:59:06 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

I propose the attached patch adding three missing autoload cookies
to eliminate two require forms from two sections in my init.el.

To eliminate (require 'shortdoc) from the first section:
(with-eval-after-load 'help-fns
   ;; ChatGPT recommends to require `shortdoc' contrary to the
   ;; `shortdoc-help-fns-examples-function' documentation string.
   (require 'shortdoc)
   (add-hook 'help-fns-describe-function-functions
             #'shortdoc-help-fns-examples-function)
   (setopt help-enable-symbol-autoload t))

And to eliminate (require 'pulse) from the second section:
(require 'pulse) ; since `pulse' does not autoload `pulse-delay' and
                  ; `pulse-iterations'.

(defun flash-line-around-point (&rest _)
   "Flash the line around point."
   (let ((pulse-iterations 16)
         (pulse-delay 0.1))
     (pulse-momentary-highlight-one-line (point))))

(dolist (command '(scroll-up-command
                    scroll-down-command
                    recenter-top-bottom
                    other-window))
   (advice-add command :after #'flash-line-around-point))

Regards -- Gerard