Subject: Re: bug#58314: 29.0.50; C-h k with native compilation not conclusive

From: Jean Louis <[email-masked]>
Date: Wed, 5 Oct 2022 22:50:32 +0300

* Eli Zaretskii <[email-masked]> [2022-10-05 22:47]:
> > From: Jean Louis <[email-masked]>
> > Date: Wed, 05 Oct 2022 22:26:20 +0300
> > 
> > 
> > I remember with byte compiling I was never lead to go into byte compiled
> > file when I was inspecting commands with C-h k
> > 
> > With native compilation, I do: C-h k and I get this:
> > 
> > v n runs the command cf-people-view-notes (found in
> > rcd-db-people-mode-map), which is an interactive native-compiled Lisp
> > function in
> > ‘../eln-cache/29.0.50-44cd31c8/rcd-cf-a9476332-a313d4ff.eln’.
> > 
> > It is bound to v n.
> 
> I cannot reproduce this.  I don't have rcd-cf.el here, of course, but
> I tested with "C-h k n" in Help mode, and I see the expected:
> 
>   n runs the command help-goto-next-page (found in help-mode-map), which
>   is an interactive native-compiled Lisp function in ‘help-mode.el’.
> 
> So this is somehow related to your own files.  Maybe it's because how
> we store the doc strings or something?  Stefan, any ideas?

1. emacs -Q

2. {C-x C-f my-file.el RET}

3. write in my-file.el:

  (defun my-function ()
  (message "Hello"))

4. {M-x emacs-lisp-native-compile-and-load RET}

5. {C-h f my-function RET}

6. Then I see:

my-function is a native-compiled Lisp function in
‘~/.emacs.d/eln-cache/29.0.50-44cd31c8/my-file-fb862712-14785989.eln’.

(my-function)

Not documented.

But I am expecting to see link to my-file.el and not to compiled file.

And if I click on the link:

‘~/.emacs.d/eln-cache/29.0.50-44cd31c8/my-file-fb862712-14785989.eln’.

then I get:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  locate-file(nil ("/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l..." "/home/data1/protected/Programming/Software/emacs/l...") (".so" ".so.gz" ".el" ".el.gz"))
  find-library-name("/home/data1/protected/.emacs.d/eln-cache/29.0.50-4...")
  find-function-search-for-symbol(my-function nil "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4...")
  help-function-def--button-function(my-function "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4..." nil)
  help-do-xref(nil help-function-def--button-function (my-function "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4..."))
  help-button-action(#<marker (moves after insertion) at 54 in *Help*>)
  button-activate(#<marker (moves after insertion) at 54 in *Help*> nil)
  push-button(54)
  funcall-interactively(push-button 54)
  command-execute(push-button)

--
Jean

Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns

In support of Richard M. Stallman
https://stallmansupport.org/