unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Pip Cet <pipcet@gmail.com>
To: Andy Moreton <andrewjmoreton@gmail.com>
Cc: 46256@debbugs.gnu.org
Subject: bug#46256: [feature/native-comp] AOT eln files ignored if run from build tree
Date: Sat, 6 Mar 2021 09:54:22 +0000	[thread overview]
Message-ID: <CAOqdjBeOqm+SGLBKjgHK0sripuaTmRg-0BTRyLsJkWUme-Eqew@mail.gmail.com> (raw)
In-Reply-To: <86sg593vfm.fsf@gmail.com>

On Sat, Mar 6, 2021 at 1:48 AM Andy Moreton <andrewjmoreton@gmail.com> wrote:
> On Fri 05 Mar 2021, Andrea Corallo via "Bug reports for GNU Emacs, the Swiss army knife of text editors" wrote:

[Does anyone know where this via "name" comes from? I believe it is
Google's joke which somehow makes it through into the gmail
interface...]

> Is the problem that dlopen resolves to use an unlinked file kept alive
> by having open handles, rather than a new file with the filename used
> by the old file before it was unlinked ?

I believe so, and that's what I think we can work around.

IIUC, we don't actually call dlclose() until we GC (and might not do
so even then, since GC is conservative).

> >> Merely verifying that the ABI is correct could be done at runtime, so
> >> that's no reason to keep a hash in the filename.
> >>
> >> So my vague idea is this:
> >>
> >> 1. implement fixed_dlopen(), which keeps track of filenames that have
> >> been opened and, if necessary, creates a temporary file and loads that
> >> instead of its argument.
> >> 2. compile lisp/emacs-lisp/bytecomp.el to lisp/emacs-lisp/bytecomp.elc
> >> and native-lisp/emacs-lisp/bytecomp.eln
> >
> > So it was at the beginning, I think we moved away from that before the
> > odd dlopen behavior.
>
> As above, this odd dlopen behaviour needs to be fully explained to
> ensure that design choices are not driven by possible misunderstandings.

I'm unsure what Andrea is saying here; is the dlopen thing relevant to
the decision to use hashes in names, or isn't it?

> >> 3. add extra code in the top level function of each .eln to check that
> >> the ABI is correct.
> >>
> >> This would allow us to use standard make rules. It would also make
> >> .eln filenames predictable. It might even draw someone's attention to
> >> the fact that dlopen() is broken and make them fix it.
> >>
> >> I'm probably missing other good reasons for the hashed filename scheme.
> >
> > Yep, this was discussed in length on emacs-devel, IIRC mainly on a long
> > standing thread called "native compilation the bird-eye view" (or
> > something close).
>
> Thread "Native compilation: the bird-eye view" starts here:
> https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg02186.html

Thanks for the link. I do think it would be good to summarize the
reasons for the hash-based naming scheme somewhere, because I've read
the thread and all I've taken away is that the dlopen oddity requires
a workaround (but, really, a different one). I don't think I've read
all of the followup threads, though.

> I agree with Pip that using standard make rules eases several development
> pains and should be used if at all possible.

What I think should be discussed, or should have been discussed, is
whether we really need hashes in the names of files in the Emacs build
tree. Whether we need them for installed files, or for files in the
eln cache, is a separate issue.

A second question is whether it's really worth it to build the elc and
eln files at the same time. Make would be a lot happier not having two
targets in the rule, and so would I.

But if this has been discussed and resolved, we merely need to
document the decision and the reasons for it rather than reopening
discussion because I missed it the first time around. If someone can
provide a link to the relevant messages, I'd be glad to try.

Pip





  reply	other threads:[~2021-03-06  9:54 UTC|newest]

Thread overview: 179+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-02 11:11 bug#46256: [feature/native-comp] AOT eln files ignored if run from build tree Andy Moreton
2021-02-03 20:51 ` akrl--- via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-04  0:03   ` Andy Moreton
2021-02-04  1:40     ` Andy Moreton
2021-02-05 14:42       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-05 20:59         ` Andy Moreton
2021-02-05 23:55       ` Andy Moreton
2021-02-17 22:39         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-18 20:48           ` Andy Moreton
2021-02-18 21:00             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-19  8:02               ` Eli Zaretskii
2021-02-19 14:49                 ` Andy Moreton
2021-02-19 15:28                   ` Eli Zaretskii
2021-02-19 16:01                   ` Andrea Corallo
2021-02-26 20:34                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-26 20:45                     ` Eli Zaretskii
2021-02-26 20:48                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-26 20:52                         ` Eli Zaretskii
2021-02-27  6:58                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-27  7:55                             ` Eli Zaretskii
2021-02-27 12:08                     ` Andy Moreton
2021-02-27 19:14                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-27 19:20                         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-27 19:46                         ` Andy Moreton
2021-02-27 21:58                           ` Andy Moreton
2021-02-28 17:35                             ` Eli Zaretskii
2021-02-28 21:15                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-01  5:36                                 ` Eli Zaretskii
2021-03-01  6:34                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-01  9:48                               ` Andy Moreton
2021-03-03 18:27                                 ` Eli Zaretskii
2021-03-03 18:43                                   ` Eli Zaretskii
2021-03-03 19:46                                     ` Eli Zaretskii
2021-03-03 20:04                                       ` Eli Zaretskii
2021-03-03 20:21                                         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04  8:30                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 11:54                                             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 14:13                                               ` Eli Zaretskii
2021-03-04 14:24                                                 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 14:49                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 17:24                                                     ` Eli Zaretskii
2021-03-04 18:56                                                       ` Eli Zaretskii
2021-03-04 20:11                                                         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 21:33                                                           ` Eli Zaretskii
2021-03-05  9:32                                                             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 10:09                                                               ` Pip Cet
2021-03-05 10:19                                                                 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06  1:47                                                                   ` Andy Moreton
2021-03-06  9:54                                                                     ` Pip Cet [this message]
2021-03-06 10:30                                                                       ` Eli Zaretskii
2021-03-06 12:15                                                                       ` Andy Moreton
2021-03-06 13:10                                                                         ` Eli Zaretskii
2021-03-06 15:18                                                                           ` Andy Moreton
2021-03-06 18:37                                                                             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07  9:22                                                                         ` Pip Cet
2021-03-05 11:55                                                               ` Eli Zaretskii
2021-03-05 13:56                                                                 ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 14:54                                                                   ` Eli Zaretskii
2021-03-05 15:18                                                                     ` Pip Cet
2021-03-05 15:22                                                                       ` Eli Zaretskii
2021-03-05 15:54                                                                         ` Pip Cet
2021-03-05 18:44                                                                           ` Eli Zaretskii
2021-03-05 15:26                                                                     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-04 21:30                                                         ` Andy Moreton
2021-03-04 20:47                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 13:52                                                     ` Eli Zaretskii
2021-03-05 14:04                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 15:00                                                         ` Eli Zaretskii
2021-03-05 15:56                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 18:46                                                             ` Eli Zaretskii
2021-03-05 19:22                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-05 20:31                                                                 ` Eli Zaretskii
2021-03-05 22:25                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06  7:39                                                                     ` Eli Zaretskii
2021-03-06 14:38                                                                 ` Eli Zaretskii
2021-03-06 15:35                                                                   ` Eli Zaretskii
2021-03-06 17:47                                                                     ` Eli Zaretskii
2021-03-06 18:31                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 18:48                                                                         ` Eli Zaretskii
2021-03-06 19:19                                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 19:40                                                                             ` Pip Cet
2021-03-06 19:48                                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 20:24                                                                                 ` Eli Zaretskii
2021-03-06 20:31                                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 20:53                                                                                     ` Eli Zaretskii
2021-03-06 21:02                                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07  5:55                                                                                         ` Eli Zaretskii
2021-03-07  6:57                                                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07  7:40                                                                                             ` Eli Zaretskii
2021-03-07 19:05                                                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 18:56                                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 19:08                                                                                         ` Eli Zaretskii
2021-03-06 20:08                                                                             ` Eli Zaretskii
2021-03-06 20:19                                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 18:30                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 18:44                                                                     ` Eli Zaretskii
2021-03-06 19:21                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06 20:10                                                                         ` Eli Zaretskii
2021-03-06 20:26                                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-06  0:33                                             ` Andy Moreton
2021-03-06  7:42                                               ` Eli Zaretskii
2021-03-06 12:09                                                 ` Andy Moreton
2021-03-06 13:05                                                   ` Eli Zaretskii
2021-03-06 15:46                                                     ` Andy Moreton
2021-03-06 19:31                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 17:59                                     ` Eli Zaretskii
2021-03-07 18:53                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 19:15                                         ` Eli Zaretskii
2021-03-07 20:16                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 21:27                                             ` Pip Cet
2021-03-07 21:47                                               ` Pip Cet
2021-03-07 21:51                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-07 22:16                                                 ` Pip Cet
2021-03-08 13:26                                                   ` Eli Zaretskii
2021-03-08 13:52                                                     ` Pip Cet
2021-03-08 14:39                                                       ` Eli Zaretskii
2021-03-08 14:50                                                         ` Pip Cet
2021-03-08 15:14                                                           ` Eli Zaretskii
2021-03-08 17:40                                                           ` Eli Zaretskii
2021-03-08  3:31                                                 ` Eli Zaretskii
2021-03-08  5:54                                                   ` Pip Cet
2021-03-08  6:48                                                     ` Pip Cet
2021-03-08 10:14                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 10:45                                                         ` Pip Cet
2021-03-08 15:02                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 15:09                                                             ` Pip Cet
2021-03-08 15:38                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 12:36                                                           ` Eli Zaretskii
2021-03-09  8:32                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 13:05                                                         ` Eli Zaretskii
2021-03-09 13:58                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 16:36                                                             ` Eli Zaretskii
2021-03-09 17:10                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 14:11                                                     ` Eli Zaretskii
2021-03-08 14:27                                                       ` Pip Cet
2021-03-08 18:06                                                         ` Eli Zaretskii
2021-03-08 18:15                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 20:37                                                             ` Eli Zaretskii
2021-03-09  7:03                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 12:55                                                                 ` Eli Zaretskii
2021-03-09 14:55                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 16:42                                                                     ` Eli Zaretskii
2021-03-09 18:31                                                                     ` Eli Zaretskii
2021-03-09 19:38                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 16:30                                                                   ` Eli Zaretskii
2021-03-10 13:14                                                                     ` Alan Mackenzie
2021-03-10 13:20                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-10 14:07                                                                       ` Eli Zaretskii
2021-03-10 15:24                                                                         ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-10 16:56                                                                         ` Alan Mackenzie
2021-03-10 17:43                                                                           ` Eli Zaretskii
2021-03-08 18:18                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 18:32                                                             ` Pip Cet
2021-03-08 20:47                                                               ` Eli Zaretskii
2021-03-08 20:50                                                                 ` Pip Cet
2021-03-09  8:28                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09  8:35                                                                     ` Pip Cet
2021-03-09  8:43                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 14:32                                                                       ` Eli Zaretskii
2021-03-08 20:49                                                             ` Eli Zaretskii
2021-03-09  8:35                                                               ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 14:34                                                                 ` Eli Zaretskii
2021-03-09 15:38                                                                   ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 16:51                                                                     ` Eli Zaretskii
2021-03-09 17:04                                                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-09 18:20                                                                         ` Eli Zaretskii
2021-03-09 19:23                                                                           ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-08 18:13                                                         ` Eli Zaretskii
2021-03-08 20:53                                                           ` Pip Cet
2021-03-08 15:07                                             ` Eli Zaretskii
2021-03-03 18:48                                   ` Eli Zaretskii
2021-03-03 19:28                                     ` Eli Zaretskii
2021-03-03 19:50                                       ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-03 20:08                                         ` Eli Zaretskii
2021-03-03 19:37                                     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-03-03 20:13                                       ` Eli Zaretskii
2021-02-28 21:04                             ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-05 14:39     ` Andrea Corallo via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-02-05 15:08       ` 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=CAOqdjBeOqm+SGLBKjgHK0sripuaTmRg-0BTRyLsJkWUme-Eqew@mail.gmail.com \
    --to=pipcet@gmail.com \
    --cc=46256@debbugs.gnu.org \
    --cc=andrewjmoreton@gmail.com \
    /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).