Subject: Re: bug#56643: 29.0.50; Help-mode bookmarks not loading with native compilation

From: Eli Zaretskii <[email-masked]>
Date: Thu, 21 Jul 2022 15:33:52 +0300

> Date: Thu, 21 Jul 2022 10:01:57 +0000
> From: [email-masked]
> Cc: Michael Heerdegen <[email-masked]>, [email-masked], [email-masked]
> 
> > > Alternatively we could introduce a named helper function. Note there
> > > are more calls of `help-setup-xref' using lambdas in arguments.
> >
> >
> > And that would solve the problem? Did you try that?
> 
> I tried it with describe-function and it does solve the problem, although as noted above there are many other functions that generate help buffers and pass in a lambda.

I know very well there are other instances, I just wanted us to stay
focused.

> Named helper:
> 
> (defun describe-function-xref-func (function buffer)
>   (let ((describe-function-orig-buffer
>                     (if (buffer-live-p buffer) buffer)))
>                (describe-function function)))
> 
> Revised describe-function snippet:
> 
>     (help-setup-xref
>      (list 'describe-function-xref-func function describe-function-orig-buffer)
>      (called-interactively-p 'interactive))
> 
> This produces the following bookmark, which I confirmed still works after restarting Emacs:
> 
> ("named-function-help-bookmark"
>  (position . 1)
>  (last-modified 25305 7198 806743 243000)
>  (help-fn . describe-function-xref-func)
>  (help-args completing-read "*scratch*")
>  (position . 1)
>  (handler . help-bookmark-jump))

Thanks.  If Andrea confirms that this won't have any problems with
native-compilation, I will install such changes on the release branch
(since AFAIU this issue is a regression in Emacs 28).