Subject: bug#55492: 29.0.50; apropos-documentation with universal argument shows an error

From: Stefan Monnier <[email-masked]>
Date: Tue, 17 May 2022 19:10:04 -0400

Lars Ingebrigtsen [2022-05-18 01:00:07] wrote:

> Daniel Martín via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <[email-masked]> writes:
>> emacs -Q
>> C-u C-h d window RET
>>
>> Actual result:
>>
>> An error is shown:
>>
>> apropos-documentation-check-elc-file: Opening input file: No such file
>> or directory, <Path_to_emacs>/simple.elc
>
> I see the same if I start Emacs now, and the root cause is
>
> (apropos-safe-documentation 'kill-current-buffer)
>
> which again is because of this
>
> (aref (symbol-function 'kill-current-buffer) 4)
> => ("simple.elc" . 202401)

What is the value of `lisp-directory` when you get that error?
What is the actual "<Path_to_emacs>" printed above?
Where should Emacs find the `simple.elc` file instead?

> Now, in my Emacs that's been running for a few hours, I instead get:
>
> (aref (symbol-function 'kill-current-buffer) 4)
> => ("/home/larsi/src/emacs/trunk/lisp/simple.elc" . 202401)

I suspect that this is because the `simple.elc` was reloaded for some
reason, which happens to hide the problem.

> I think Stefan changed the format of byte compiled functions a while
> ago?  Or do I misremember?  Anyway, added to the CCs.

Not really, no, but the docstrings of preloaded packages (like
`simple.el`) used to be (stored in and) fetched from `etc/DOC` and is
now fetched from the elc files instead.

The relevant change (and hence likely culprit here) is
59732a83c8875c8986d2221600d559a24d8309cc

        Stefan