public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: David Malcolm <dmalcolm@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: jit@gcc.gnu.org, GCC Patches <gcc-patches@gcc.gnu.org>,
	Jakub Jelinek <jakub@redhat.com>,
	Joseph Myers <joseph@codesourcery.com>
Subject: Re: [PATCH] Re: Stage 3 RFC: using "jit" for ahead-of-time compilation
Date: Thu, 01 Jan 2015 00:00:00 -0000	[thread overview]
Message-ID: <1421717715.4255.73.camel@surprise> (raw)
In-Reply-To: <CAFiYyc2i4YE0qAaLQRiwa-hSpkUa=xMO26FJymCSWdbV+aF=Vw@mail.gmail.com>

On Mon, 2015-01-19 at 10:51 +0100, Richard Biener wrote:
> On Fri, Jan 16, 2015 at 7:47 PM, David Malcolm <dmalcolm@redhat.com> wrote:
> > On Thu, 2015-01-15 at 22:50 +0100, Richard Biener wrote:
> >> On January 15, 2015 9:05:59 PM CET, David Malcolm <dmalcolm@redhat.com> wrote:
> >> >Release managers: given that this only touches the jit, and that the
> >> >jit
> >> >is off by default, any objections if I go ahead and commit this?
> >> >It's a late-breaking feature, but the jit as a whole is new, and
> >> >I think the following is a big win, so I'd like to proceed with this in
> >> >stage 3 (i.e. in the next 24 hours).  There are docs and testcases.
> >> >
> >> >New jit API entrypoint: gcc_jit_context_compile_to_file
> >> >
> >> >This patch adds a way to use libgccjit for ahead-of-time compilation.
> >> >I noticed that given the postprocessing steps the jit has to take to
> >> >turn the .s file into in-memory code (invoke driver to convert to
> >> >a .so and then dlopen), that it's not much of a leap to support
> >> >compiling the .s file into objects, dynamic libraries, and executables.
> >> >
> >> >Doing so seems like a big win from a feature standpoint: people with
> >> >pre-existing frontend code who want a backend can then plug in
> >> >libgccjit
> >> >and have a compiler, without needing to write it as a GCC frontend, or
> >> >use LLVM.
> >>
> >> Note that you should make them aware of our runtime license with
> >> respect to the eligible compilation process.  Which means this is not
> >> a way to implement proprietary front ends.
> >>
> >> Richard.
> >
> > IANAL, but as I understand things, the runtime license is an additional
> > grant of rights that covers certain components of GCC that bear the GCC
> > Runtime Library Exception, allowing them to be used in certain
> > additional ways beyond regular GPLv3-compliance.
> >
> > libgccjit doesn't have that exception; it's GPLv3.
> >
> > Perhaps an argument could be made for libgccjit to have the exception,
> > if the FSF think that that would better serve the FSF's mission; right
> > now, I'm merely trying to provide a technical means to modularity.
> >
> > Assuming the above is correct, anything linked against it needs to be
> > GPLv3-compatible.  Hence any such frontend linked against libgccjit
> > would need to be GPLv3-compatible.
> >
> > Attached is a patch (on top of the proposed one below), to clarify the
> > wording in the new tutorial a little, to remind people that such linking
> > needs to be license-compatible (without actually spelling out what the
> > license is, though it's visible at the top of the public header file,
> > libgccjit.h, as GPLv3 or later without the runtime library exception).
> >
> > Are the combined patches OK by you?
> 
> Yes.
> 
> Thanks,
> Richard.

Thanks.  I've committed the combination of the two patches to trunk as
r219876.  Sorry about the lateness of this feature.

With this commit, gcc now has a brainf*** frontend (albeit one hidden
deep in the jit examples dir, and not using the regular frontend
machinery).

Dave

      reply	other threads:[~2015-01-20  1:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-01  0:00 David Malcolm
2015-01-01  0:00 ` Jakub Jelinek
2015-01-01  0:00 ` Richard Biener
2015-01-01  0:00   ` [PATCH] " David Malcolm
2015-01-01  0:00     ` Richard Biener
2015-01-01  0:00       ` David Malcolm [this message]

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=1421717715.4255.73.camel@surprise \
    --to=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=jit@gcc.gnu.org \
    --cc=joseph@codesourcery.com \
    --cc=richard.guenther@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.
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).