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

From: Eli Zaretskii <[email-masked]>
Date: Wed, 20 Jul 2022 22:16:11 +0300

> From: Andrea Corallo <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Wed, 20 Jul 2022 18:31:56 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Can we deduce the name of the Lisp function (a symbol) whose
> > native-compilation result is a given natively-compiled subr?  If so,
> > perhaps we could substitute the function's symbol for the subr name.
> 
> Not that I'm aware.
> 
> I guest would be necessary to keep some global (or per native function)
> hash table that is updated in Fset?
> 
> I hope there's some workaround to this in the help / bookmarks machinery
> cause this does not look very neat to me.

The relevant code looks like this:

   (help-setup-xref
     (list (lambda (function buffer)
             (let ((describe-function-orig-buffer
                    (if (buffer-live-p buffer) buffer)))
               (describe-function function)))
           function describe-function-orig-buffer)
     (called-interactively-p 'interactive))

In a natively-compiled Emacs, this lambda produces a native-compiled
subr.  Is there a way of telling Emacs not to produce such a subr, but
instead to produce byte-code for this lambda?  If yes, that could be a
(somewhat ugly) workaround in this case.