unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Nicolas Bértolo" <nicolasbertolo@gmail.com>
Cc: emacs-devel@gnu.org, akrl@sdf.org
Subject: Re: [PATCH] [WIP] Port feature/native-comp to Windows.
Date: Sun, 10 May 2020 22:16:24 +0300	[thread overview]
Message-ID: <83blmvd2if.fsf@gnu.org> (raw)
In-Reply-To: <CAFnS-OkBNSiD_VtUjtPcL0063K+0-gf9qZ2-EtRjeq=RtKf_Qg@mail.gmail.com> (message from Nicolas Bértolo on Sun, 10 May 2020 16:02:11 -0300)

> From: Nicolas Bértolo <nicolasbertolo@gmail.com>
> Date: Sun, 10 May 2020 16:02:11 -0300
> Cc: Andrea Corallo <akrl@sdf.org>, emacs-devel@gnu.org
> 
> > This is known in advance.  We already have that knowledge in Emacs,
> > see HAVE__SETJMP and HAVE_SIGSETJMP used in lisp.h.
> 
> > I don't yet understand why we need the _name_ of the setjmp function.
> > How will this name be used?
> 
> I think it is a good idea to show how the information is used:
> This is the function that generates a function call to `setjmp`.

Thanks, I will think about this.  But up front, we can simply use the
apriori knowledge about the way the setjmp macro is expanded in the
version used for building Emacs.  We could build in some defenses
against changes in that expansion, if that is a real danger, but
that's not urgent.

> > The gcc executable is always on PATH, only the auxiliary programs
> > (cc1.exe etc.) aren't.  Otherwise you couldn't compile programs in
> > arbitrary directories.
> 
> What about users that don't have `gcc` in PATH?

That'd mean the user's GCC installation is not workable.  I don't
think we need to consider this case, at least not seriously and not as
our first goal.

> > What is the definition of "the appropriate GCC version" in this
> > context?  E.g., does it have to be exactly the same version as the one
> > used to build Emacs itself?  Or does it mean something else?
> 
> The GCC that comes from the source tree that libgccjit was built from.
> 
> Lets say Emacs was built with libgccjit 9.2 and the user has GCC 10.0.0
> installed: it would be a very bad idea to use the local installation, AFAIU.
> In fact, libgccjit will not even try and it'll fail.

But that's a problem on any platform, not just on Windows, isn't it?
It would mean that when you upgrade GCC, you need to rebuild Emacs in
order to be able to continue natively-compiling Lisp files, even if
your Emacs version stays the same.  Is this reasonable?  What will
GNU/Linux users do that install binary distributions of Emacs -- will
they have to install a very particular version of GCC to be able to
compile to native code, and never upgrade it, except together with
upgrading Emacs?  Sounds very inconvenient to me.

I thought that we expect to use libgccjit that's part of the GCC
installation on the system where Emacs is used, i.e. that libgccjit
would be a shared library into which Emacs will call.  You seem to be
saying that libgccjit will come with Emacs (or be statically linked
into Emacs), and the end-user will have to have a GCC installation of
the same version from which libgccjit came on the system where Emacs
was built.



  reply	other threads:[~2020-05-10 19:16 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-08 19:55 [PATCH] [WIP] Port feature/native-comp to Windows Nicolas Bertolo
2020-05-08 22:00 ` Andrea Corallo
2020-05-08 22:11   ` Nicolas Bértolo
2020-05-08 22:22     ` Andrea Corallo
2020-05-08 22:23       ` Nicolas Bértolo
2020-05-08 22:27         ` Andrea Corallo
2020-05-08 23:18           ` Stefan Monnier
2020-05-09  6:07 ` Eli Zaretskii
2020-05-09 15:28   ` Nicolas Bértolo
2020-05-09 15:48     ` Eli Zaretskii
2020-05-09 17:09       ` Andrea Corallo
2020-05-10 16:36       ` Nicolas Bértolo
2020-05-10 17:08         ` Eli Zaretskii
2020-05-10 17:50           ` Nicolas Bértolo
2020-05-10 18:22             ` Eli Zaretskii
2020-05-10 19:02               ` Nicolas Bértolo
2020-05-10 19:16                 ` Eli Zaretskii [this message]
2020-05-10 19:41                   ` Nicolas Bértolo
2020-05-10 19:50                     ` Andrea Corallo
2020-05-10 19:55                       ` Nicolas Bértolo
2020-05-10 20:01                         ` Andrea Corallo
2020-05-11 14:19                         ` Eli Zaretskii
2020-05-11 14:17                     ` Eli Zaretskii
2020-05-11 15:20                       ` Nicolas Bértolo
2020-05-11 16:19                         ` Eli Zaretskii
2020-05-11 16:43                           ` Andrea Corallo
2020-05-11 16:44                           ` Nicolas Bértolo
2020-05-11 17:05                             ` Eli Zaretskii
2020-05-11 18:19                           ` Fabrice Popineau
2020-05-11 18:37                             ` Andrea Corallo
2020-05-11 18:48                             ` Eli Zaretskii
2020-05-11 19:27                               ` Stefan Monnier
2020-05-11 19:42                               ` Fabrice Popineau
2020-05-12  2:46                       ` Nicolas Bértolo
2020-05-12 16:56                         ` Eli Zaretskii
2020-05-12 17:25                           ` Nicolas Bértolo
2020-05-12 18:21                             ` Andrea Corallo
2020-05-12 20:33                               ` Andrea Corallo
2020-05-13 14:09                                 ` Nicolas Bértolo
2020-05-13 14:31                                   ` Andrea Corallo
2020-05-13 15:00                                     ` Nicolas Bértolo
2020-05-13 15:17                                       ` Andrea Corallo
2020-05-13 15:48                                   ` Eli Zaretskii
2020-05-13  3:59                         ` Richard Stallman
2020-05-13 14:02                           ` Nicolas Bértolo
2020-05-13 15:23                             ` Eli Zaretskii
2020-05-13 14:52                           ` Eli Zaretskii
2020-05-10 19:47                   ` Andrea Corallo
2020-05-10 19:39                 ` Andrea Corallo
2020-05-10 17:13         ` Andrea Corallo
2020-05-10 17:15           ` Eli Zaretskii
2020-05-10 18:14             ` Andrea Corallo
2020-05-10 18:30               ` Eli Zaretskii
2020-05-10 18:54                 ` Andrea Corallo
2020-05-10 19:02                   ` Eli Zaretskii
2020-05-10 19:07                     ` Nicolas Bértolo
2020-05-10 19:14                     ` Andrea Corallo
2020-05-10 19:24                     ` Andrea Corallo
2020-05-10 19:30                       ` Eli Zaretskii
2020-05-10 18:05           ` Nicolas Bértolo
2020-05-10 18:23             ` Andrea Corallo
2020-05-10 17:20       ` Andrea Corallo
2020-05-09 13:42 ` Andrea Corallo
2020-05-09 15:40   ` Nicolas Bértolo
2020-05-09 15:55     ` Eli Zaretskii
2020-05-09 16:07       ` Nicolas Bértolo
2020-05-09 16:15         ` Eli Zaretskii
2020-05-09 16:27     ` Andrea Corallo
2020-05-09 16:33       ` Eli Zaretskii
2020-05-09 16:46         ` Andrea Corallo
2020-05-09 16:52     ` Andrea Corallo

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=83blmvd2if.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=akrl@sdf.org \
    --cc=emacs-devel@gnu.org \
    --cc=nicolasbertolo@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).