[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How does one find out what file a library has been loaded from?
From: |
Andrea Corallo |
Subject: |
Re: How does one find out what file a library has been loaded from? |
Date: |
Tue, 19 Jul 2022 15:32:40 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
Alan Mackenzie <acm@muc.de> writes:
> Hello, Eli.
>
> On Tue, Jul 19, 2022 at 15:39:11 +0300, Eli Zaretskii wrote:
>> > Date: Tue, 19 Jul 2022 10:52:08 +0000
>> > From: Alan Mackenzie <acm@muc.de>
>
>> > Hello, Emacs.
>
>> > Forgive me if I've asked this before, but how does one determine what
>> > file a library has been loaded from? In particular, whether that file
>> > is a source file, a byte compiled file or a native compiled file.
>
>> > I've tried looking at load-history, and it tells me cc-engine was loaded
>> > from
>
>> > "/home/acm/emacs/emacs.git/sub-master-5/lisp/progmodes/cc-engine.elc"
>
>> > .. I think that's a lie. I suspect I'm dealing with a native compiled
>> > cc-engine, here. In fact, the string ".eln" doesn't occur anywhere in
>> > load-history, and I _know_ some of the files are native compiled - my
>> > build was configured with-native-compilation.
>
>> > So, how do I find this out?
>
>> What do you like to find? whether it was loaded from cc-engine.elc or
>> cc-engine-XXXXXX.eln?
>
> Exactly that, yes.
>
>> If so, why does it matter?
>
> It matters a great deal. There's the purely philosophical point that one
> should be able to control and understand ones own Emacs. A further point
> is that Emacs should not deceive its users.
>
> There's the point that if you're doing benchmark timings, the results are
> meaningless if you don't know what you're timing.
>
> The reason I asked was I was seeing a bug in what I suspected to be a
> ..eln, but didn't see it in .elc's, and thus suspected a native compiler
> bug. I've seen other things since, and don't suspect that any more.
>
> But I'd still like to be able to know what file I'm executing.
We coudln't change the `load-history' content as unfortunatelly it was
breaking many packages (tested).
If you have a native compiled function (say `find-file') to get the eln
file containing it one can use.
(native-comp-unit-file (subr-native-comp-unit (symbol-function #'find-file)))
Hope it helps
Andrea
- How does one find out what file a library has been loaded from?, Alan Mackenzie, 2022/07/19
- Re: How does one find out what file a library has been loaded from?, Eli Zaretskii, 2022/07/19
- Re: How does one find out what file a library has been loaded from?, Alan Mackenzie, 2022/07/19
- Re: How does one find out what file a library has been loaded from?, Eli Zaretskii, 2022/07/19
- Re: How does one find out what file a library has been loaded from?, Alan Mackenzie, 2022/07/20
- Re: How does one find out what file a library has been loaded from?, Stefan Monnier, 2022/07/20
- Re: How does one find out what file a library has been loaded from?, Alan Mackenzie, 2022/07/20
- Re: How does one find out what file a library has been loaded from?, Eli Zaretskii, 2022/07/21