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:55:35 +0300

I think that xref get broken related to this.

How to reproduce:

1. emacs -Q

2. open my-file.el

3. Write:

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

(defun my-other-function ()
  (message "I am other function"))

4. M-x emacs-lisp-native-compile-and-load

5. Put cursor or (my-other-function)

6. M-. for xref-find-definition

6. Error:

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-other-function nil "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4...")
  #f(compiled-function (l) #<bytecode -0xbc662d16a1ea5df>)(#s(xref-elisp-location :symbol my-other-function :type nil :file "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4..."))
  apply(#f(compiled-function (l) #<bytecode -0xbc662d16a1ea5df>) #s(xref-elisp-location :symbol my-other-function :type nil :file "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4...") nil)
  xref-location-marker(#s(xref-elisp-location :symbol my-other-function :type nil :file "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4..."))
  xref-pop-to-location(#s(xref-item :summary #("(defun my-other-function)" 1 6 (face font-lock-keyword-face) 7 24 (face font-lock-function-name-face)) :location #s(xref-elisp-location :symbol my-other-function :type nil :file "/home/data1/protected/.emacs.d/eln-cache/29.0.50-4...")) nil)
  xref-show-definitions-buffer(#f(compiled-function () #<bytecode -0x7ba4afd07ebc79a>) ((window . #<window 3 on my-file.el>) (display-action) (auto-jump)))
  xref--show-defs(#f(compiled-function () #<bytecode -0x7ba4afd07ebc79a>) nil)
  xref--find-definitions(#("my-other-function" 0 17 (pos 26)) nil)
  xref-find-definitions(#("my-other-function" 0 17 (pos 26)))
  funcall-interactively(xref-find-definitions #("my-other-function" 0 17 (pos 26)))
  command-execute(xref-find-definitions)
  read-from-minibuffer("M-x " nil (keymap (10 . minibuffer-complete-and-exit) (13 . minibuffer-complete-and-exit) keymap (menu-bar keymap (minibuf "Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Complete as far as possible") (space menu-item "Complete Word" minibuffer-complete-word :help "Complete at most one word") (63 menu-item "List Completions" minibuffer-completion-help :help "Display all possible completions") "Minibuf")) (M-down . minibuffer-next-completion) (M-up . minibuffer-previous-completion) (27 keymap (13 . minibuffer-choose-completion) (103 keymap (27 keymap (99 . switch-to-completions))) (118 . switch-to-completions)) (prior . switch-to-completions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) (backtab . minibuffer-complete) (9 . minibuffer-complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the min...") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuf...") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence "\15" :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (24 keymap (down . minibuffer-complete-defaults) (up . minibuffer-complete-history)) (13 . exit-minibuffer) (10 . exit-minibuffer) (7 . abort-minibuffers) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-line-or-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-line-or-history-element) (next . next-history-element) (27 keymap (60 . minibuffer-beginning-of-buffer) (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil extended-command-history nil nil)
  completing-read-default("M-x " #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_56> #f(compiled-function (sym) #<bytecode 0x10f297e0d9d6a153>) t nil extended-command-history nil nil)
  read-extended-command-1("M-x " nil)
  read-extended-command()
  byte-code("\302\30\11\303 \10)E\207" [execute-extended-command--last-typed current-prefix-arg nil read-extended-command] 3)
  command-execute(execute-extended-command)

--
Jean

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

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