unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andrea Corallo <akrl@sdf.org>
To: Alan Mackenzie <acm@muc.de>
Cc: Eli Zaretskii <eliz@gnu.org>, emacs-devel@gnu.org
Subject: Re: How does one find out what file a library has been loaded from?
Date: Tue, 19 Jul 2022 15:32:40 +0000	[thread overview]
Message-ID: <xjfv8rtnmnb.fsf@ma.sdf.org> (raw)
In-Reply-To: <YtbHOGta+SWoXeaf@ACM> (Alan Mackenzie's message of "Tue, 19 Jul 2022 15:01:12 +0000")

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



  reply	other threads:[~2022-07-19 15:32 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-19 10:52 How does one find out what file a library has been loaded from? Alan Mackenzie
2022-07-19 12:39 ` Eli Zaretskii
2022-07-19 15:01   ` Alan Mackenzie
2022-07-19 15:32     ` Andrea Corallo [this message]
2022-07-24 16:07       ` Eli Zaretskii
2022-07-24 17:46         ` Andrea Corallo
2022-07-31 12:52           ` Eli Zaretskii
2022-08-01  9:23             ` Andrea Corallo
2022-08-02  8:43               ` Andrea Corallo
2022-08-02 12:12                 ` Eli Zaretskii
2022-08-02 14:13                   ` Andrea Corallo
2022-08-03 14:19                     ` Eli Zaretskii
2022-08-01 19:31             ` Alan Mackenzie
2022-08-03 14:16               ` Eli Zaretskii
2022-07-19 15:50     ` Eli Zaretskii
2022-07-19 17:07       ` Alan Mackenzie
2022-07-19 19:13         ` Eli Zaretskii
2022-07-20 11:47           ` Alan Mackenzie
2022-07-20 15:31             ` Stefan Monnier
2022-07-20 20:34             ` Alan Mackenzie
2022-07-21  6:13               ` Eli Zaretskii
2022-07-21 17:37                 ` Alan Mackenzie
2022-07-21 17:52                   ` Stefan Monnier
2022-07-21 18:24                     ` Alan Mackenzie
2022-07-21 18:37                       ` Stefan Monnier
2022-07-21 21:03                         ` Alan Mackenzie
2022-07-21 23:15                           ` Stefan Monnier
2022-07-21 17:53                   ` Eli Zaretskii
2022-07-21 20:39                     ` Alan Mackenzie
2022-07-23 10:11                       ` Eli Zaretskii
2022-07-24 11:27                         ` Alan Mackenzie
2022-07-24 12:16                           ` Eli Zaretskii
2022-07-24 15:37                             ` Eli Zaretskii
2022-07-24 15:42                               ` Eli Zaretskii
2022-07-24 15:32                           ` Stefan Monnier
2022-07-24 15:49                             ` T.V Raman
2022-07-24 16:11                               ` Stefan Monnier
2022-07-24 18:21                                 ` T.V Raman
2022-07-24 18:50                                   ` Stefan Monnier
2022-07-24 16:19                               ` Eli Zaretskii
2022-07-19 16:27     ` Stefan Monnier
2022-07-20 18:36       ` Andrea Corallo
2022-07-21  7:20         ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xjfv8rtnmnb.fsf@ma.sdf.org \
    --to=akrl@sdf.org \
    --cc=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).