public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Basile Starynkevitch <basile@starynkevitch.net>
To: Gerald Pfeifer <gerald@pfeifer.com>
Cc: Pierre Vittet <piervit@pvittet.com>, gcc-patches@gcc.gnu.org
Subject: Re: [PATCH, MELT] add dominance functions
Date: Sun, 22 May 2011 18:49:00 -0000	[thread overview]
Message-ID: <20110522172649.67506486.basile@starynkevitch.net> (raw)
In-Reply-To: <alpine.LNX.2.00.1105221514590.3210@gerinyyl.fvgr>

On Sun, 22 May 2011 15:24:30 +0200 (CEST)
Gerald Pfeifer <gerald@pfeifer.com> wrote:

> On Fri, 20 May 2011, Basile Starynkevitch wrote:
> > By the way, I am quite happy of Pierre patches to the MELT branch. Is 
> > this enough to get him a write access to GCC SVN (all legalese is done)? 
> > I fear that to really get that write access, Pierre would also need to 
> > have accepted patches to the trunk (i.e. that writing good patches to a 
> > branch is not enough)... I still don't understand the criteria to admit 
> > Pierre to the Write After Approval list of maintainers with a write 
> > access to GCC SVN...
> 
> This indeed is a bit of an unusual situation.  Are you planning to,
> realistically, merge the MELT branch into mainline at one point?

I am dreaming of either merging MELT into mainline, or at least having
it be an essential GCC plugin distributed with GCC.... (ideally, I
would prefer MELT to be merged, because that would give it more
visibility). 

But I don't know how realistic is that dream. And I even don't know how
to make it happen. (The main issue being: who will review a 60KLOC
patch, most of it being in a "bizarre" language, MELT itself??)

As I told in informal discussions at some GCC Summits, I feel that MELT
is or may become a bit like the tree-browser.c : something useful
enough to some people to be integrated into mainline, even if most GCC
users don't even know about that functionality, and don't care or use
it when compiling their software. I am quite sure that 99% of GCC users
don't need or know about tree-browser.c and could use GCC with the
tree-browser disabled! I believe it could be the same for MELT: it
would be useful to a small fraction of users, but to them it would
bring enough value.

I am believing that Pierre's work can indeed attract much more attention
to MELT, because it shows very well MELT's interest: providing a
higher-level formalism which makes possible extra features (e.g.
specific warnings, in Pierre's GSOC work case) which would not be
realistically or economically possible without MELT.


The point is that MELT is usually quite near to the mainline: we
carefully avoid adding things into MELT which make MELT incompatible
with the mainline (unless we believe it shows a feature which should be
accepted), because we strongly want MELT to be either compilable as a
branch or as a plugin (to the next GCC release).

To be more specific, the difference between MELT (as a branch) and the
trunk are two lines in gengtype.c, a few lines in toplevel.c, some
additional options & parameters (common.opt, params.def), and the whole
MELT infrastructure (melt-runtime.[ch], melt/generated/*, melt/*) which
is by default disabled. So the behavior of the MELT branch when no MELT
specific program options are given is exactly the behavior of the trunk
(which was last merged into MELT). This is done on purpose, because
MELT can also be built and used as a GCC plugin, so its behavior is
"plugin-like": unless enabled (by options -fmelt*), MELT branch does
exactly what the trunk do. And even when required by -fmelt* arguments
to cc1, MELT branch behavior is exactly that of the melt.so plugin
(except that arguments which are -fmelt* to the MELT branch becomes
-fplugin-arg-melt-* arguments for -fplugin=melt). Internally, the MELT
branch registers a pseudo builtin/MELT plugin and uses the plugin hooks
(only when enabled).

The distributed MELT plugin is made of files extracted from the MELT
branch: the melt.so plugin is obtained by compiling melt-runtime.c as a
plugin...

Regards.

PS. I surely don't want to start a useless flamewar...
-- 
Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***

      reply	other threads:[~2011-05-22 15:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 20:12 Pierre Vittet
2011-05-19 10:28 ` Basile Starynkevitch
2011-05-20 11:47   ` Pierre Vittet
2011-05-20 14:09     ` Basile Starynkevitch
2011-05-22 18:01       ` Gerald Pfeifer
2011-05-22 18:49         ` Basile Starynkevitch [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=20110522172649.67506486.basile@starynkevitch.net \
    --to=basile@starynkevitch.net \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gerald@pfeifer.com \
    --cc=piervit@pvittet.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).