all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Andrea Corallo <akrl@sdf.org>
Cc: larsi@gnus.org, corwin@bru.st, 58318@debbugs.gnu.org,
	bartosz.bubak@gmail.com
Subject: bug#58318: 28.2; Emacs installed from package won't work with MinGW
Date: Fri, 07 Oct 2022 16:48:16 +0300	[thread overview]
Message-ID: <83tu4fn3rz.fsf@gnu.org> (raw)
In-Reply-To: <xjfbkqn3hu0.fsf@ma.sdf.org> (message from Andrea Corallo on Fri,  07 Oct 2022 13:04:55 +0000)

> From: Andrea Corallo <akrl@sdf.org>
> Cc: larsi@gnus.org, corwin@bru.st, bartosz.bubak@gmail.com,
>         58318@debbugs.gnu.org
> Date: Fri, 07 Oct 2022 13:04:55 +0000
> 
> > How is this relevant only to Windows?
> 
> Windows is the only system where a native compiled Emacs can start even
> if libgccjit is not present.  On GNU/Linux we get and error at load time
> from the dynamic linker in case.  As a consequence on GNU/Linux Emacs is
> always capable of producing trampolines when needed.

It could be that libgccjit is loaded but is incompatible or
something.  So I'd prefer a general solution.

> > And what do you mean by "disable direct calls from Lisp native code
> > into primitives"?  I don't think I understand what this would do in
> > practice.
> 
> Native compiled elisp calls directly into primitive functions not to go
> through funcall.  For this reason when a primitive is redefined we need
> to produce a trampoline in order to forward these calls to the funcall
> machinery.  If we disable all of this optimization the issue disappears
> but indeed that's not good from a performance point of view.

How much will performance suffer if we use funcall?

> Indeed the other option is to precompile all trampoline AOT when we know
> libgccjit is available.  It is actually very simple with something like:
> 
> (mapatoms (λ (f)
>             (when (subr-primitive-p (symbol-function f))
>               (or (comp-trampoline-search f)
>                   (comp-trampoline-compile f)))))
> 
> It was not consired worth as trampoline production is very quick, but
> might be worth at least for Windows platforms for the discussed reason.

If calling through funcall is too expensive, I think pre-compiling all
the trampolines would indeed be the best solution, thanks.





  reply	other threads:[~2022-10-07 13:48 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-05 16:01 bug#58318: 28.2; Emacs installed from package won't work with MinGW Bartosz Bubak
2022-10-06  5:44 ` Eli Zaretskii
2022-10-06 13:09   ` Corwin Brust
2022-10-06 13:30     ` Lars Ingebrigtsen
2022-10-06 14:43       ` Eli Zaretskii
2022-10-07 11:42         ` Lars Ingebrigtsen
2022-10-07 11:59           ` Eli Zaretskii
2022-10-07 12:04             ` Lars Ingebrigtsen
2022-10-07 12:12               ` Eli Zaretskii
2022-10-07 12:28                 ` Lars Ingebrigtsen
2022-10-07 12:35                 ` Andrea Corallo
2022-10-07 12:43                   ` Lars Ingebrigtsen
2022-10-07 12:54                   ` Eli Zaretskii
2022-10-07 13:02                     ` Lars Ingebrigtsen
2022-10-07 13:44                       ` Eli Zaretskii
2022-10-07 13:47                         ` Lars Ingebrigtsen
2022-10-07 13:04                     ` Andrea Corallo
2022-10-07 13:48                       ` Eli Zaretskii [this message]
2022-10-07 13:54                         ` Andrea Corallo
2022-10-07 14:03                           ` Eli Zaretskii
2022-10-07 14:35                             ` Andrea Corallo
2022-10-07 15:27                               ` Eli Zaretskii
2022-10-07 15:34                                 ` Corwin Brust
2022-10-07 15:43                                   ` Eli Zaretskii
2022-10-07 15:47                                     ` Corwin Brust
2022-10-07 19:11                                       ` Eli Zaretskii
2022-10-07 17:15                                     ` Andrea Corallo
2022-10-07 19:15                                       ` Eli Zaretskii
2022-10-07 15:49                                 ` Andrea Corallo
2022-10-07 15:52                               ` Corwin Brust
2022-10-07 19:14                                 ` Eli Zaretskii
2022-10-08 12:56                                   ` Lars Ingebrigtsen
2022-10-08 13:03                                     ` Eli Zaretskii
2022-10-08 13:10                                       ` Lars Ingebrigtsen
2022-10-08 14:28                                         ` Eli Zaretskii
2022-10-08 13:28                                   ` Andrea Corallo
2022-10-11 19:23                                     ` Andrea Corallo
2022-10-11 19:29                                       ` Eli Zaretskii
2022-10-11 20:45                                         ` Andrea Corallo
2022-10-12  5:21                                           ` Eli Zaretskii
2022-10-12  8:14                                             ` Andrea Corallo
2022-10-12 12:50                                               ` Eli Zaretskii
2022-10-12 14:55                                                 ` Andrea Corallo
2022-10-12 15:35                                                   ` Eli Zaretskii
2022-10-13 13:26                                                     ` Andrea Corallo
2022-10-06 14:41     ` 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

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

  git send-email \
    --in-reply-to=83tu4fn3rz.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=58318@debbugs.gnu.org \
    --cc=akrl@sdf.org \
    --cc=bartosz.bubak@gmail.com \
    --cc=corwin@bru.st \
    --cc=larsi@gnus.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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.