public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: "Manuel López-Ibáñez" <lopezibanez@gmail.com>
To: Grigori Fursin <gfursin@gmail.com>
Cc: Dorit Nuzman <DORIT@il.ibm.com>, gcc@gcc.gnu.org
Subject: Re: Notes from the GROW'10 workshop panel (GCC research opportunities  	workshop)
Date: Thu, 15 Apr 2010 09:05:00 -0000	[thread overview]
Message-ID: <g2w6c33472e1004150204o56c3693bxae473e325e72ceba@mail.gmail.com> (raw)
In-Reply-To: <003b01cadbde$21913eb0$64b3bc10$@com>

I would like to give my opinion as a volunteer contributor on several
of the points you raised.

On 14 April 2010 16:23, Grigori Fursin <gfursin@gmail.com> wrote:
>
> * Need to encourage cleanup/infrastructure work on GCC and provide
> stable/flexible/extensible APIs (the question is how to encourage such
> infrastructure work...?)

I think by:

1) Asking for it in precise terms in the gcc@ list. What exactly you
want to achieve? How would you suggest to achieve it? If you ask for
small changes, there is high chance that someone will do it for you
for free.

2) Otherwise, providing patches! Honestly, if you find that something
can be made more moduler/flexible/extensible, provide a patch and if
you are right there is a high chance it will be committed.

3) For large changes, creating a project, a public gcc branch,
attracting some developers and getting it done. Then commit it to GCC
trunk.

> * Open up GCC to be used as a library by other tools, so that other tools
> could use its analysis facilities. For example, having alias analysis as an
> API rather than a pass that needs to be applied and then collect
> information. Allow developers/tools access those functions outside GCC
> (should be a high-level API).

For this to get done, people that are going to use it should first get
together and define such API and its requirements. That would be the
first step! Do this, by discussing it in the gcc@ list. Do not define
it on your own and just drop it on us (and on other potential users).
That is never going to work.

The next step would be to implement it. The smaller the changes, the
easier to get them merged. So provide small self-contained and
"useful" patches, not a huge patch that implements everything in one
go. That won't work either.

> * Follow up to the above: Need to come up with a common API /
> standardization / common levels of abstractions. Decide on how to
> coordinate efforts and find commonalities.

Good! Again, the keys are "API discussion in gcc@" and "small patches".

> * Need a simple pass manager that can list all available passes
> and allow any scheduling (providing dependency information).

I think GCC will love to have this. So if someone contributes this in
the "proper" way, it will be eagerly accepted.

> * Make more visible/accessible guides for building/extending GCC.

Again, we will love to have this but we need people to do it. Another
point: I think it is more likely that GCC developers would answer in
this list all questions necessary to build such guides than to sit
down and actually write them. So the problem is not to get the
knowledge but that someone puts the effort to write it down in an
organised manner.

If such guides were available, we will be happy to link/host them in
GCC servers.

> * Better advertize Google Summer of Code, and provide more mentoring.

How could we advertise it better?

Another idea could be that researchers and academia encourage students
to work/extend GCC. If, like in the Google Summer of Code, the work is
useful for GCC, I have the feeling that GCC developers would be happy
to mentor (o co-mentor together with the academic advisor of the
student). Moreover, GCC developers can assess whether a project is
feasible or not in a particular time limit. Something that students
and their advisor are likely to get wrong.

Can you reach the adequate audience and transmit these ideas?

> * GCC tries to auto-parallelize the programs it compiles. Will GCC itself
> be made more multi-threaded and run faster in a multi-core environment...?

Even if GCC wouldn't benefit from being multi-threaded, which I don't
know whether it is true, the work to make it more "thread-safe" is
likely to be beneficial for modularity and cleanliness. So, again, I
don't think GCC developers are against this. On the contrary! We will
love it. But someone has to sit down and identify the problems and
start submitting patches. For sure, if you state explicitly what you
want to do, GCC developers can point out what would be needed for
achieving that.

> We hope these notes would help improve GCC and its appeal/usability for
> researches (or at least raise more discussion!)

I think they are interesting but it mostly boils down to "be precise",
"get involved" and "patches are welcome".

Cheers,

Manuel.

  parent reply	other threads:[~2010-04-15  9:04 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-11 14:01 Dorit Nuzman
2010-04-11 18:27 ` Chris Lattner
2010-04-11 19:38   ` Grigori Fursin
2010-04-11 20:25     ` Chris Lattner
2010-04-11 20:58       ` Grigori Fursin
2010-04-14 14:34 ` Grigori Fursin
2010-04-14 14:58   ` Steven Bosscher
2010-04-14 15:21     ` Manuel López-Ibáñez
2010-04-14 15:30       ` Steven Bosscher
2010-04-14 15:36       ` Diego Novillo
2010-04-14 15:50         ` Nathan Froyd
2010-04-14 15:57           ` Richard Guenther
2010-04-14 19:19             ` Tom Tromey
2010-04-14 16:06           ` Diego Novillo
2010-04-14 18:30             ` Richard Guenther
2010-04-14 18:49           ` Toon Moene
2010-04-14 19:52             ` Basile Starynkevitch
2010-04-14 20:31               ` Toon Moene
2010-04-14 20:43               ` Toon Moene
2010-04-14 21:02               ` Ian Lance Taylor
2010-04-14 21:34                 ` Manuel López-Ibáñez
2010-04-15  8:26                 ` Basile Starynkevitch
2010-04-15  8:38                   ` Manuel López-Ibáñez
2010-04-15 12:03                     ` Basile Starynkevitch
2010-04-15 12:07                       ` Andrew Haley
2010-04-15 12:15                         ` Steven Bosscher
2010-04-15 12:17                           ` Andrew Haley
2010-04-22  9:18                       ` Laurent GUERBY
2010-04-14 21:04               ` Nathan Froyd
2010-04-14 19:42           ` Ian Lance Taylor
2010-04-14 15:44       ` Duncan Sands
2010-04-15  9:05   ` Manuel López-Ibáñez [this message]
2010-04-16 12:36     ` Grigori Fursin
2010-04-16 17:15       ` Manuel López-Ibáñez
2010-04-16 17:40         ` Grigori Fursin
2010-04-27 12:40         ` Grigori Fursin
2010-04-27 16:31           ` Manuel López-Ibáñez
2010-04-27 18:42             ` Grigori Fursin

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=g2w6c33472e1004150204o56c3693bxae473e325e72ceba@mail.gmail.com \
    --to=lopezibanez@gmail.com \
    --cc=DORIT@il.ibm.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gfursin@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).